1361 lines · python
1# SPDX-License-Identifier: GPL-2.02 3# fmt: off4wacom_pth660_v145 = [5 0x05, 0x01, # . Usage Page (Desktop),6 0x09, 0x02, # . Usage (Mouse),7 0xA1, 0x01, # . Collection (Application),8 0x85, 0x01, # . Report ID (1),9 0x09, 0x01, # . Usage (Pointer),10 0xA1, 0x00, # . Collection (Physical),11 0x05, 0x09, # . Usage Page (Button),12 0x19, 0x01, # . Usage Minimum (01h),13 0x29, 0x03, # . Usage Maximum (03h),14 0x15, 0x00, # . Logical Minimum (0),15 0x25, 0x01, # . Logical Maximum (1),16 0x75, 0x01, # . Report Size (1),17 0x95, 0x03, # . Report Count (3),18 0x81, 0x02, # . Input (Variable),19 0x75, 0x01, # . Report Size (1),20 0x95, 0x05, # . Report Count (5),21 0x81, 0x03, # . Input (Constant, Variable),22 0x05, 0x01, # . Usage Page (Desktop),23 0x09, 0x30, # . Usage (X),24 0x09, 0x31, # . Usage (Y),25 0x15, 0x81, # . Logical Minimum (-127),26 0x25, 0x7F, # . Logical Maximum (127),27 0x75, 0x08, # . Report Size (8),28 0x95, 0x02, # . Report Count (2),29 0x81, 0x06, # . Input (Variable, Relative),30 0xC0, # . End Collection,31 0xC0, # . End Collection,32 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),33 0x09, 0x01, # . Usage (01h),34 0xA1, 0x01, # . Collection (Application),35 0x85, 0x10, # . Report ID (16),36 0x09, 0x20, # . Usage (20h),37 0xA1, 0x00, # . Collection (Physical),38 0x09, 0x42, # . Usage (42h),39 0x09, 0x44, # . Usage (44h),40 0x09, 0x5A, # . Usage (5Ah),41 0x09, 0x45, # . Usage (45h),42 0x09, 0x3C, # . Usage (3Ch),43 0x09, 0x32, # . Usage (32h),44 0x09, 0x36, # . Usage (36h),45 0x15, 0x00, # . Logical Minimum (0),46 0x25, 0x01, # . Logical Maximum (1),47 0x75, 0x01, # . Report Size (1),48 0x95, 0x07, # . Report Count (7),49 0x81, 0x02, # . Input (Variable),50 0x95, 0x01, # . Report Count (1),51 0x81, 0x03, # . Input (Constant, Variable),52 0x0A, 0x30, 0x01, # . Usage (0130h),53 0x65, 0x11, # . Unit (Centimeter),54 0x55, 0x0D, # . Unit Exponent (13),55 0x35, 0x00, # . Physical Minimum (0),56 0x47, 0x80, 0x57, 0x00, 0x00, # . Physical Maximum (22400),57 0x15, 0x00, # . Logical Minimum (0),58 0x27, 0x00, 0xAF, 0x00, 0x00, # . Logical Maximum (44800),59 0x75, 0x18, # . Report Size (24),60 0x95, 0x01, # . Report Count (1),61 0x81, 0x02, # . Input (Variable),62 0x0A, 0x31, 0x01, # . Usage (0131h),63 0x47, 0xD0, 0x39, 0x00, 0x00, # . Physical Maximum (14800),64 0x27, 0xA0, 0x73, 0x00, 0x00, # . Logical Maximum (29600),65 0x81, 0x02, # . Input (Variable),66 0x09, 0x30, # . Usage (30h),67 0x55, 0x00, # . Unit Exponent (0),68 0x65, 0x00, # . Unit,69 0x15, 0x00, # . Logical Minimum (0),70 0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 071 0x75, 0x10, # . Report Size (16),72 0x81, 0x02, # . Input (Variable),73 0x09, 0x3D, # . Usage (3Dh),74 0x09, 0x3E, # . Usage (3Eh),75 0x65, 0x14, # . Unit (Degrees),76 0x55, 0x00, # . Unit Exponent (0),77 0x35, 0xC0, # . Physical Minimum (-64),78 0x45, 0x3F, # . Physical Maximum (63),79 0x15, 0xC0, # . Logical Minimum (-64),80 0x25, 0x3F, # . Logical Maximum (63),81 0x75, 0x08, # . Report Size (8),82 0x95, 0x02, # . Report Count (2),83 0x81, 0x02, # . Input (Variable),84 0x09, 0x41, # . Usage (41h),85 0x65, 0x14, # . Unit (Degrees),86 0x55, 0x00, # . Unit Exponent (0),87 0x36, 0x4C, 0xFF, # . Physical Minimum (-180),88 0x46, 0xB3, 0x00, # . Physical Maximum (179),89 0x16, 0x7C, 0xFC, # . Logical Minimum (-900),90 0x26, 0x83, 0x03, # . Logical Maximum (899),91 0x75, 0x10, # . Report Size (16),92 0x95, 0x01, # . Report Count (1),93 0x81, 0x0A, # . Input (Variable, Wrap),94 0x0A, 0x03, 0x0D, # . Usage (0D03h),95 0x65, 0x00, # . Unit,96 0x55, 0x00, # . Unit Exponent (0),97 0x15, 0x00, # . Logical Minimum (0),98 0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 099 0x75, 0x10, # . Report Size (16),100 0x95, 0x01, # . Report Count (1),101 0x81, 0x02, # . Input (Variable),102 0x0A, 0x32, 0x01, # . Usage (0132h),103 0x15, 0x00, # . Logical Minimum (0),104 0x25, 0x3F, # . Logical Maximum (63),105 0x75, 0x08, # . Report Size (8),106 0x95, 0x01, # . Report Count (1),107 0x81, 0x02, # . Input (Variable),108 0x09, 0x5B, # . Usage (5Bh),109 0x09, 0x5C, # . Usage (5Ch),110 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),111 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),112 0x75, 0x20, # . Report Size (32),113 0x95, 0x02, # . Report Count (2),114 0x81, 0x02, # . Input (Variable),115 0x09, 0x77, # . Usage (77h),116 0x15, 0x00, # . Logical Minimum (0),117 0x26, 0xFF, 0x0F, # . Logical Maximum (4095),118 0x75, 0x10, # . Report Size (16),119 0x95, 0x01, # . Report Count (1),120 0x81, 0x02, # . Input (Variable),121 0xC0, # . End Collection,122 0x85, 0x11, # . Report ID (17),123 0x09, 0x39, # . Usage (39h),124 0xA1, 0x00, # . Collection (Physical),125 0x1A, 0x10, 0x09, # . Usage Minimum (0910h),126 0x2A, 0x17, 0x09, # . Usage Maximum (0917h),127 0x15, 0x00, # . Logical Minimum (0),128 0x25, 0x01, # . Logical Maximum (1),129 0x75, 0x01, # . Report Size (1),130 0x95, 0x08, # . Report Count (8),131 0x81, 0x02, # . Input (Variable),132 0x1A, 0x40, 0x09, # . Usage Minimum (0940h),133 0x2A, 0x47, 0x09, # . Usage Maximum (0947h),134 0x81, 0x02, # . Input (Variable),135 0x0A, 0x95, 0x09, # . Usage (0995h),136 0x95, 0x01, # . Report Count (1),137 0x81, 0x02, # . Input (Variable),138 0x95, 0x07, # . Report Count (7),139 0x81, 0x03, # . Input (Constant, Variable),140 0x0A, 0x38, 0x01, # . Usage (0138h),141 0x65, 0x14, # . Unit (Degrees),142 0x55, 0x00, # . Unit Exponent (0),143 0x35, 0x00, # . Physical Minimum (0),144 0x46, 0x67, 0x01, # . Physical Maximum (359),145 0x15, 0x00, # . Logical Minimum (0),146 0x25, 0x47, # . Logical Maximum (71),147 0x75, 0x07, # . Report Size (7),148 0x95, 0x01, # . Report Count (1),149 0x81, 0x0A, # . Input (Variable, Wrap),150 0x0A, 0x39, 0x01, # . Usage (0139h),151 0x65, 0x00, # . Unit,152 0x55, 0x00, # . Unit Exponent (0),153 0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0154 0x75, 0x01, # . Report Size (1),155 0x95, 0x01, # . Report Count (1),156 0x81, 0x02, # . Input (Variable),157 0x75, 0x08, # . Report Size (8),158 0x95, 0x04, # . Report Count (4),159 0x81, 0x03, # . Input (Constant, Variable),160 0xC0, # . End Collection,161 0x85, 0x13, # . Report ID (19),162 0x0A, 0x13, 0x10, # . Usage (1013h),163 0xA1, 0x00, # . Collection (Physical),164 0x0A, 0x3B, 0x04, # . Usage (043Bh),165 0x15, 0x00, # . Logical Minimum (0),166 0x25, 0x64, # . Logical Maximum (100),167 0x75, 0x07, # . Report Size (7),168 0x95, 0x01, # . Report Count (1),169 0x81, 0x02, # . Input (Variable),170 0x0A, 0x04, 0x04, # . Usage (0404h),171 0x25, 0x01, # . Logical Maximum (1),172 0x75, 0x01, # . Report Size (1),173 0x81, 0x02, # . Input (Variable),174 0x0A, 0x52, 0x04, # . Usage (0452h),175 0x15, 0x00, # . Logical Minimum (0),176 0x25, 0x01, # . Logical Maximum (1),177 0x75, 0x01, # . Report Size (1),178 0x95, 0x01, # . Report Count (1),179 0x81, 0x02, # . Input (Variable),180 0x95, 0x06, # . Report Count (6),181 0x81, 0x03, # . Input (Constant, Variable),182 0x0A, 0x54, 0x04, # . Usage (0454h),183 0x95, 0x01, # . Report Count (1),184 0x81, 0x02, # . Input (Variable),185 0x75, 0x08, # . Report Size (8),186 0x95, 0x06, # . Report Count (6),187 0x81, 0x03, # . Input (Constant, Variable),188 0xC0, # . End Collection,189 0x09, 0x0E, # . Usage (0Eh),190 0xA1, 0x02, # . Collection (Logical),191 0x15, 0x00, # . Logical Minimum (0),192 0x85, 0x02, # . Report ID (2),193 0x09, 0x01, # . Usage (01h),194 0x75, 0x08, # . Report Size (8),195 0x25, 0x01, # . Logical Maximum (1),196 0x95, 0x01, # . Report Count (1),197 0xB1, 0x02, # . Feature (Variable),198 0x85, 0x03, # . Report ID (3),199 0x0A, 0x03, 0x10, # . Usage (1003h),200 0x26, 0xFF, 0x00, # . Logical Maximum (255),201 0x95, 0x01, # . Report Count (1),202 0xB1, 0x02, # . Feature (Variable),203 0x85, 0x04, # . Report ID (4),204 0x0A, 0x04, 0x10, # . Usage (1004h),205 0x25, 0x01, # . Logical Maximum (1),206 0x95, 0x01, # . Report Count (1),207 0xB1, 0x02, # . Feature (Variable),208 0x85, 0x07, # . Report ID (7),209 0x0A, 0x09, 0x10, # . Usage (1009h),210 0x25, 0x02, # . Logical Maximum (2),211 0x95, 0x01, # . Report Count (1),212 0xB1, 0x02, # . Feature (Variable),213 0x95, 0x01, # . Report Count (1),214 0xB1, 0x03, # . Feature (Constant, Variable),215 0x0A, 0x07, 0x10, # . Usage (1007h),216 0x09, 0x00, # . Usage (00h),217 0x0A, 0x08, 0x10, # . Usage (1008h),218 0x09, 0x00, # . Usage (00h),219 0x09, 0x00, # . Usage (00h),220 0x09, 0x00, # . Usage (00h),221 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),222 0x75, 0x10, # . Report Size (16),223 0x95, 0x06, # . Report Count (6),224 0xB1, 0x02, # . Feature (Variable),225 0x75, 0x08, # . Report Size (8),226 0x95, 0x01, # . Report Count (1),227 0xB1, 0x03, # . Feature (Constant, Variable),228 0x85, 0x0C, # . Report ID (12),229 0x0A, 0x30, 0x0D, # . Usage (0D30h),230 0x0A, 0x31, 0x0D, # . Usage (0D31h),231 0x0A, 0x32, 0x0D, # . Usage (0D32h),232 0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max233 0x65, 0x11, # . Unit (Centimeter),234 0x55, 0x0D, # . Unit Exponent (13),235 0x75, 0x10, # . Report Size (16),236 0x95, 0x04, # . Report Count (4),237 0xB1, 0x03, # . Feature (Constant, Variable),238 0x85, 0x0D, # . Report ID (13),239 0x65, 0x00, # . Unit,240 0x55, 0x00, # . Unit Exponent (0),241 0x0A, 0x0D, 0x10, # . Usage (100Dh),242 0x15, 0x00, # . Logical Minimum (0),243 0x25, 0x01, # . Logical Maximum (1),244 0x75, 0x08, # . Report Size (8),245 0x95, 0x01, # . Report Count (1),246 0xB1, 0x02, # . Feature (Variable),247 0x85, 0x14, # . Report ID (20),248 0x0A, 0x14, 0x10, # . Usage (1014h),249 0x26, 0xFF, 0x00, # . Logical Maximum (255),250 0x95, 0x0D, # . Report Count (13),251 0xB1, 0x02, # . Feature (Variable),252 0x85, 0x31, # . Report ID (49),253 0x0A, 0x31, 0x10, # . Usage (1031h),254 0x25, 0x64, # . Logical Maximum (100),255 0x95, 0x05, # . Report Count (5),256 0xB1, 0x02, # . Feature (Variable),257 0x85, 0x32, # . Report ID (50),258 0x0A, 0x31, 0x10, # . Usage (1031h),259 0x25, 0x64, # . Logical Maximum (100),260 0x95, 0x01, # . Report Count (1),261 0xB1, 0x02, # . Feature (Variable),262 0x0A, 0x32, 0x10, # . Usage (1032h),263 0x25, 0x03, # . Logical Maximum (3),264 0xB1, 0x02, # . Feature (Variable),265 0x85, 0x34, # . Report ID (52),266 0x0A, 0x34, 0x10, # . Usage (1034h),267 0x25, 0x01, # . Logical Maximum (1),268 0x95, 0x04, # . Report Count (4),269 0xB1, 0x02, # . Feature (Variable),270 0x85, 0x35, # . Report ID (53),271 0x0A, 0x35, 0x10, # . Usage (1035h),272 0x26, 0xFF, 0x00, # . Logical Maximum (255),273 0x95, 0x0A, # . Report Count (10),274 0xB1, 0x02, # . Feature (Variable),275 0x85, 0x36, # . Report ID (54),276 0x0A, 0x35, 0x10, # . Usage (1035h),277 0x26, 0xFF, 0x00, # . Logical Maximum (255),278 0x96, 0x01, 0x01, # . Report Count (257),279 0xB1, 0x02, # . Feature (Variable),280 0x85, 0xCC, # . Report ID (204),281 0x0A, 0xCC, 0x10, # . Usage (10CCh),282 0x26, 0xFF, 0x00, # . Logical Maximum (255),283 0x95, 0x02, # . Report Count (2),284 0xB1, 0x02, # . Feature (Variable),285 0xC0, # . End Collection,286 0x0A, 0xAC, 0x10, # . Usage (10ACh),287 0xA1, 0x02, # . Collection (Logical),288 0x15, 0x00, # . Logical Minimum (0),289 0x26, 0xFF, 0x00, # . Logical Maximum (255),290 0x75, 0x08, # . Report Size (8),291 0x85, 0xAC, # . Report ID (172),292 0x09, 0x00, # . Usage (00h),293 0x95, 0xBF, # . Report Count (191),294 0x81, 0x02, # . Input (Variable),295 0x85, 0x33, # . Report ID (51),296 0x09, 0x00, # . Usage (00h),297 0x95, 0x12, # . Report Count (18),298 0xB1, 0x02, # . Feature (Variable),299 0x85, 0x64, # . Report ID (100),300 0x09, 0x00, # . Usage (00h),301 0x95, 0x0C, # . Report Count (12),302 0xB1, 0x02, # . Feature (Variable),303 0x85, 0x15, # . Report ID (21),304 0x09, 0x00, # . Usage (00h),305 0x95, 0x0E, # . Report Count (14),306 0xB1, 0x02, # . Feature (Variable),307 0x85, 0x12, # . Report ID (18),308 0x09, 0x00, # . Usage (00h),309 0x95, 0x04, # . Report Count (4),310 0xB1, 0x02, # . Feature (Variable),311 0x85, 0x16, # . Report ID (22),312 0x09, 0x00, # . Usage (00h),313 0x95, 0x0E, # . Report Count (14),314 0xB1, 0x02, # . Feature (Variable),315 0x85, 0x40, # . Report ID (64),316 0x09, 0x00, # . Usage (00h),317 0x95, 0x01, # . Report Count (1),318 0xB1, 0x02, # . Feature (Variable),319 0x85, 0x41, # . Report ID (65),320 0x09, 0x00, # . Usage (00h),321 0x95, 0x01, # . Report Count (1),322 0xB1, 0x02, # . Feature (Variable),323 0x85, 0x42, # . Report ID (66),324 0x09, 0x00, # . Usage (00h),325 0x95, 0x04, # . Report Count (4),326 0xB1, 0x02, # . Feature (Variable),327 0x85, 0x43, # . Report ID (67),328 0x09, 0x00, # . Usage (00h),329 0x95, 0x0D, # . Report Count (13),330 0xB1, 0x02, # . Feature (Variable),331 0x85, 0x44, # . Report ID (68),332 0x09, 0x00, # . Usage (00h),333 0x95, 0x3F, # . Report Count (63),334 0xB1, 0x02, # . Feature (Variable),335 0x85, 0x45, # . Report ID (69),336 0x09, 0x00, # . Usage (00h),337 0x95, 0x20, # . Report Count (32),338 0xB1, 0x02, # . Feature (Variable),339 0x85, 0x60, # . Report ID (96),340 0x09, 0x00, # . Usage (00h),341 0x95, 0x3F, # . Report Count (63),342 0xB1, 0x02, # . Feature (Variable),343 0x85, 0x61, # . Report ID (97),344 0x09, 0x00, # . Usage (00h),345 0x95, 0x3E, # . Report Count (62),346 0xB1, 0x02, # . Feature (Variable),347 0x85, 0x62, # . Report ID (98),348 0x09, 0x00, # . Usage (00h),349 0x95, 0x3E, # . Report Count (62),350 0xB1, 0x02, # . Feature (Variable),351 0xC0, # . End Collection,352 0x85, 0xD0, # . Report ID (208),353 0x09, 0x01, # . Usage (01h),354 0x96, 0x08, 0x00, # . Report Count (8),355 0xB1, 0x02, # . Feature (Variable),356 0x85, 0xD1, # . Report ID (209),357 0x09, 0x01, # . Usage (01h),358 0x96, 0x04, 0x01, # . Report Count (260),359 0xB1, 0x02, # . Feature (Variable),360 0x85, 0xD2, # . Report ID (210),361 0x09, 0x01, # . Usage (01h),362 0x96, 0x04, 0x01, # . Report Count (260),363 0xB1, 0x02, # . Feature (Variable),364 0x85, 0xD3, # . Report ID (211),365 0x09, 0x01, # . Usage (01h),366 0x96, 0x04, 0x00, # . Report Count (4),367 0xB1, 0x02, # . Feature (Variable),368 0x85, 0xD4, # . Report ID (212),369 0x09, 0x01, # . Usage (01h),370 0x96, 0x04, 0x00, # . Report Count (4),371 0xB1, 0x02, # . Feature (Variable),372 0x85, 0xD5, # . Report ID (213),373 0x09, 0x01, # . Usage (01h),374 0x96, 0x04, 0x00, # . Report Count (4),375 0xB1, 0x02, # . Feature (Variable),376 0x85, 0xD6, # . Report ID (214),377 0x09, 0x01, # . Usage (01h),378 0x96, 0x04, 0x00, # . Report Count (4),379 0xB1, 0x02, # . Feature (Variable),380 0x85, 0xD7, # . Report ID (215),381 0x09, 0x01, # . Usage (01h),382 0x96, 0x08, 0x00, # . Report Count (8),383 0xB1, 0x02, # . Feature (Variable),384 0x85, 0xD8, # . Report ID (216),385 0x09, 0x01, # . Usage (01h),386 0x96, 0x0C, 0x00, # . Report Count (12),387 0xB1, 0x02, # . Feature (Variable),388 0x85, 0xD9, # . Report ID (217),389 0x09, 0x01, # . Usage (01h),390 0x96, 0x00, 0x0A, # . Report Count (2560),391 0xB1, 0x02, # . Feature (Variable),392 0x85, 0xDA, # . Report ID (218),393 0x09, 0x01, # . Usage (01h),394 0x96, 0x04, 0x04, # . Report Count (1028),395 0xB1, 0x02, # . Feature (Variable),396 0x85, 0xDB, # . Report ID (219),397 0x09, 0x01, # . Usage (01h),398 0x96, 0x06, 0x00, # . Report Count (6),399 0xB1, 0x02, # . Feature (Variable),400 0x85, 0xDC, # . Report ID (220),401 0x09, 0x01, # . Usage (01h),402 0x96, 0x02, 0x00, # . Report Count (2),403 0xB1, 0x02, # . Feature (Variable),404 0x85, 0xDD, # . Report ID (221),405 0x09, 0x01, # . Usage (01h),406 0x96, 0x04, 0x00, # . Report Count (4),407 0xB1, 0x02, # . Feature (Variable),408 0x85, 0xDE, # . Report ID (222),409 0x09, 0x01, # . Usage (01h),410 0x96, 0x04, 0x00, # . Report Count (4),411 0xB1, 0x02, # . Feature (Variable),412 0x85, 0xDF, # . Report ID (223),413 0x09, 0x01, # . Usage (01h),414 0x96, 0x22, 0x00, # . Report Count (34),415 0xB1, 0x02, # . Feature (Variable),416 0x85, 0xE0, # . Report ID (224),417 0x09, 0x01, # . Usage (01h),418 0x96, 0x01, 0x00, # . Report Count (1),419 0xB1, 0x02, # . Feature (Variable),420 0x85, 0xE1, # . Report ID (225),421 0x09, 0x01, # . Usage (01h),422 0x96, 0x02, 0x00, # . Report Count (2),423 0xB1, 0x02, # . Feature (Variable),424 0x85, 0xE2, # . Report ID (226),425 0x09, 0x01, # . Usage (01h),426 0x96, 0x02, 0x00, # . Report Count (2),427 0xB1, 0x02, # . Feature (Variable),428 0x85, 0xE3, # . Report ID (227),429 0x09, 0x01, # . Usage (01h),430 0x96, 0x02, 0x00, # . Report Count (2),431 0xB1, 0x02, # . Feature (Variable),432 0x85, 0xE4, # . Report ID (228),433 0x09, 0x01, # . Usage (01h),434 0x96, 0xFF, 0x01, # . Report Count (511),435 0xB1, 0x02, # . Feature (Variable),436 0xC0 # . End Collection437]438# fmt: on439 440# Report ID (20), Usage (1014h), Report Count (13) -> 15441wacom_pth660_v150 = wacom_pth660_v145.copy()442wacom_pth660_v150[0x2CB] = 0x0F443 444# fmt: off445wacom_pth860_v145 = [446 0x05, 0x01, # . Usage Page (Desktop),447 0x09, 0x02, # . Usage (Mouse),448 0xA1, 0x01, # . Collection (Application),449 0x85, 0x01, # . Report ID (1),450 0x09, 0x01, # . Usage (Pointer),451 0xA1, 0x00, # . Collection (Physical),452 0x05, 0x09, # . Usage Page (Button),453 0x19, 0x01, # . Usage Minimum (01h),454 0x29, 0x03, # . Usage Maximum (03h),455 0x15, 0x00, # . Logical Minimum (0),456 0x25, 0x01, # . Logical Maximum (1),457 0x75, 0x01, # . Report Size (1),458 0x95, 0x03, # . Report Count (3),459 0x81, 0x02, # . Input (Variable),460 0x95, 0x05, # . Report Count (5),461 0x81, 0x03, # . Input (Constant, Variable),462 0x05, 0x01, # . Usage Page (Desktop),463 0x09, 0x30, # . Usage (X),464 0x09, 0x31, # . Usage (Y),465 0x15, 0x80, # . Logical Minimum (-128),466 0x25, 0x7F, # . Logical Maximum (127),467 0x75, 0x08, # . Report Size (8),468 0x95, 0x02, # . Report Count (2),469 0x81, 0x06, # . Input (Variable, Relative),470 0xC0, # . End Collection,471 0xC0, # . End Collection,472 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),473 0x09, 0x01, # . Usage (01h),474 0xA1, 0x01, # . Collection (Application),475 0x85, 0x10, # . Report ID (16),476 0x09, 0x20, # . Usage (20h),477 0xA1, 0x00, # . Collection (Physical),478 0x09, 0x42, # . Usage (42h),479 0x09, 0x44, # . Usage (44h),480 0x09, 0x5A, # . Usage (5Ah),481 0x09, 0x45, # . Usage (45h),482 0x09, 0x3C, # . Usage (3Ch),483 0x09, 0x32, # . Usage (32h),484 0x09, 0x36, # . Usage (36h),485 0x15, 0x00, # . Logical Minimum (0),486 0x25, 0x01, # . Logical Maximum (1),487 0x75, 0x01, # . Report Size (1),488 0x95, 0x07, # . Report Count (7),489 0x81, 0x02, # . Input (Variable),490 0x95, 0x01, # . Report Count (1),491 0x81, 0x03, # . Input (Constant, Variable),492 0x0A, 0x30, 0x01, # . Usage (0130h),493 0x65, 0x11, # . Unit (Centimeter),494 0x55, 0x0D, # . Unit Exponent (13),495 0x35, 0x00, # . Physical Minimum (0),496 0x47, 0x7C, 0x79, 0x00, 0x00, # . Physical Maximum (31100),497 0x15, 0x00, # . Logical Minimum (0),498 0x27, 0xF8, 0xF2, 0x00, 0x00, # . Logical Maximum (62200),499 0x75, 0x18, # . Report Size (24),500 0x95, 0x01, # . Report Count (1),501 0x81, 0x02, # . Input (Variable),502 0x0A, 0x31, 0x01, # . Usage (0131h),503 0x47, 0x60, 0x54, 0x00, 0x00, # . Physical Maximum (21600),504 0x27, 0xC0, 0xA8, 0x00, 0x00, # . Logical Maximum (43200),505 0x81, 0x02, # . Input (Variable),506 0x09, 0x30, # . Usage (30h), # !!! Errata: Missing Physical Max = 0507 0x55, 0x00, # . Unit Exponent (0),508 0x65, 0x00, # . Unit,509 0x15, 0x00, # . Logical Minimum (0),510 0x26, 0xFF, 0x1F, # . Logical Maximum (8191),511 0x75, 0x10, # . Report Size (16),512 0x81, 0x02, # . Input (Variable),513 0x09, 0x3D, # . Usage (3Dh),514 0x09, 0x3E, # . Usage (3Eh),515 0x65, 0x14, # . Unit (Degrees),516 0x55, 0x00, # . Unit Exponent (0),517 0x35, 0xC0, # . Physical Minimum (-64),518 0x45, 0x3F, # . Physical Maximum (63),519 0x15, 0xC0, # . Logical Minimum (-64),520 0x25, 0x3F, # . Logical Maximum (63),521 0x75, 0x08, # . Report Size (8),522 0x95, 0x02, # . Report Count (2),523 0x81, 0x02, # . Input (Variable),524 0x09, 0x41, # . Usage (41h),525 0x65, 0x14, # . Unit (Degrees),526 0x55, 0x00, # . Unit Exponent (0),527 0x36, 0x4C, 0xFF, # . Physical Minimum (-180),528 0x46, 0xB3, 0x00, # . Physical Maximum (179),529 0x16, 0x7C, 0xFC, # . Logical Minimum (-900),530 0x26, 0x83, 0x03, # . Logical Maximum (899),531 0x75, 0x10, # . Report Size (16),532 0x95, 0x01, # . Report Count (1),533 0x81, 0x0A, # . Input (Variable, Wrap),534 0x0A, 0x03, 0x0D, # . Usage (0D03h),535 0x65, 0x00, # . Unit,536 0x55, 0x00, # . Unit Exponent (0),537 0x15, 0x00, # . Logical Minimum (0),538 0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 0539 0x75, 0x10, # . Report Size (16),540 0x95, 0x01, # . Report Count (1),541 0x81, 0x02, # . Input (Variable),542 0x0A, 0x32, 0x01, # . Usage (0132h),543 0x15, 0x00, # . Logical Minimum (0),544 0x25, 0x3F, # . Logical Maximum (63),545 0x75, 0x08, # . Report Size (8),546 0x95, 0x01, # . Report Count (1),547 0x81, 0x02, # . Input (Variable),548 0x09, 0x5B, # . Usage (5Bh),549 0x09, 0x5C, # . Usage (5Ch),550 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),551 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),552 0x75, 0x20, # . Report Size (32),553 0x95, 0x02, # . Report Count (2),554 0x81, 0x02, # . Input (Variable),555 0x09, 0x77, # . Usage (77h),556 0x16, 0x00, 0x00, # . Logical Minimum (0),557 0x26, 0xFF, 0x0F, # . Logical Maximum (4095),558 0x75, 0x10, # . Report Size (16),559 0x95, 0x01, # . Report Count (1),560 0x81, 0x02, # . Input (Variable),561 0xC0, # . End Collection,562 0x85, 0x11, # . Report ID (17),563 0x09, 0x39, # . Usage (39h),564 0xA1, 0x00, # . Collection (Physical),565 0x1A, 0x10, 0x09, # . Usage Minimum (0910h),566 0x2A, 0x17, 0x09, # . Usage Maximum (0917h),567 0x15, 0x00, # . Logical Minimum (0),568 0x25, 0x01, # . Logical Maximum (1),569 0x75, 0x01, # . Report Size (1),570 0x95, 0x08, # . Report Count (8),571 0x81, 0x02, # . Input (Variable),572 0x1A, 0x40, 0x09, # . Usage Minimum (0940h),573 0x2A, 0x47, 0x09, # . Usage Maximum (0947h),574 0x81, 0x02, # . Input (Variable),575 0x0A, 0x95, 0x09, # . Usage (0995h),576 0x95, 0x01, # . Report Count (1),577 0x81, 0x02, # . Input (Variable),578 0x95, 0x07, # . Report Count (7),579 0x81, 0x03, # . Input (Constant, Variable),580 0x0A, 0x38, 0x01, # . Usage (0138h),581 0x65, 0x14, # . Unit (Degrees),582 0x55, 0x00, # . Unit Exponent (0),583 0x35, 0x00, # . Physical Minimum (0),584 0x46, 0x67, 0x01, # . Physical Maximum (359),585 0x15, 0x00, # . Logical Minimum (0),586 0x25, 0x47, # . Logical Maximum (71),587 0x75, 0x07, # . Report Size (7),588 0x95, 0x01, # . Report Count (1),589 0x81, 0x0A, # . Input (Variable, Wrap),590 0x0A, 0x39, 0x01, # . Usage (0139h),591 0x65, 0x00, # . Unit,592 0x55, 0x00, # . Unit Exponent (0),593 0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0594 0x75, 0x01, # . Report Size (1),595 0x95, 0x01, # . Report Count (1),596 0x81, 0x02, # . Input (Variable),597 0x75, 0x08, # . Report Size (8),598 0x95, 0x04, # . Report Count (4),599 0x81, 0x03, # . Input (Constant, Variable),600 0xC0, # . End Collection,601 0x85, 0x13, # . Report ID (19),602 0x0A, 0x13, 0x10, # . Usage (1013h),603 0xA1, 0x00, # . Collection (Physical),604 0x0A, 0x3B, 0x04, # . Usage (043Bh),605 0x15, 0x00, # . Logical Minimum (0),606 0x25, 0x64, # . Logical Maximum (100),607 0x75, 0x07, # . Report Size (7),608 0x95, 0x01, # . Report Count (1),609 0x81, 0x02, # . Input (Variable),610 0x0A, 0x04, 0x04, # . Usage (0404h),611 0x25, 0x01, # . Logical Maximum (1),612 0x75, 0x01, # . Report Size (1),613 0x81, 0x02, # . Input (Variable),614 0x0A, 0x52, 0x04, # . Usage (0452h),615 0x15, 0x00, # . Logical Minimum (0),616 0x25, 0x01, # . Logical Maximum (1),617 0x75, 0x01, # . Report Size (1),618 0x95, 0x01, # . Report Count (1),619 0x81, 0x02, # . Input (Variable),620 0x95, 0x06, # . Report Count (6),621 0x81, 0x03, # . Input (Constant, Variable),622 0x0A, 0x54, 0x04, # . Usage (0454h),623 0x95, 0x01, # . Report Count (1),624 0x81, 0x02, # . Input (Variable),625 0x75, 0x08, # . Report Size (8),626 0x95, 0x06, # . Report Count (6),627 0x81, 0x03, # . Input (Constant, Variable),628 0xC0, # . End Collection,629 0x09, 0x0E, # . Usage (0Eh),630 0xA1, 0x02, # . Collection (Logical),631 0x15, 0x00, # . Logical Minimum (0),632 0x85, 0x02, # . Report ID (2),633 0x09, 0x01, # . Usage (01h),634 0x75, 0x08, # . Report Size (8),635 0x25, 0x01, # . Logical Maximum (1),636 0x95, 0x01, # . Report Count (1),637 0xB1, 0x02, # . Feature (Variable),638 0x85, 0x03, # . Report ID (3),639 0x0A, 0x03, 0x10, # . Usage (1003h),640 0x26, 0xFF, 0x00, # . Logical Maximum (255),641 0x95, 0x01, # . Report Count (1),642 0xB1, 0x02, # . Feature (Variable),643 0x85, 0x04, # . Report ID (4),644 0x0A, 0x04, 0x10, # . Usage (1004h),645 0x25, 0x01, # . Logical Maximum (1),646 0x95, 0x01, # . Report Count (1),647 0xB1, 0x02, # . Feature (Variable),648 0x85, 0x07, # . Report ID (7),649 0x0A, 0x09, 0x10, # . Usage (1009h),650 0x25, 0x02, # . Logical Maximum (2),651 0x95, 0x01, # . Report Count (1),652 0xB1, 0x02, # . Feature (Variable),653 0x95, 0x01, # . Report Count (1),654 0xB1, 0x03, # . Feature (Constant, Variable),655 0x0A, 0x07, 0x10, # . Usage (1007h),656 0x09, 0x00, # . Usage (00h),657 0x0A, 0x08, 0x10, # . Usage (1008h),658 0x09, 0x00, # . Usage (00h),659 0x09, 0x00, # . Usage (00h),660 0x09, 0x00, # . Usage (00h),661 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),662 0x75, 0x10, # . Report Size (16),663 0x95, 0x06, # . Report Count (6),664 0xB1, 0x02, # . Feature (Variable),665 0x75, 0x08, # . Report Size (8),666 0x95, 0x01, # . Report Count (1),667 0xB1, 0x03, # . Feature (Constant, Variable),668 0x85, 0x0C, # . Report ID (12),669 0x0A, 0x30, 0x0D, # . Usage (0D30h),670 0x0A, 0x31, 0x0D, # . Usage (0D31h),671 0x0A, 0x32, 0x0D, # . Usage (0D32h),672 0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max673 0x65, 0x11, # . Unit (Centimeter),674 0x55, 0x0D, # . Unit Exponent (13),675 0x75, 0x10, # . Report Size (16),676 0x95, 0x04, # . Report Count (4),677 0xB1, 0x03, # . Feature (Constant, Variable),678 0x85, 0x0D, # . Report ID (13),679 0x65, 0x00, # . Unit,680 0x55, 0x00, # . Unit Exponent (0),681 0x0A, 0x0D, 0x10, # . Usage (100Dh),682 0x15, 0x00, # . Logical Minimum (0),683 0x25, 0x01, # . Logical Maximum (1),684 0x75, 0x08, # . Report Size (8),685 0x95, 0x01, # . Report Count (1),686 0xB1, 0x02, # . Feature (Variable),687 0x85, 0x14, # . Report ID (20),688 0x0A, 0x14, 0x10, # . Usage (1014h),689 0x26, 0xFF, 0x00, # . Logical Maximum (255),690 0x95, 0x0D, # . Report Count (13),691 0xB1, 0x02, # . Feature (Variable),692 0x85, 0x31, # . Report ID (49),693 0x0A, 0x31, 0x10, # . Usage (1031h),694 0x25, 0x64, # . Logical Maximum (100),695 0x95, 0x05, # . Report Count (5),696 0xB1, 0x02, # . Feature (Variable),697 0x85, 0x32, # . Report ID (50),698 0x0A, 0x31, 0x10, # . Usage (1031h),699 0x25, 0x64, # . Logical Maximum (100),700 0x95, 0x01, # . Report Count (1),701 0xB1, 0x02, # . Feature (Variable),702 0x0A, 0x32, 0x10, # . Usage (1032h),703 0x25, 0x03, # . Logical Maximum (3),704 0xB1, 0x02, # . Feature (Variable),705 0x85, 0x34, # . Report ID (52),706 0x0A, 0x34, 0x10, # . Usage (1034h),707 0x25, 0x01, # . Logical Maximum (1),708 0x95, 0x04, # . Report Count (4),709 0xB1, 0x02, # . Feature (Variable),710 0x85, 0x35, # . Report ID (53),711 0x0A, 0x35, 0x10, # . Usage (1035h),712 0x26, 0xFF, 0x00, # . Logical Maximum (255),713 0x95, 0x0A, # . Report Count (10),714 0xB1, 0x02, # . Feature (Variable),715 0x85, 0x36, # . Report ID (54),716 0x0A, 0x35, 0x10, # . Usage (1035h),717 0x26, 0xFF, 0x00, # . Logical Maximum (255),718 0x96, 0x01, 0x01, # . Report Count (257),719 0xB1, 0x02, # . Feature (Variable),720 0x85, 0xCC, # . Report ID (204),721 0x0A, 0xCC, 0x10, # . Usage (10CCh),722 0x26, 0xFF, 0x00, # . Logical Maximum (255),723 0x95, 0x02, # . Report Count (2),724 0xB1, 0x02, # . Feature (Variable),725 0xC0, # . End Collection,726 0x0A, 0xAC, 0x10, # . Usage (10ACh),727 0xA1, 0x02, # . Collection (Logical),728 0x15, 0x00, # . Logical Minimum (0),729 0x26, 0xFF, 0x00, # . Logical Maximum (255),730 0x75, 0x08, # . Report Size (8),731 0x85, 0xAC, # . Report ID (172),732 0x09, 0x00, # . Usage (00h),733 0x95, 0xBF, # . Report Count (191),734 0x81, 0x02, # . Input (Variable),735 0x85, 0x33, # . Report ID (51),736 0x09, 0x00, # . Usage (00h),737 0x95, 0x12, # . Report Count (18),738 0xB1, 0x02, # . Feature (Variable),739 0x85, 0x64, # . Report ID (100),740 0x09, 0x00, # . Usage (00h),741 0x95, 0x0C, # . Report Count (12),742 0xB1, 0x02, # . Feature (Variable),743 0x85, 0x15, # . Report ID (21),744 0x09, 0x00, # . Usage (00h),745 0x95, 0x0E, # . Report Count (14),746 0xB1, 0x02, # . Feature (Variable),747 0x85, 0x12, # . Report ID (18),748 0x09, 0x00, # . Usage (00h),749 0x95, 0x04, # . Report Count (4),750 0xB1, 0x02, # . Feature (Variable),751 0x85, 0x16, # . Report ID (22),752 0x09, 0x00, # . Usage (00h),753 0x95, 0x0E, # . Report Count (14),754 0xB1, 0x02, # . Feature (Variable),755 0x85, 0x40, # . Report ID (64),756 0x09, 0x00, # . Usage (00h),757 0x95, 0x01, # . Report Count (1),758 0xB1, 0x02, # . Feature (Variable),759 0x85, 0x41, # . Report ID (65),760 0x09, 0x00, # . Usage (00h),761 0x95, 0x01, # . Report Count (1),762 0xB1, 0x02, # . Feature (Variable),763 0x85, 0x42, # . Report ID (66),764 0x09, 0x00, # . Usage (00h),765 0x95, 0x04, # . Report Count (4),766 0xB1, 0x02, # . Feature (Variable),767 0x85, 0x43, # . Report ID (67),768 0x09, 0x00, # . Usage (00h),769 0x95, 0x0D, # . Report Count (13),770 0xB1, 0x02, # . Feature (Variable),771 0x85, 0x44, # . Report ID (68),772 0x09, 0x00, # . Usage (00h),773 0x95, 0x3F, # . Report Count (63),774 0xB1, 0x02, # . Feature (Variable),775 0x85, 0x45, # . Report ID (69),776 0x09, 0x00, # . Usage (00h),777 0x95, 0x20, # . Report Count (32),778 0xB1, 0x02, # . Feature (Variable),779 0x85, 0x60, # . Report ID (96),780 0x09, 0x00, # . Usage (00h),781 0x95, 0x3F, # . Report Count (63),782 0xB1, 0x02, # . Feature (Variable),783 0x85, 0x61, # . Report ID (97),784 0x09, 0x00, # . Usage (00h),785 0x95, 0x3E, # . Report Count (62),786 0xB1, 0x02, # . Feature (Variable),787 0x85, 0x62, # . Report ID (98),788 0x09, 0x00, # . Usage (00h),789 0x95, 0x3E, # . Report Count (62),790 0xB1, 0x02, # . Feature (Variable),791 0xC0, # . End Collection,792 0x85, 0xD0, # . Report ID (208),793 0x09, 0x01, # . Usage (01h),794 0x96, 0x08, 0x00, # . Report Count (8),795 0xB1, 0x02, # . Feature (Variable),796 0x85, 0xD1, # . Report ID (209),797 0x09, 0x01, # . Usage (01h),798 0x96, 0x04, 0x01, # . Report Count (260),799 0xB1, 0x02, # . Feature (Variable),800 0x85, 0xD2, # . Report ID (210),801 0x09, 0x01, # . Usage (01h),802 0x96, 0x04, 0x01, # . Report Count (260),803 0xB1, 0x02, # . Feature (Variable),804 0x85, 0xD3, # . Report ID (211),805 0x09, 0x01, # . Usage (01h),806 0x96, 0x04, 0x00, # . Report Count (4),807 0xB1, 0x02, # . Feature (Variable),808 0x85, 0xD4, # . Report ID (212),809 0x09, 0x01, # . Usage (01h),810 0x96, 0x04, 0x00, # . Report Count (4),811 0xB1, 0x02, # . Feature (Variable),812 0x85, 0xD5, # . Report ID (213),813 0x09, 0x01, # . Usage (01h),814 0x96, 0x04, 0x00, # . Report Count (4),815 0xB1, 0x02, # . Feature (Variable),816 0x85, 0xD6, # . Report ID (214),817 0x09, 0x01, # . Usage (01h),818 0x96, 0x04, 0x00, # . Report Count (4),819 0xB1, 0x02, # . Feature (Variable),820 0x85, 0xD7, # . Report ID (215),821 0x09, 0x01, # . Usage (01h),822 0x96, 0x08, 0x00, # . Report Count (8),823 0xB1, 0x02, # . Feature (Variable),824 0x85, 0xD8, # . Report ID (216),825 0x09, 0x01, # . Usage (01h),826 0x96, 0x0C, 0x00, # . Report Count (12),827 0xB1, 0x02, # . Feature (Variable),828 0x85, 0xD9, # . Report ID (217),829 0x09, 0x01, # . Usage (01h),830 0x96, 0x00, 0x0A, # . Report Count (2560),831 0xB1, 0x02, # . Feature (Variable),832 0x85, 0xDA, # . Report ID (218),833 0x09, 0x01, # . Usage (01h),834 0x96, 0x04, 0x04, # . Report Count (1028),835 0xB1, 0x02, # . Feature (Variable),836 0x85, 0xDB, # . Report ID (219),837 0x09, 0x01, # . Usage (01h),838 0x96, 0x06, 0x00, # . Report Count (6),839 0xB1, 0x02, # . Feature (Variable),840 0x85, 0xDC, # . Report ID (220),841 0x09, 0x01, # . Usage (01h),842 0x96, 0x02, 0x00, # . Report Count (2),843 0xB1, 0x02, # . Feature (Variable),844 0x85, 0xDD, # . Report ID (221),845 0x09, 0x01, # . Usage (01h),846 0x96, 0x04, 0x00, # . Report Count (4),847 0xB1, 0x02, # . Feature (Variable),848 0x85, 0xDE, # . Report ID (222),849 0x09, 0x01, # . Usage (01h),850 0x96, 0x04, 0x00, # . Report Count (4),851 0xB1, 0x02, # . Feature (Variable),852 0x85, 0xDF, # . Report ID (223),853 0x09, 0x01, # . Usage (01h),854 0x96, 0x22, 0x00, # . Report Count (34),855 0xB1, 0x02, # . Feature (Variable),856 0x85, 0xE0, # . Report ID (224),857 0x09, 0x01, # . Usage (01h),858 0x96, 0x01, 0x00, # . Report Count (1),859 0xB1, 0x02, # . Feature (Variable),860 0x85, 0xE1, # . Report ID (225),861 0x09, 0x01, # . Usage (01h),862 0x96, 0x02, 0x00, # . Report Count (2),863 0xB1, 0x02, # . Feature (Variable),864 0x85, 0xE2, # . Report ID (226),865 0x09, 0x01, # . Usage (01h),866 0x96, 0x02, 0x00, # . Report Count (2),867 0xB1, 0x02, # . Feature (Variable),868 0x85, 0xE3, # . Report ID (227),869 0x09, 0x01, # . Usage (01h),870 0x96, 0x02, 0x00, # . Report Count (2),871 0xB1, 0x02, # . Feature (Variable),872 0x85, 0xE4, # . Report ID (228),873 0x09, 0x01, # . Usage (01h),874 0x96, 0xFF, 0x01, # . Report Count (511),875 0xB1, 0x02, # . Feature (Variable),876 0xC0 # . End Collection877]878# fmt: on879 880# Report ID (20), Usage (1014h), Report Count (13) -> 15881wacom_pth860_v150 = wacom_pth860_v145.copy()882wacom_pth860_v150[0x2CA] = 0x0F883 884# fmt: off885wacom_pth460_v105 = [886 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),887 0x09, 0x01, # . Usage (01h),888 0xA1, 0x01, # . Collection (Application),889 0x85, 0x10, # . Report ID (16),890 0x09, 0x20, # . Usage (20h),891 0x35, 0x00, # . Physical Minimum (0),892 0x45, 0x00, # . Physical Maximum (0),893 0x15, 0x00, # . Logical Minimum (0),894 0x25, 0x01, # . Logical Maximum (1),895 0xA1, 0x00, # . Collection (Physical),896 0x09, 0x42, # . Usage (42h),897 0x09, 0x44, # . Usage (44h),898 0x09, 0x5A, # . Usage (5Ah),899 0x09, 0x45, # . Usage (45h),900 0x09, 0x3C, # . Usage (3Ch),901 0x09, 0x32, # . Usage (32h),902 0x09, 0x36, # . Usage (36h),903 0x25, 0x01, # . Logical Maximum (1),904 0x75, 0x01, # . Report Size (1),905 0x95, 0x07, # . Report Count (7),906 0x81, 0x02, # . Input (Variable),907 0x95, 0x01, # . Report Count (1),908 0x81, 0x03, # . Input (Constant, Variable),909 0x0A, 0x30, 0x01, # . Usage (0130h),910 0x65, 0x11, # . Unit (Centimeter),911 0x55, 0x0D, # . Unit Exponent (13),912 0x47, 0x58, 0x3E, 0x00, 0x00, # . Physical Maximum (15960),913 0x27, 0xB0, 0x7C, 0x00, 0x00, # . Logical Maximum (31920),914 0x75, 0x18, # . Report Size (24),915 0x95, 0x01, # . Report Count (1),916 0x81, 0x02, # . Input (Variable),917 0x0A, 0x31, 0x01, # . Usage (0131h),918 0x47, 0xF7, 0x26, 0x00, 0x00, # . Physical Maximum (9975),919 0x27, 0xEE, 0x4D, 0x00, 0x00, # . Logical Maximum (19950),920 0x81, 0x02, # . Input (Variable),921 0x09, 0x30, # . Usage (30h),922 0x55, 0x00, # . Unit Exponent (0),923 0x65, 0x00, # . Unit,924 0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 0925 0x75, 0x10, # . Report Size (16),926 0x81, 0x02, # . Input (Variable),927 0x09, 0x3D, # . Usage (3Dh),928 0x09, 0x3E, # . Usage (3Eh),929 0x65, 0x14, # . Unit (Degrees),930 0x55, 0x00, # . Unit Exponent (0),931 0x35, 0xC0, # . Physical Minimum (-64),932 0x45, 0x3F, # . Physical Maximum (63),933 0x15, 0xC0, # . Logical Minimum (-64),934 0x25, 0x3F, # . Logical Maximum (63),935 0x75, 0x08, # . Report Size (8),936 0x95, 0x02, # . Report Count (2),937 0x81, 0x02, # . Input (Variable),938 0x09, 0x41, # . Usage (41h),939 0x65, 0x14, # . Unit (Degrees),940 0x55, 0x00, # . Unit Exponent (0),941 0x36, 0x4C, 0xFF, # . Physical Minimum (-180),942 0x46, 0xB3, 0x00, # . Physical Maximum (179),943 0x16, 0x7C, 0xFC, # . Logical Minimum (-900),944 0x26, 0x83, 0x03, # . Logical Maximum (899),945 0x75, 0x10, # . Report Size (16),946 0x95, 0x01, # . Report Count (1),947 0x81, 0x0A, # . Input (Variable, Wrap),948 0x0A, 0x03, 0x0D, # . Usage (0D03h),949 0x65, 0x00, # . Unit,950 0x55, 0x00, # . Unit Exponent (0),951 0x35, 0x00, # . Physical Minimum (0),952 0x45, 0x00, # . Physical Maximum (0),953 0x15, 0x00, # . Logical Minimum (0),954 0x26, 0xFF, 0x07, # . Logical Maximum (2047),955 0x81, 0x02, # . Input (Variable),956 0x0A, 0x32, 0x01, # . Usage (0132h),957 0x25, 0x3F, # . Logical Maximum (63),958 0x75, 0x08, # . Report Size (8),959 0x95, 0x01, # . Report Count (1),960 0x81, 0x02, # . Input (Variable),961 0x09, 0x5B, # . Usage (5Bh),962 0x09, 0x5C, # . Usage (5Ch),963 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),964 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),965 0x75, 0x20, # . Report Size (32),966 0x95, 0x02, # . Report Count (2),967 0x81, 0x02, # . Input (Variable),968 0x09, 0x77, # . Usage (77h),969 0x15, 0x00, # . Logical Minimum (0),970 0x26, 0xFF, 0x0F, # . Logical Maximum (4095),971 0x75, 0x10, # . Report Size (16),972 0x95, 0x01, # . Report Count (1),973 0x81, 0x02, # . Input (Variable),974 0xC0, # . End Collection,975 0x85, 0x11, # . Report ID (17),976 0x65, 0x00, # . Unit,977 0x55, 0x00, # . Unit Exponent (0),978 0x35, 0x00, # . Physical Minimum (0),979 0x45, 0x00, # . Physical Maximum (0),980 0x09, 0x39, # . Usage (39h),981 0xA1, 0x00, # . Collection (Physical),982 0x09, 0x39, # . Usage (39h),983 0xA1, 0x00, # . Collection (Physical),984 0x35, 0x00, # . Physical Minimum (0),985 0x45, 0x00, # . Physical Maximum (0),986 0x15, 0x00, # . Logical Minimum (0),987 0x1A, 0x10, 0x09, # . Usage Minimum (0910h),988 0x2A, 0x15, 0x09, # . Usage Maximum (0915h),989 0x15, 0x00, # . Logical Minimum (0),990 0x25, 0x01, # . Logical Maximum (1),991 0x75, 0x01, # . Report Size (1),992 0x95, 0x06, # . Report Count (6),993 0x81, 0x02, # . Input (Variable),994 0x95, 0x02, # . Report Count (2),995 0x81, 0x03, # . Input (Constant, Variable),996 0xC0, # . End Collection,997 0x75, 0x08, # . Report Size (8),998 0x95, 0x01, # . Report Count (1),999 0x81, 0x03, # . Input (Constant, Variable),1000 0x09, 0x39, # . Usage (39h),1001 0xA1, 0x00, # . Collection (Physical),1002 0x35, 0x00, # . Physical Minimum (0),1003 0x45, 0x00, # . Physical Maximum (0),1004 0x0A, 0x95, 0x09, # . Usage (0995h),1005 0x15, 0x00, # . Logical Minimum (0),1006 0x25, 0x01, # . Logical Maximum (1),1007 0x75, 0x01, # . Report Size (1),1008 0x95, 0x01, # . Report Count (1),1009 0x81, 0x02, # . Input (Variable),1010 0x95, 0x07, # . Report Count (7),1011 0x81, 0x03, # . Input (Constant, Variable),1012 0xC0, # . End Collection,1013 0x09, 0x39, # . Usage (39h),1014 0xA1, 0x00, # . Collection (Physical),1015 0x35, 0x00, # . Physical Minimum (0),1016 0x15, 0x00, # . Logical Minimum (0),1017 0x0A, 0x38, 0x01, # . Usage (0138h),1018 0x65, 0x14, # . Unit (Degrees),1019 0x55, 0x00, # . Unit Exponent (0),1020 0x35, 0x00, # . Physical Minimum (0),1021 0x46, 0x67, 0x01, # . Physical Maximum (359),1022 0x15, 0x00, # . Logical Minimum (0),1023 0x25, 0x47, # . Logical Maximum (71),1024 0x75, 0x07, # . Report Size (7),1025 0x95, 0x01, # . Report Count (1),1026 0x81, 0x4A, # . Input (Variable, Wrap, Null State),1027 0x0A, 0x39, 0x01, # . Usage (0139h),1028 0x65, 0x00, # . Unit,1029 0x55, 0x00, # . Unit Exponent (0),1030 0x45, 0x00, # . Physical Maximum (0),1031 0x25, 0x01, # . Logical Maximum (1),1032 0x75, 0x01, # . Report Size (1),1033 0x95, 0x01, # . Report Count (1),1034 0x81, 0x02, # . Input (Variable),1035 0xC0, # . End Collection,1036 0x75, 0x08, # . Report Size (8),1037 0x95, 0x04, # . Report Count (4),1038 0x81, 0x03, # . Input (Constant, Variable),1039 0xC0, # . End Collection,1040 0x85, 0x13, # . Report ID (19),1041 0x65, 0x00, # . Unit,1042 0x55, 0x00, # . Unit Exponent (0),1043 0x35, 0x00, # . Physical Minimum (0),1044 0x45, 0x00, # . Physical Maximum (0),1045 0x0A, 0x13, 0x10, # . Usage (1013h),1046 0xA1, 0x00, # . Collection (Physical),1047 0x0A, 0x13, 0x10, # . Usage (1013h),1048 0xA1, 0x00, # . Collection (Physical),1049 0x35, 0x00, # . Physical Minimum (0),1050 0x45, 0x00, # . Physical Maximum (0),1051 0x15, 0x00, # . Logical Minimum (0),1052 0x0A, 0x3B, 0x04, # . Usage (043Bh),1053 0x15, 0x00, # . Logical Minimum (0),1054 0x25, 0x64, # . Logical Maximum (100),1055 0x75, 0x07, # . Report Size (7),1056 0x95, 0x01, # . Report Count (1),1057 0x81, 0x02, # . Input (Variable),1058 0x0A, 0x04, 0x04, # . Usage (0404h),1059 0x25, 0x01, # . Logical Maximum (1),1060 0x75, 0x01, # . Report Size (1),1061 0x81, 0x02, # . Input (Variable),1062 0xC0, # . End Collection,1063 0x0A, 0x13, 0x10, # . Usage (1013h),1064 0xA1, 0x00, # . Collection (Physical),1065 0x35, 0x00, # . Physical Minimum (0),1066 0x45, 0x00, # . Physical Maximum (0),1067 0x0A, 0x52, 0x04, # . Usage (0452h),1068 0x15, 0x00, # . Logical Minimum (0),1069 0x25, 0x01, # . Logical Maximum (1),1070 0x75, 0x01, # . Report Size (1),1071 0x95, 0x01, # . Report Count (1),1072 0x81, 0x02, # . Input (Variable),1073 0x0A, 0x41, 0x04, # . Usage (0441h),1074 0x15, 0x00, # . Logical Minimum (0),1075 0x25, 0x07, # . Logical Maximum (7),1076 0x75, 0x03, # . Report Size (3),1077 0x95, 0x02, # . Report Count (2),1078 0x81, 0x02, # . Input (Variable),1079 0x0A, 0x54, 0x04, # . Usage (0454h),1080 0x15, 0x00, # . Logical Minimum (0),1081 0x25, 0x01, # . Logical Maximum (1),1082 0x75, 0x01, # . Report Size (1),1083 0x95, 0x01, # . Report Count (1),1084 0x81, 0x02, # . Input (Variable),1085 0xC0, # . End Collection,1086 0x0A, 0x13, 0x10, # . Usage (1013h),1087 0xA1, 0x00, # . Collection (Physical),1088 0x35, 0x00, # . Physical Minimum (0),1089 0x45, 0x00, # . Physical Maximum (0),1090 0x15, 0x00, # . Logical Minimum (0),1091 0x0A, 0x3C, 0x04, # . Usage (043Ch),1092 0x55, 0x00, # . Unit Exponent (0),1093 0x65, 0x00, # . Unit,1094 0x15, 0xFB, # . Logical Minimum (-5),1095 0x25, 0x32, # . Logical Maximum (50),1096 0x75, 0x08, # . Report Size (8),1097 0x95, 0x01, # . Report Count (1),1098 0x81, 0x02, # . Input (Variable),1099 0xC0, # . End Collection,1100 0x0A, 0x13, 0x10, # . Usage (1013h),1101 0xA1, 0x00, # . Collection (Physical),1102 0x35, 0x00, # . Physical Minimum (0),1103 0x45, 0x00, # . Physical Maximum (0),1104 0x15, 0x00, # . Logical Minimum (0),1105 0x0A, 0x3D, 0x04, # . Usage (043Dh),1106 0x55, 0x00, # . Unit Exponent (0),1107 0x65, 0x00, # . Unit,1108 0x15, 0x00, # . Logical Minimum (0),1109 0x26, 0xFF, 0x0F, # . Logical Maximum (4095),1110 0x75, 0x10, # . Report Size (16),1111 0x95, 0x01, # . Report Count (1),1112 0x81, 0x02, # . Input (Variable),1113 0xC0, # . End Collection,1114 0x75, 0x08, # . Report Size (8),1115 0x95, 0x03, # . Report Count (3),1116 0x81, 0x03, # . Input (Constant, Variable),1117 0xC0, # . End Collection,1118 0x09, 0x0E, # . Usage (0Eh),1119 0xA1, 0x02, # . Collection (Logical),1120 0x85, 0x02, # . Report ID (2),1121 0x0A, 0x02, 0x10, # . Usage (1002h),1122 0x15, 0x02, # . Logical Minimum (2),1123 0x25, 0x02, # . Logical Maximum (2),1124 0x75, 0x08, # . Report Size (8),1125 0x95, 0x01, # . Report Count (1),1126 0xB1, 0x02, # . Feature (Variable),1127 0x85, 0x03, # . Report ID (3),1128 0x0A, 0x03, 0x10, # . Usage (1003h),1129 0x15, 0x00, # . Logical Minimum (0),1130 0x26, 0xFF, 0x00, # . Logical Maximum (255),1131 0x95, 0x01, # . Report Count (1),1132 0xB1, 0x02, # . Feature (Variable),1133 0x85, 0x04, # . Report ID (4),1134 0x0A, 0x04, 0x10, # . Usage (1004h),1135 0x15, 0x00, # . Logical Minimum (0),1136 0x25, 0x01, # . Logical Maximum (1),1137 0x95, 0x01, # . Report Count (1),1138 0xB1, 0x02, # . Feature (Variable),1139 0x85, 0x07, # . Report ID (7),1140 0x0A, 0x09, 0x10, # . Usage (1009h),1141 0x15, 0x00, # . Logical Minimum (0),1142 0x26, 0xFF, 0x00, # . Logical Maximum (255),1143 0x95, 0x01, # . Report Count (1),1144 0xB1, 0x02, # . Feature (Variable),1145 0xB1, 0x03, # . Feature (Constant, Variable),1146 0x0A, 0x07, 0x10, # . Usage (1007h),1147 0x09, 0x00, # . Usage (00h),1148 0x0A, 0x08, 0x10, # . Usage (1008h),1149 0x09, 0x00, # . Usage (00h),1150 0x09, 0x00, # . Usage (00h),1151 0x09, 0x00, # . Usage (00h),1152 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),1153 0x75, 0x10, # . Report Size (16),1154 0x95, 0x06, # . Report Count (6),1155 0xB1, 0x02, # . Feature (Variable),1156 0x09, 0x00, # . Usage (00h),1157 0x25, 0x00, # . Logical Maximum (0),1158 0x75, 0x08, # . Report Size (8),1159 0x95, 0x01, # . Report Count (1),1160 0xB1, 0x03, # . Feature (Constant, Variable),1161 0x85, 0x0C, # . Report ID (12),1162 0x0A, 0x30, 0x0D, # . Usage (0D30h),1163 0x0A, 0x31, 0x0D, # . Usage (0D31h),1164 0x0A, 0x32, 0x0D, # . Usage (0D32h),1165 0x0A, 0x33, 0x0D, # . Usage (0D33h),1166 0x65, 0x11, # . Unit (Centimeter),1167 0x55, 0x0D, # . Unit Exponent (13),1168 0x35, 0x00, # . Physical Minimum (0),1169 0x46, 0xC8, 0x00, # . Physical Maximum (200),1170 0x15, 0x00, # . Logical Minimum (0),1171 0x26, 0x90, 0x01, # . Logical Maximum (400),1172 0x75, 0x10, # . Report Size (16),1173 0x95, 0x04, # . Report Count (4),1174 0xB1, 0x02, # . Feature (Variable),1175 0x85, 0x0D, # . Report ID (13),1176 0x0A, 0x0D, 0x10, # . Usage (100Dh),1177 0x65, 0x00, # . Unit,1178 0x55, 0x00, # . Unit Exponent (0),1179 0x45, 0x00, # . Physical Maximum (0),1180 0x25, 0x01, # . Logical Maximum (1),1181 0x75, 0x08, # . Report Size (8),1182 0x95, 0x01, # . Report Count (1),1183 0xB1, 0x02, # . Feature (Variable),1184 0x85, 0x14, # . Report ID (20),1185 0x0A, 0x14, 0x10, # . Usage (1014h),1186 0x26, 0xFF, 0x00, # . Logical Maximum (255),1187 0x95, 0x0D, # . Report Count (13),1188 0xB1, 0x02, # . Feature (Variable),1189 0x85, 0xCC, # . Report ID (204),1190 0x0A, 0xCC, 0x10, # . Usage (10CCh),1191 0x95, 0x02, # . Report Count (2),1192 0xB1, 0x02, # . Feature (Variable),1193 0xC0, # . End Collection,1194 0x09, 0x0E, # . Usage (0Eh),1195 0xA1, 0x02, # . Collection (Logical),1196 0x85, 0x31, # . Report ID (49),1197 0x0A, 0x31, 0x10, # . Usage (1031h),1198 0x25, 0x64, # . Logical Maximum (100),1199 0x95, 0x03, # . Report Count (3),1200 0xB1, 0x02, # . Feature (Variable),1201 0x95, 0x02, # . Report Count (2),1202 0xB1, 0x03, # . Feature (Constant, Variable),1203 0xC0, # . End Collection,1204 0x0A, 0xAC, 0x10, # . Usage (10ACh),1205 0xA1, 0x02, # . Collection (Logical),1206 0x15, 0x00, # . Logical Minimum (0),1207 0x26, 0xFF, 0x00, # . Logical Maximum (255),1208 0x75, 0x08, # . Report Size (8),1209 0x85, 0xAC, # . Report ID (172),1210 0x09, 0x00, # . Usage (00h),1211 0x96, 0xBF, 0x00, # . Report Count (191),1212 0x81, 0x02, # . Input (Variable),1213 0x85, 0x15, # . Report ID (21),1214 0x09, 0x00, # . Usage (00h),1215 0x95, 0x0E, # . Report Count (14),1216 0xB1, 0x02, # . Feature (Variable),1217 0x85, 0x33, # . Report ID (51),1218 0x09, 0x00, # . Usage (00h),1219 0x95, 0x12, # . Report Count (18),1220 0xB1, 0x02, # . Feature (Variable),1221 0x85, 0x44, # . Report ID (68),1222 0x09, 0x00, # . Usage (00h),1223 0x95, 0x04, # . Report Count (4),1224 0xB1, 0x02, # . Feature (Variable),1225 0x85, 0x45, # . Report ID (69),1226 0x09, 0x00, # . Usage (00h),1227 0x95, 0x20, # . Report Count (32),1228 0xB1, 0x02, # . Feature (Variable),1229 0x85, 0x60, # . Report ID (96),1230 0x09, 0x00, # . Usage (00h),1231 0x95, 0x3F, # . Report Count (63),1232 0xB1, 0x02, # . Feature (Variable),1233 0x85, 0x61, # . Report ID (97),1234 0x09, 0x00, # . Usage (00h),1235 0x95, 0x3E, # . Report Count (62),1236 0xB1, 0x02, # . Feature (Variable),1237 0x85, 0x62, # . Report ID (98),1238 0x09, 0x00, # . Usage (00h),1239 0x95, 0x3E, # . Report Count (62),1240 0xB1, 0x02, # . Feature (Variable),1241 0x85, 0x65, # . Report ID (101),1242 0x09, 0x00, # . Usage (00h),1243 0x95, 0x04, # . Report Count (4),1244 0xB1, 0x02, # . Feature (Variable),1245 0x85, 0x66, # . Report ID (102),1246 0x09, 0x00, # . Usage (00h),1247 0x95, 0x04, # . Report Count (4),1248 0xB1, 0x02, # . Feature (Variable),1249 0x85, 0x67, # . Report ID (103),1250 0x09, 0x00, # . Usage (00h),1251 0x95, 0x04, # . Report Count (4),1252 0xB1, 0x02, # . Feature (Variable),1253 0x85, 0x68, # . Report ID (104),1254 0x09, 0x00, # . Usage (00h),1255 0x95, 0x11, # . Report Count (17),1256 0xB1, 0x02, # . Feature (Variable),1257 0x85, 0x6F, # . Report ID (111),1258 0x09, 0x00, # . Usage (00h),1259 0x95, 0x3E, # . Report Count (62),1260 0xB1, 0x02, # . Feature (Variable),1261 0x85, 0xCD, # . Report ID (205),1262 0x09, 0x00, # . Usage (00h),1263 0x95, 0x02, # . Report Count (2),1264 0xB1, 0x02, # . Feature (Variable),1265 0x85, 0x16, # . Report ID (22),1266 0x09, 0x00, # . Usage (00h),1267 0x95, 0x0E, # . Report Count (14),1268 0xB1, 0x02, # . Feature (Variable),1269 0x85, 0x35, # . Report ID (53),1270 0x09, 0x00, # . Usage (00h),1271 0x95, 0x0A, # . Report Count (10),1272 0xB1, 0x02, # . Feature (Variable),1273 0xC0, # . End Collection,1274 0x85, 0xD1, # . Report ID (209),1275 0x09, 0x01, # . Usage (01h),1276 0x96, 0x04, 0x01, # . Report Count (260),1277 0xB1, 0x02, # . Feature (Variable),1278 0x85, 0xD2, # . Report ID (210),1279 0x09, 0x01, # . Usage (01h),1280 0x96, 0x04, 0x01, # . Report Count (260),1281 0xB1, 0x02, # . Feature (Variable),1282 0x85, 0xD3, # . Report ID (211),1283 0x09, 0x01, # . Usage (01h),1284 0x96, 0x04, 0x00, # . Report Count (4),1285 0xB1, 0x02, # . Feature (Variable),1286 0x85, 0xD4, # . Report ID (212),1287 0x09, 0x01, # . Usage (01h),1288 0x96, 0x04, 0x00, # . Report Count (4),1289 0xB1, 0x02, # . Feature (Variable),1290 0x85, 0xD5, # . Report ID (213),1291 0x09, 0x01, # . Usage (01h),1292 0x96, 0x04, 0x00, # . Report Count (4),1293 0xB1, 0x02, # . Feature (Variable),1294 0x85, 0xD6, # . Report ID (214),1295 0x09, 0x01, # . Usage (01h),1296 0x96, 0x04, 0x00, # . Report Count (4),1297 0xB1, 0x02, # . Feature (Variable),1298 0x85, 0xD7, # . Report ID (215),1299 0x09, 0x01, # . Usage (01h),1300 0x96, 0x08, 0x00, # . Report Count (8),1301 0xB1, 0x02, # . Feature (Variable),1302 0x85, 0xD8, # . Report ID (216),1303 0x09, 0x01, # . Usage (01h),1304 0x96, 0x0C, 0x00, # . Report Count (12),1305 0xB1, 0x02, # . Feature (Variable),1306 0x85, 0xD9, # . Report ID (217),1307 0x09, 0x01, # . Usage (01h),1308 0x96, 0x00, 0x0A, # . Report Count (2560),1309 0xB1, 0x02, # . Feature (Variable),1310 0x85, 0xDA, # . Report ID (218),1311 0x09, 0x01, # . Usage (01h),1312 0x96, 0x04, 0x04, # . Report Count (1028),1313 0xB1, 0x02, # . Feature (Variable),1314 0x85, 0xDB, # . Report ID (219),1315 0x09, 0x01, # . Usage (01h),1316 0x96, 0x06, 0x00, # . Report Count (6),1317 0xB1, 0x02, # . Feature (Variable),1318 0x85, 0xDC, # . Report ID (220),1319 0x09, 0x01, # . Usage (01h),1320 0x96, 0x02, 0x00, # . Report Count (2),1321 0xB1, 0x02, # . Feature (Variable),1322 0x85, 0xDD, # . Report ID (221),1323 0x09, 0x01, # . Usage (01h),1324 0x96, 0x04, 0x00, # . Report Count (4),1325 0xB1, 0x02, # . Feature (Variable),1326 0x85, 0xDE, # . Report ID (222),1327 0x09, 0x01, # . Usage (01h),1328 0x96, 0x04, 0x00, # . Report Count (4),1329 0xB1, 0x02, # . Feature (Variable),1330 0x85, 0xDF, # . Report ID (223),1331 0x09, 0x01, # . Usage (01h),1332 0x96, 0x22, 0x00, # . Report Count (34),1333 0xB1, 0x02, # . Feature (Variable),1334 0x85, 0xE0, # . Report ID (224),1335 0x09, 0x01, # . Usage (01h),1336 0x96, 0x01, 0x00, # . Report Count (1),1337 0xB1, 0x02, # . Feature (Variable),1338 0x85, 0xE1, # . Report ID (225),1339 0x09, 0x01, # . Usage (01h),1340 0x96, 0x02, 0x00, # . Report Count (2),1341 0xB1, 0x02, # . Feature (Variable),1342 0x85, 0xE2, # . Report ID (226),1343 0x09, 0x01, # . Usage (01h),1344 0x96, 0x02, 0x00, # . Report Count (2),1345 0xB1, 0x02, # . Feature (Variable),1346 0x85, 0xE3, # . Report ID (227),1347 0x09, 0x01, # . Usage (01h),1348 0x96, 0x02, 0x00, # . Report Count (2),1349 0xB1, 0x02, # . Feature (Variable),1350 0x85, 0xE4, # . Report ID (228),1351 0x09, 0x01, # . Usage (01h),1352 0x96, 0xFF, 0x01, # . Report Count (511),1353 0xB1, 0x02, # . Feature (Variable),1354 0x85, 0xCB, # . Report ID (203),1355 0x09, 0x01, # . Usage (01h),1356 0x96, 0x1F, 0x00, # . Report Count (31),1357 0xB1, 0x02, # . Feature (Variable),1358 0xC0 # . End Collection1359]1360# fmt: on1361