1use pce_config::PcePaletteType; 2use std::array; 3 4pub type PcePalette = [(u8, u8, u8); 512]; 5 6pub fn for_type(palette: PcePaletteType) -> &'static PcePalette { 7 match palette { 8 PcePaletteType::PceComposite => COMPOSITE_PALETTE, 9 PcePaletteType::Linear => LINEAR_PALETTE, 10 } 11} 12 13pub fn make_greyscale(palette: &PcePalette) -> PcePalette { 14 array::from_fn(|i| { 15 let (r, g, b) = palette[i]; 16 let r: f64 = r.into(); 17 let g: f64 = g.into(); 18 let b: f64 = b.into(); 19 20 // Remove chroma information by converting from RGB to YUV, setting U and V to 0, then converting back to RGB 21 // This is equivalent to replacing all color components with Y 22 let y = 0.299 * r + 0.587 * g + 0.114 * b; 23 let y = y.round() as u8; 24 25 (y, y, y) 26 }) 27}
Generated using Kitrinx's TG16_Palette tool: https://github.com/Kitrinx/TG16_Palette
30const COMPOSITE_PALETTE: &PcePalette = &[ 31 (0, 0, 0), 32 (0, 0, 22), 33 (4, 2, 53), 34 (1, 0, 75), 35 (7, 4, 106), 36 (5, 1, 128), 37 (11, 6, 159), 38 (9, 3, 181), 39 (26, 0, 3), 40 (32, 5, 33), 41 (30, 2, 55), 42 (36, 7, 86), 43 (34, 4, 108), 44 (40, 9, 139), 45 (37, 6, 161), 46 (43, 11, 192), 47 (61, 8, 13), 48 (59, 5, 36), 49 (64, 10, 66), 50 (62, 7, 89), 51 (68, 12, 119), 52 (66, 9, 141), 53 (72, 14, 172), 54 (69, 11, 194), 55 (87, 9, 16), 56 (85, 5, 38), 57 (91, 10, 69), 58 (89, 7, 91), 59 (94, 12, 122), 60 (92, 9, 144), 61 (98, 14, 175), 62 (96, 11, 197), 63 (114, 9, 19), 64 (119, 14, 49), 65 (117, 11, 72), 66 (123, 16, 102), 67 (121, 12, 124), 68 (127, 17, 155), 69 (124, 14, 177), 70 (130, 19, 208), 71 (148, 17, 30), 72 (146, 14, 52), 73 (152, 19, 82), 74 (149, 16, 105), 75 (155, 21, 135), 76 (153, 18, 158), 77 (159, 23, 188), 78 (157, 19, 210), 79 (174, 17, 32), 80 (172, 14, 54), 81 (178, 19, 85), 82 (176, 16, 107), 83 (182, 21, 138), 84 (179, 18, 160), 85 (185, 23, 191), 86 (183, 20, 213), 87 (201, 17, 35), 88 (207, 22, 65), 89 (204, 19, 88), 90 (210, 24, 118), 91 (208, 21, 140), 92 (214, 26, 171), 93 (212, 23, 193), 94 (218, 28, 224), 95 (9, 36, 8), 96 (7, 33, 30), 97 (13, 38, 61), 98 (10, 35, 83), 99 (16, 40, 114), 100 (14, 37, 136), 101 (20, 42, 167), 102 (17, 39, 189), 103 (35, 36, 11), 104 (33, 33, 33), 105 (39, 38, 63), 106 (37, 35, 86), 107 (42, 40, 116), 108 (40, 37, 139), 109 (46, 42, 169), 110 (44, 39, 191), 111 (62, 36, 13), 112 (67, 41, 44), 113 (65, 38, 66), 114 (71, 43, 97), 115 (69, 40, 119), 116 (75, 45, 149), 117 (72, 42, 172), 118 (78, 47, 202), 119 (96, 44, 24), 120 (94, 41, 46), 121 (100, 46, 77), 122 (97, 43, 99), 123 (103, 48, 130), 124 (101, 45, 152), 125 (107, 50, 183), 126 (105, 47, 205), 127 (122, 45, 27), 128 (120, 41, 49), 129 (126, 46, 80), 130 (124, 43, 102), 131 (130, 48, 132), 132 (127, 45, 155), 133 (133, 50, 185), 134 (131, 47, 208), 135 (149, 45, 29), 136 (155, 50, 60), 137 (152, 47, 82), 138 (158, 52, 113), 139 (156, 48, 135), 140 (162, 54, 166), 141 (160, 50, 188), 142 (166, 55, 218), 143 (183, 53, 40), 144 (181, 50, 62), 145 (187, 55, 93), 146 (185, 52, 115), 147 (191, 57, 146), 148 (188, 54, 168), 149 (194, 59, 199), 150 (192, 56, 221), 151 (210, 53, 43), 152 (207, 50, 65), 153 (213, 55, 96), 154 (211, 52, 118), 155 (217, 57, 148), 156 (215, 54, 171), 157 (220, 59, 201), 158 (218, 56, 224), 159 (10, 64, 8), 160 (15, 69, 38), 161 (13, 66, 61), 162 (19, 71, 91), 163 (17, 68, 113), 164 (23, 73, 144), 165 (20, 69, 166), 166 (26, 74, 197), 167 (44, 72, 19), 168 (42, 69, 41), 169 (48, 74, 71), 170 (45, 71, 94), 171 (51, 76, 124), 172 (49, 73, 147), 173 (47, 70, 169), 174 (53, 75, 199), 175 (70, 72, 21), 176 (68, 69, 43), 177 (74, 74, 74), 178 (72, 71, 96), 179 (78, 76, 127), 180 (75, 73, 149), 181 (81, 78, 180), 182 (79, 75, 202), 183 (97, 72, 24), 184 (103, 77, 54), 185 (100, 74, 77), 186 (106, 79, 107), 187 (104, 76, 129), 188 (110, 81, 160), 189 (108, 78, 182), 190 (114, 83, 213), 191 (131, 81, 35), 192 (129, 77, 57), 193 (135, 82, 87), 194 (133, 79, 110), 195 (139, 84, 140), 196 (136, 81, 163), 197 (134, 78, 185), 198 (140, 83, 215), 199 (158, 81, 37), 200 (155, 77, 60), 201 (161, 83, 90), 202 (159, 79, 112), 203 (165, 84, 143), 204 (163, 81, 165), 205 (168, 86, 196), 206 (166, 83, 218), 207 (184, 81, 40), 208 (190, 86, 70), 209 (188, 83, 93), 210 (193, 88, 123), 211 (191, 85, 146), 212 (197, 90, 176), 213 (195, 86, 198), 214 (201, 92, 229), 215 (218, 89, 51), 216 (216, 86, 73), 217 (222, 91, 104), 218 (220, 88, 126), 219 (217, 85, 148), 220 (223, 90, 179), 221 (221, 87, 201), 222 (227, 92, 232), 223 (18, 100, 16), 224 (16, 97, 38), 225 (22, 102, 69), 226 (20, 98, 91), 227 (26, 103, 121), 228 (23, 100, 144), 229 (29, 105, 174), 230 (27, 102, 197), 231 (45, 100, 18), 232 (51, 105, 49), 233 (48, 102, 71), 234 (54, 107, 102), 235 (52, 104, 124), 236 (58, 109, 155), 237 (56, 105, 177), 238 (62, 111, 207), 239 (71, 100, 21), 240 (77, 105, 51), 241 (75, 102, 74), 242 (81, 107, 104), 243 (78, 104, 127), 244 (84, 109, 157), 245 (82, 106, 179), 246 (88, 111, 210), 247 (106, 108, 32), 248 (103, 105, 54), 249 (109, 110, 85), 250 (107, 107, 107), 251 (113, 112, 137), 252 (111, 109, 160), 253 (116, 114, 190), 254 (114, 111, 213), 255 (132, 108, 34), 256 (138, 113, 65), 257 (136, 110, 87), 258 (141, 115, 118), 259 (139, 112, 140), 260 (145, 117, 171), 261 (143, 114, 193), 262 (149, 119, 223), 263 (158, 108, 37), 264 (164, 113, 68), 265 (162, 110, 90), 266 (168, 115, 120), 267 (166, 112, 143), 268 (171, 117, 173), 269 (169, 114, 196), 270 (175, 119, 226), 271 (193, 117, 48), 272 (190, 114, 70), 273 (196, 119, 101), 274 (194, 115, 123), 275 (200, 121, 154), 276 (198, 117, 176), 277 (204, 122, 206), 278 (201, 119, 229), 279 (219, 117, 50), 280 (225, 122, 81), 281 (223, 119, 103), 282 (229, 124, 134), 283 (226, 121, 156), 284 (232, 126, 187), 285 (230, 123, 209), 286 (236, 128, 240), 287 (19, 127, 15), 288 (25, 132, 46), 289 (23, 129, 68), 290 (29, 134, 99), 291 (26, 131, 121), 292 (32, 136, 152), 293 (30, 133, 174), 294 (36, 138, 205), 295 (54, 136, 26), 296 (51, 133, 49), 297 (57, 138, 79), 298 (55, 134, 101), 299 (61, 140, 132), 300 (59, 136, 154), 301 (65, 141, 185), 302 (62, 138, 207), 303 (80, 136, 29), 304 (86, 141, 59), 305 (84, 138, 82), 306 (89, 143, 112), 307 (87, 140, 135), 308 (93, 145, 165), 309 (91, 142, 187), 310 (97, 147, 218), 311 (106, 136, 32), 312 (112, 141, 62), 313 (110, 138, 84), 314 (116, 143, 115), 315 (114, 140, 137), 316 (119, 145, 168), 317 (117, 142, 190), 318 (123, 147, 221), 319 (141, 144, 42), 320 (139, 141, 65), 321 (144, 146, 95), 322 (142, 143, 118), 323 (148, 148, 148), 324 (146, 145, 170), 325 (152, 150, 201), 326 (149, 147, 223), 327 (167, 144, 45), 328 (173, 149, 76), 329 (171, 146, 98), 330 (177, 151, 128), 331 (174, 148, 151), 332 (180, 153, 181), 333 (178, 150, 204), 334 (184, 155, 234), 335 (193, 144, 48), 336 (199, 150, 78), 337 (197, 146, 100), 338 (203, 151, 131), 339 (201, 148, 153), 340 (207, 153, 184), 341 (204, 150, 206), 342 (210, 155, 237), 343 (228, 153, 58), 344 (226, 150, 81), 345 (232, 155, 111), 346 (229, 152, 134), 347 (235, 157, 164), 348 (233, 153, 186), 349 (239, 158, 217), 350 (237, 155, 239), 351 (28, 163, 23), 352 (34, 168, 54), 353 (32, 165, 76), 354 (38, 170, 107), 355 (35, 167, 129), 356 (41, 172, 160), 357 (39, 169, 182), 358 (37, 166, 204), 359 (54, 163, 26), 360 (60, 169, 57), 361 (58, 165, 79), 362 (64, 170, 109), 363 (62, 167, 132), 364 (67, 172, 162), 365 (65, 169, 185), 366 (71, 174, 215), 367 (89, 172, 37), 368 (87, 169, 59), 369 (92, 174, 90), 370 (90, 171, 112), 371 (96, 176, 143), 372 (94, 172, 165), 373 (100, 178, 195), 374 (97, 174, 218), 375 (115, 172, 40), 376 (121, 177, 70), 377 (119, 174, 92), 378 (125, 179, 123), 379 (122, 176, 145), 380 (120, 173, 168), 381 (126, 178, 198), 382 (124, 174, 220), 383 (141, 172, 42), 384 (147, 177, 73), 385 (145, 174, 95), 386 (151, 179, 126), 387 (149, 176, 148), 388 (155, 181, 178), 389 (152, 178, 201), 390 (158, 183, 231), 391 (176, 180, 53), 392 (174, 177, 75), 393 (180, 182, 106), 394 (177, 179, 128), 395 (183, 184, 159), 396 (181, 181, 181), 397 (187, 186, 212), 398 (185, 183, 234), 399 (202, 180, 56), 400 (208, 185, 86), 401 (206, 182, 108), 402 (212, 187, 139), 403 (210, 184, 161), 404 (207, 181, 184), 405 (213, 186, 214), 406 (211, 183, 236), 407 (229, 181, 58), 408 (235, 186, 89), 409 (232, 182, 111), 410 (238, 187, 142), 411 (236, 184, 164), 412 (242, 189, 194), 413 (240, 186, 217), 414 (245, 191, 247), 415 (37, 199, 31), 416 (35, 196, 54), 417 (40, 201, 84), 418 (38, 198, 107), 419 (44, 203, 137), 420 (42, 200, 159), 421 (48, 205, 190), 422 (45, 202, 212), 423 (63, 199, 34), 424 (61, 196, 56), 425 (67, 201, 87), 426 (64, 198, 109), 427 (70, 203, 140), 428 (68, 200, 162), 429 (74, 205, 193), 430 (72, 202, 215), 431 (89, 200, 37), 432 (95, 205, 67), 433 (93, 201, 89), 434 (99, 207, 120), 435 (97, 203, 142), 436 (103, 208, 173), 437 (100, 205, 195), 438 (106, 210, 226), 439 (124, 208, 47), 440 (122, 205, 70), 441 (128, 210, 100), 442 (125, 207, 123), 443 (131, 212, 153), 444 (129, 209, 175), 445 (135, 214, 206), 446 (133, 210, 228), 447 (150, 208, 50), 448 (148, 205, 72), 449 (154, 210, 103), 450 (152, 207, 125), 451 (158, 212, 156), 452 (155, 209, 178), 453 (161, 214, 209), 454 (159, 211, 231), 455 (177, 208, 53), 456 (183, 213, 83), 457 (180, 210, 106), 458 (186, 215, 136), 459 (184, 212, 158), 460 (190, 217, 189), 461 (188, 214, 211), 462 (193, 219, 242), 463 (211, 216, 64), 464 (209, 213, 86), 465 (215, 218, 116), 466 (213, 215, 139), 467 (218, 220, 169), 468 (216, 217, 192), 469 (222, 222, 222), 470 (220, 219, 244), 471 (238, 216, 66), 472 (235, 213, 88), 473 (241, 218, 119), 474 (239, 215, 141), 475 (245, 220, 172), 476 (242, 217, 194), 477 (248, 222, 225), 478 (246, 219, 247), 479 (37, 227, 31), 480 (43, 232, 62), 481 (41, 229, 84), 482 (47, 234, 115), 483 (45, 231, 137), 484 (51, 236, 167), 485 (48, 233, 190), 486 (54, 238, 220), 487 (72, 235, 42), 488 (70, 232, 64), 489 (76, 237, 95), 490 (73, 234, 117), 491 (79, 239, 148), 492 (77, 236, 170), 493 (83, 241, 201), 494 (81, 238, 223), 495 (98, 236, 45), 496 (96, 232, 67), 497 (102, 237, 97), 498 (100, 234, 120), 499 (106, 239, 150), 500 (103, 236, 173), 501 (109, 241, 203), 502 (107, 238, 225), 503 (125, 236, 47), 504 (131, 241, 78), 505 (128, 238, 100), 506 (134, 243, 131), 507 (132, 239, 153), 508 (138, 244, 183), 509 (136, 241, 206), 510 (141, 246, 236), 511 (159, 244, 58), 512 (157, 241, 80), 513 (163, 246, 111), 514 (161, 243, 133), 515 (166, 248, 164), 516 (164, 245, 186), 517 (170, 250, 217), 518 (168, 246, 239), 519 (186, 244, 61), 520 (183, 241, 83), 521 (189, 246, 114), 522 (187, 243, 136), 523 (193, 248, 166), 524 (191, 245, 189), 525 (196, 250, 219), 526 (194, 247, 242), 527 (212, 244, 63), 528 (218, 249, 94), 529 (215, 246, 116), 530 (221, 251, 147), 531 (219, 248, 169), 532 (225, 253, 200), 533 (223, 250, 222), 534 (229, 255, 252), 535 (246, 252, 74), 536 (244, 249, 96), 537 (250, 254, 127), 538 (248, 251, 149), 539 (254, 255, 180), 540 (251, 253, 202), 541 (255, 255, 233), 542 (255, 255, 255), 543];
def rgb_3_to_8(c): return int(round(c * 255 / 7)) print([(rgb_3_to_8((c >> 3) & 7), rgb_3_to_8((c >> 6) & 7), rgb_3_to_8(c & 7)) for c in range(512)])
548const LINEAR_PALETTE: &PcePalette = &[ 549 (0, 0, 0), 550 (0, 0, 36), 551 (0, 0, 73), 552 (0, 0, 109), 553 (0, 0, 146), 554 (0, 0, 182), 555 (0, 0, 219), 556 (0, 0, 255), 557 (36, 0, 0), 558 (36, 0, 36), 559 (36, 0, 73), 560 (36, 0, 109), 561 (36, 0, 146), 562 (36, 0, 182), 563 (36, 0, 219), 564 (36, 0, 255), 565 (73, 0, 0), 566 (73, 0, 36), 567 (73, 0, 73), 568 (73, 0, 109), 569 (73, 0, 146), 570 (73, 0, 182), 571 (73, 0, 219), 572 (73, 0, 255), 573 (109, 0, 0), 574 (109, 0, 36), 575 (109, 0, 73), 576 (109, 0, 109), 577 (109, 0, 146), 578 (109, 0, 182), 579 (109, 0, 219), 580 (109, 0, 255), 581 (146, 0, 0), 582 (146, 0, 36), 583 (146, 0, 73), 584 (146, 0, 109), 585 (146, 0, 146), 586 (146, 0, 182), 587 (146, 0, 219), 588 (146, 0, 255), 589 (182, 0, 0), 590 (182, 0, 36), 591 (182, 0, 73), 592 (182, 0, 109), 593 (182, 0, 146), 594 (182, 0, 182), 595 (182, 0, 219), 596 (182, 0, 255), 597 (219, 0, 0), 598 (219, 0, 36), 599 (219, 0, 73), 600 (219, 0, 109), 601 (219, 0, 146), 602 (219, 0, 182), 603 (219, 0, 219), 604 (219, 0, 255), 605 (255, 0, 0), 606 (255, 0, 36), 607 (255, 0, 73), 608 (255, 0, 109), 609 (255, 0, 146), 610 (255, 0, 182), 611 (255, 0, 219), 612 (255, 0, 255), 613 (0, 36, 0), 614 (0, 36, 36), 615 (0, 36, 73), 616 (0, 36, 109), 617 (0, 36, 146), 618 (0, 36, 182), 619 (0, 36, 219), 620 (0, 36, 255), 621 (36, 36, 0), 622 (36, 36, 36), 623 (36, 36, 73), 624 (36, 36, 109), 625 (36, 36, 146), 626 (36, 36, 182), 627 (36, 36, 219), 628 (36, 36, 255), 629 (73, 36, 0), 630 (73, 36, 36), 631 (73, 36, 73), 632 (73, 36, 109), 633 (73, 36, 146), 634 (73, 36, 182), 635 (73, 36, 219), 636 (73, 36, 255), 637 (109, 36, 0), 638 (109, 36, 36), 639 (109, 36, 73), 640 (109, 36, 109), 641 (109, 36, 146), 642 (109, 36, 182), 643 (109, 36, 219), 644 (109, 36, 255), 645 (146, 36, 0), 646 (146, 36, 36), 647 (146, 36, 73), 648 (146, 36, 109), 649 (146, 36, 146), 650 (146, 36, 182), 651 (146, 36, 219), 652 (146, 36, 255), 653 (182, 36, 0), 654 (182, 36, 36), 655 (182, 36, 73), 656 (182, 36, 109), 657 (182, 36, 146), 658 (182, 36, 182), 659 (182, 36, 219), 660 (182, 36, 255), 661 (219, 36, 0), 662 (219, 36, 36), 663 (219, 36, 73), 664 (219, 36, 109), 665 (219, 36, 146), 666 (219, 36, 182), 667 (219, 36, 219), 668 (219, 36, 255), 669 (255, 36, 0), 670 (255, 36, 36), 671 (255, 36, 73), 672 (255, 36, 109), 673 (255, 36, 146), 674 (255, 36, 182), 675 (255, 36, 219), 676 (255, 36, 255), 677 (0, 73, 0), 678 (0, 73, 36), 679 (0, 73, 73), 680 (0, 73, 109), 681 (0, 73, 146), 682 (0, 73, 182), 683 (0, 73, 219), 684 (0, 73, 255), 685 (36, 73, 0), 686 (36, 73, 36), 687 (36, 73, 73), 688 (36, 73, 109), 689 (36, 73, 146), 690 (36, 73, 182), 691 (36, 73, 219), 692 (36, 73, 255), 693 (73, 73, 0), 694 (73, 73, 36), 695 (73, 73, 73), 696 (73, 73, 109), 697 (73, 73, 146), 698 (73, 73, 182), 699 (73, 73, 219), 700 (73, 73, 255), 701 (109, 73, 0), 702 (109, 73, 36), 703 (109, 73, 73), 704 (109, 73, 109), 705 (109, 73, 146), 706 (109, 73, 182), 707 (109, 73, 219), 708 (109, 73, 255), 709 (146, 73, 0), 710 (146, 73, 36), 711 (146, 73, 73), 712 (146, 73, 109), 713 (146, 73, 146), 714 (146, 73, 182), 715 (146, 73, 219), 716 (146, 73, 255), 717 (182, 73, 0), 718 (182, 73, 36), 719 (182, 73, 73), 720 (182, 73, 109), 721 (182, 73, 146), 722 (182, 73, 182), 723 (182, 73, 219), 724 (182, 73, 255), 725 (219, 73, 0), 726 (219, 73, 36), 727 (219, 73, 73), 728 (219, 73, 109), 729 (219, 73, 146), 730 (219, 73, 182), 731 (219, 73, 219), 732 (219, 73, 255), 733 (255, 73, 0), 734 (255, 73, 36), 735 (255, 73, 73), 736 (255, 73, 109), 737 (255, 73, 146), 738 (255, 73, 182), 739 (255, 73, 219), 740 (255, 73, 255), 741 (0, 109, 0), 742 (0, 109, 36), 743 (0, 109, 73), 744 (0, 109, 109), 745 (0, 109, 146), 746 (0, 109, 182), 747 (0, 109, 219), 748 (0, 109, 255), 749 (36, 109, 0), 750 (36, 109, 36), 751 (36, 109, 73), 752 (36, 109, 109), 753 (36, 109, 146), 754 (36, 109, 182), 755 (36, 109, 219), 756 (36, 109, 255), 757 (73, 109, 0), 758 (73, 109, 36), 759 (73, 109, 73), 760 (73, 109, 109), 761 (73, 109, 146), 762 (73, 109, 182), 763 (73, 109, 219), 764 (73, 109, 255), 765 (109, 109, 0), 766 (109, 109, 36), 767 (109, 109, 73), 768 (109, 109, 109), 769 (109, 109, 146), 770 (109, 109, 182), 771 (109, 109, 219), 772 (109, 109, 255), 773 (146, 109, 0), 774 (146, 109, 36), 775 (146, 109, 73), 776 (146, 109, 109), 777 (146, 109, 146), 778 (146, 109, 182), 779 (146, 109, 219), 780 (146, 109, 255), 781 (182, 109, 0), 782 (182, 109, 36), 783 (182, 109, 73), 784 (182, 109, 109), 785 (182, 109, 146), 786 (182, 109, 182), 787 (182, 109, 219), 788 (182, 109, 255), 789 (219, 109, 0), 790 (219, 109, 36), 791 (219, 109, 73), 792 (219, 109, 109), 793 (219, 109, 146), 794 (219, 109, 182), 795 (219, 109, 219), 796 (219, 109, 255), 797 (255, 109, 0), 798 (255, 109, 36), 799 (255, 109, 73), 800 (255, 109, 109), 801 (255, 109, 146), 802 (255, 109, 182), 803 (255, 109, 219), 804 (255, 109, 255), 805 (0, 146, 0), 806 (0, 146, 36), 807 (0, 146, 73), 808 (0, 146, 109), 809 (0, 146, 146), 810 (0, 146, 182), 811 (0, 146, 219), 812 (0, 146, 255), 813 (36, 146, 0), 814 (36, 146, 36), 815 (36, 146, 73), 816 (36, 146, 109), 817 (36, 146, 146), 818 (36, 146, 182), 819 (36, 146, 219), 820 (36, 146, 255), 821 (73, 146, 0), 822 (73, 146, 36), 823 (73, 146, 73), 824 (73, 146, 109), 825 (73, 146, 146), 826 (73, 146, 182), 827 (73, 146, 219), 828 (73, 146, 255), 829 (109, 146, 0), 830 (109, 146, 36), 831 (109, 146, 73), 832 (109, 146, 109), 833 (109, 146, 146), 834 (109, 146, 182), 835 (109, 146, 219), 836 (109, 146, 255), 837 (146, 146, 0), 838 (146, 146, 36), 839 (146, 146, 73), 840 (146, 146, 109), 841 (146, 146, 146), 842 (146, 146, 182), 843 (146, 146, 219), 844 (146, 146, 255), 845 (182, 146, 0), 846 (182, 146, 36), 847 (182, 146, 73), 848 (182, 146, 109), 849 (182, 146, 146), 850 (182, 146, 182), 851 (182, 146, 219), 852 (182, 146, 255), 853 (219, 146, 0), 854 (219, 146, 36), 855 (219, 146, 73), 856 (219, 146, 109), 857 (219, 146, 146), 858 (219, 146, 182), 859 (219, 146, 219), 860 (219, 146, 255), 861 (255, 146, 0), 862 (255, 146, 36), 863 (255, 146, 73), 864 (255, 146, 109), 865 (255, 146, 146), 866 (255, 146, 182), 867 (255, 146, 219), 868 (255, 146, 255), 869 (0, 182, 0), 870 (0, 182, 36), 871 (0, 182, 73), 872 (0, 182, 109), 873 (0, 182, 146), 874 (0, 182, 182), 875 (0, 182, 219), 876 (0, 182, 255), 877 (36, 182, 0), 878 (36, 182, 36), 879 (36, 182, 73), 880 (36, 182, 109), 881 (36, 182, 146), 882 (36, 182, 182), 883 (36, 182, 219), 884 (36, 182, 255), 885 (73, 182, 0), 886 (73, 182, 36), 887 (73, 182, 73), 888 (73, 182, 109), 889 (73, 182, 146), 890 (73, 182, 182), 891 (73, 182, 219), 892 (73, 182, 255), 893 (109, 182, 0), 894 (109, 182, 36), 895 (109, 182, 73), 896 (109, 182, 109), 897 (109, 182, 146), 898 (109, 182, 182), 899 (109, 182, 219), 900 (109, 182, 255), 901 (146, 182, 0), 902 (146, 182, 36), 903 (146, 182, 73), 904 (146, 182, 109), 905 (146, 182, 146), 906 (146, 182, 182), 907 (146, 182, 219), 908 (146, 182, 255), 909 (182, 182, 0), 910 (182, 182, 36), 911 (182, 182, 73), 912 (182, 182, 109), 913 (182, 182, 146), 914 (182, 182, 182), 915 (182, 182, 219), 916 (182, 182, 255), 917 (219, 182, 0), 918 (219, 182, 36), 919 (219, 182, 73), 920 (219, 182, 109), 921 (219, 182, 146), 922 (219, 182, 182), 923 (219, 182, 219), 924 (219, 182, 255), 925 (255, 182, 0), 926 (255, 182, 36), 927 (255, 182, 73), 928 (255, 182, 109), 929 (255, 182, 146), 930 (255, 182, 182), 931 (255, 182, 219), 932 (255, 182, 255), 933 (0, 219, 0), 934 (0, 219, 36), 935 (0, 219, 73), 936 (0, 219, 109), 937 (0, 219, 146), 938 (0, 219, 182), 939 (0, 219, 219), 940 (0, 219, 255), 941 (36, 219, 0), 942 (36, 219, 36), 943 (36, 219, 73), 944 (36, 219, 109), 945 (36, 219, 146), 946 (36, 219, 182), 947 (36, 219, 219), 948 (36, 219, 255), 949 (73, 219, 0), 950 (73, 219, 36), 951 (73, 219, 73), 952 (73, 219, 109), 953 (73, 219, 146), 954 (73, 219, 182), 955 (73, 219, 219), 956 (73, 219, 255), 957 (109, 219, 0), 958 (109, 219, 36), 959 (109, 219, 73), 960 (109, 219, 109), 961 (109, 219, 146), 962 (109, 219, 182), 963 (109, 219, 219), 964 (109, 219, 255), 965 (146, 219, 0), 966 (146, 219, 36), 967 (146, 219, 73), 968 (146, 219, 109), 969 (146, 219, 146), 970 (146, 219, 182), 971 (146, 219, 219), 972 (146, 219, 255), 973 (182, 219, 0), 974 (182, 219, 36), 975 (182, 219, 73), 976 (182, 219, 109), 977 (182, 219, 146), 978 (182, 219, 182), 979 (182, 219, 219), 980 (182, 219, 255), 981 (219, 219, 0), 982 (219, 219, 36), 983 (219, 219, 73), 984 (219, 219, 109), 985 (219, 219, 146), 986 (219, 219, 182), 987 (219, 219, 219), 988 (219, 219, 255), 989 (255, 219, 0), 990 (255, 219, 36), 991 (255, 219, 73), 992 (255, 219, 109), 993 (255, 219, 146), 994 (255, 219, 182), 995 (255, 219, 219), 996 (255, 219, 255), 997 (0, 255, 0), 998 (0, 255, 36), 999 (0, 255, 73), 1000 (0, 255, 109), 1001 (0, 255, 146), 1002 (0, 255, 182), 1003 (0, 255, 219), 1004 (0, 255, 255), 1005 (36, 255, 0), 1006 (36, 255, 36), 1007 (36, 255, 73), 1008 (36, 255, 109), 1009 (36, 255, 146), 1010 (36, 255, 182), 1011 (36, 255, 219), 1012 (36, 255, 255), 1013 (73, 255, 0), 1014 (73, 255, 36), 1015 (73, 255, 73), 1016 (73, 255, 109), 1017 (73, 255, 146), 1018 (73, 255, 182), 1019 (73, 255, 219), 1020 (73, 255, 255), 1021 (109, 255, 0), 1022 (109, 255, 36), 1023 (109, 255, 73), 1024 (109, 255, 109), 1025 (109, 255, 146), 1026 (109, 255, 182), 1027 (109, 255, 219), 1028 (109, 255, 255), 1029 (146, 255, 0), 1030 (146, 255, 36), 1031 (146, 255, 73), 1032 (146, 255, 109), 1033 (146, 255, 146), 1034 (146, 255, 182), 1035 (146, 255, 219), 1036 (146, 255, 255), 1037 (182, 255, 0), 1038 (182, 255, 36), 1039 (182, 255, 73), 1040 (182, 255, 109), 1041 (182, 255, 146), 1042 (182, 255, 182), 1043 (182, 255, 219), 1044 (182, 255, 255), 1045 (219, 255, 0), 1046 (219, 255, 36), 1047 (219, 255, 73), 1048 (219, 255, 109), 1049 (219, 255, 146), 1050 (219, 255, 182), 1051 (219, 255, 219), 1052 (219, 255, 255), 1053 (255, 255, 0), 1054 (255, 255, 36), 1055 (255, 255, 73), 1056 (255, 255, 109), 1057 (255, 255, 146), 1058 (255, 255, 182), 1059 (255, 255, 219), 1060 (255, 255, 255), 1061];