summaryrefslogtreecommitdiffstats
path: root/color.c
blob: a9ed3b365577906ad65883d1ccc3a2b53035fa74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
/*
 *  Color manipulation
 *
 *  (C) Copyright 2001-2003 Geert Uytterhoeven
 *
 *  This file is subject to the terms and conditions of the GNU General Public
 *  License. See the file COPYING in the main directory of this archive for
 *  more details.
 */

#include <stdlib.h>

#include "types.h"
#include "color.h"


    /*
     *  Relative weight RGB versus alpha
     */

#define RGB_WEIGHT	4


    /*
     *  X11 colors from rgb.txt
     */

const rgba_t c_snow = { 0xffff, 0xfafa, 0xfafa, 0xffff };
const rgba_t c_ghost_white = { 0xf8f8, 0xf8f8, 0xffff, 0xffff };
const rgba_t c_GhostWhite = { 0xf8f8, 0xf8f8, 0xffff, 0xffff };
const rgba_t c_white_smoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
const rgba_t c_WhiteSmoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
const rgba_t c_gainsboro = { 0xdcdc, 0xdcdc, 0xdcdc, 0xffff };
const rgba_t c_floral_white = { 0xffff, 0xfafa, 0xf0f0, 0xffff };
const rgba_t c_FloralWhite = { 0xffff, 0xfafa, 0xf0f0, 0xffff };
const rgba_t c_old_lace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff };
const rgba_t c_OldLace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff };
const rgba_t c_linen = { 0xfafa, 0xf0f0, 0xe6e6, 0xffff };
const rgba_t c_antique_white = { 0xfafa, 0xebeb, 0xd7d7, 0xffff };
const rgba_t c_AntiqueWhite = { 0xfafa, 0xebeb, 0xd7d7, 0xffff };
const rgba_t c_papaya_whip = { 0xffff, 0xefef, 0xd5d5, 0xffff };
const rgba_t c_PapayaWhip = { 0xffff, 0xefef, 0xd5d5, 0xffff };
const rgba_t c_blanched_almond = { 0xffff, 0xebeb, 0xcdcd, 0xffff };
const rgba_t c_BlanchedAlmond = { 0xffff, 0xebeb, 0xcdcd, 0xffff };
const rgba_t c_bisque = { 0xffff, 0xe4e4, 0xc4c4, 0xffff };
const rgba_t c_peach_puff = { 0xffff, 0xdada, 0xb9b9, 0xffff };
const rgba_t c_PeachPuff = { 0xffff, 0xdada, 0xb9b9, 0xffff };
const rgba_t c_navajo_white = { 0xffff, 0xdede, 0xadad, 0xffff };
const rgba_t c_NavajoWhite = { 0xffff, 0xdede, 0xadad, 0xffff };
const rgba_t c_moccasin = { 0xffff, 0xe4e4, 0xb5b5, 0xffff };
const rgba_t c_cornsilk = { 0xffff, 0xf8f8, 0xdcdc, 0xffff };
const rgba_t c_ivory = { 0xffff, 0xffff, 0xf0f0, 0xffff };
const rgba_t c_lemon_chiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
const rgba_t c_LemonChiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
const rgba_t c_seashell = { 0xffff, 0xf5f5, 0xeeee, 0xffff };
const rgba_t c_honeydew = { 0xf0f0, 0xffff, 0xf0f0, 0xffff };
const rgba_t c_mint_cream = { 0xf5f5, 0xffff, 0xfafa, 0xffff };
const rgba_t c_MintCream = { 0xf5f5, 0xffff, 0xfafa, 0xffff };
const rgba_t c_azure = { 0xf0f0, 0xffff, 0xffff, 0xffff };
const rgba_t c_alice_blue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff };
const rgba_t c_AliceBlue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff };
const rgba_t c_lavender = { 0xe6e6, 0xe6e6, 0xfafa, 0xffff };
const rgba_t c_lavender_blush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
const rgba_t c_LavenderBlush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
const rgba_t c_misty_rose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
const rgba_t c_MistyRose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
const rgba_t c_white = { 0xffff, 0xffff, 0xffff, 0xffff };
const rgba_t c_black = { 0x0000, 0x0000, 0x0000, 0xffff };
const rgba_t c_dark_slate_gray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_DarkSlateGray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_dark_slate_grey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_DarkSlateGrey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_dim_gray = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_DimGray = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_dim_grey = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_DimGrey = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_slate_gray = { 0x7070, 0x8080, 0x9090, 0xffff };
const rgba_t c_SlateGray = { 0x7070, 0x8080, 0x9090, 0xffff };
const rgba_t c_slate_grey = { 0x7070, 0x8080, 0x9090, 0xffff };
const rgba_t c_SlateGrey = { 0x7070, 0x8080, 0x9090, 0xffff };
const rgba_t c_light_slate_gray = { 0x7777, 0x8888, 0x9999, 0xffff };
const rgba_t c_LightSlateGray = { 0x7777, 0x8888, 0x9999, 0xffff };
const rgba_t c_light_slate_grey = { 0x7777, 0x8888, 0x9999, 0xffff };
const rgba_t c_LightSlateGrey = { 0x7777, 0x8888, 0x9999, 0xffff };
const rgba_t c_gray = { 0xbebe, 0xbebe, 0xbebe, 0xffff };
const rgba_t c_grey = { 0xbebe, 0xbebe, 0xbebe, 0xffff };
const rgba_t c_light_grey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
const rgba_t c_LightGrey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
const rgba_t c_light_gray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
const rgba_t c_LightGray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
const rgba_t c_midnight_blue = { 0x1919, 0x1919, 0x7070, 0xffff };
const rgba_t c_MidnightBlue = { 0x1919, 0x1919, 0x7070, 0xffff };
const rgba_t c_navy = { 0x0000, 0x0000, 0x8080, 0xffff };
const rgba_t c_navy_blue = { 0x0000, 0x0000, 0x8080, 0xffff };
const rgba_t c_NavyBlue = { 0x0000, 0x0000, 0x8080, 0xffff };
const rgba_t c_cornflower_blue = { 0x6464, 0x9595, 0xeded, 0xffff };
const rgba_t c_CornflowerBlue = { 0x6464, 0x9595, 0xeded, 0xffff };
const rgba_t c_dark_slate_blue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff };
const rgba_t c_DarkSlateBlue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff };
const rgba_t c_slate_blue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff };
const rgba_t c_SlateBlue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff };
const rgba_t c_medium_slate_blue = { 0x7b7b, 0x6868, 0xeeee, 0xffff };
const rgba_t c_MediumSlateBlue = { 0x7b7b, 0x6868, 0xeeee, 0xffff };
const rgba_t c_light_slate_blue = { 0x8484, 0x7070, 0xffff, 0xffff };
const rgba_t c_LightSlateBlue = { 0x8484, 0x7070, 0xffff, 0xffff };
const rgba_t c_medium_blue = { 0x0000, 0x0000, 0xcdcd, 0xffff };
const rgba_t c_MediumBlue = { 0x0000, 0x0000, 0xcdcd, 0xffff };
const rgba_t c_royal_blue = { 0x4141, 0x6969, 0xe1e1, 0xffff };
const rgba_t c_RoyalBlue = { 0x4141, 0x6969, 0xe1e1, 0xffff };
const rgba_t c_blue = { 0x0000, 0x0000, 0xffff, 0xffff };
const rgba_t c_dodger_blue = { 0x1e1e, 0x9090, 0xffff, 0xffff };
const rgba_t c_DodgerBlue = { 0x1e1e, 0x9090, 0xffff, 0xffff };
const rgba_t c_deep_sky_blue = { 0x0000, 0xbfbf, 0xffff, 0xffff };
const rgba_t c_DeepSkyBlue = { 0x0000, 0xbfbf, 0xffff, 0xffff };
const rgba_t c_sky_blue = { 0x8787, 0xcece, 0xebeb, 0xffff };
const rgba_t c_SkyBlue = { 0x8787, 0xcece, 0xebeb, 0xffff };
const rgba_t c_light_sky_blue = { 0x8787, 0xcece, 0xfafa, 0xffff };
const rgba_t c_LightSkyBlue = { 0x8787, 0xcece, 0xfafa, 0xffff };
const rgba_t c_steel_blue = { 0x4646, 0x8282, 0xb4b4, 0xffff };
const rgba_t c_SteelBlue = { 0x4646, 0x8282, 0xb4b4, 0xffff };
const rgba_t c_light_steel_blue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff };
const rgba_t c_LightSteelBlue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff };
const rgba_t c_light_blue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff };
const rgba_t c_LightBlue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff };
const rgba_t c_powder_blue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff };
const rgba_t c_PowderBlue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff };
const rgba_t c_pale_turquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_PaleTurquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_dark_turquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff };
const rgba_t c_DarkTurquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff };
const rgba_t c_medium_turquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff };
const rgba_t c_MediumTurquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff };
const rgba_t c_turquoise = { 0x4040, 0xe0e0, 0xd0d0, 0xffff };
const rgba_t c_cyan = { 0x0000, 0xffff, 0xffff, 0xffff };
const rgba_t c_light_cyan = { 0xe0e0, 0xffff, 0xffff, 0xffff };
const rgba_t c_LightCyan = { 0xe0e0, 0xffff, 0xffff, 0xffff };
const rgba_t c_cadet_blue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff };
const rgba_t c_CadetBlue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff };
const rgba_t c_medium_aquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
const rgba_t c_MediumAquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
const rgba_t c_aquamarine = { 0x7f7f, 0xffff, 0xd4d4, 0xffff };
const rgba_t c_dark_green = { 0x0000, 0x6464, 0x0000, 0xffff };
const rgba_t c_DarkGreen = { 0x0000, 0x6464, 0x0000, 0xffff };
const rgba_t c_dark_olive_green = { 0x5555, 0x6b6b, 0x2f2f, 0xffff };
const rgba_t c_DarkOliveGreen = { 0x5555, 0x6b6b, 0x2f2f, 0xffff };
const rgba_t c_dark_sea_green = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff };
const rgba_t c_DarkSeaGreen = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff };
const rgba_t c_sea_green = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
const rgba_t c_SeaGreen = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
const rgba_t c_medium_sea_green = { 0x3c3c, 0xb3b3, 0x7171, 0xffff };
const rgba_t c_MediumSeaGreen = { 0x3c3c, 0xb3b3, 0x7171, 0xffff };
const rgba_t c_light_sea_green = { 0x2020, 0xb2b2, 0xaaaa, 0xffff };
const rgba_t c_LightSeaGreen = { 0x2020, 0xb2b2, 0xaaaa, 0xffff };
const rgba_t c_pale_green = { 0x9898, 0xfbfb, 0x9898, 0xffff };
const rgba_t c_PaleGreen = { 0x9898, 0xfbfb, 0x9898, 0xffff };
const rgba_t c_spring_green = { 0x0000, 0xffff, 0x7f7f, 0xffff };
const rgba_t c_SpringGreen = { 0x0000, 0xffff, 0x7f7f, 0xffff };
const rgba_t c_lawn_green = { 0x7c7c, 0xfcfc, 0x0000, 0xffff };
const rgba_t c_LawnGreen = { 0x7c7c, 0xfcfc, 0x0000, 0xffff };
const rgba_t c_green = { 0x0000, 0xffff, 0x0000, 0xffff };
const rgba_t c_chartreuse = { 0x7f7f, 0xffff, 0x0000, 0xffff };
const rgba_t c_medium_spring_green = { 0x0000, 0xfafa, 0x9a9a, 0xffff };
const rgba_t c_MediumSpringGreen = { 0x0000, 0xfafa, 0x9a9a, 0xffff };
const rgba_t c_green_yellow = { 0xadad, 0xffff, 0x2f2f, 0xffff };
const rgba_t c_GreenYellow = { 0xadad, 0xffff, 0x2f2f, 0xffff };
const rgba_t c_lime_green = { 0x3232, 0xcdcd, 0x3232, 0xffff };
const rgba_t c_LimeGreen = { 0x3232, 0xcdcd, 0x3232, 0xffff };
const rgba_t c_yellow_green = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
const rgba_t c_YellowGreen = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
const rgba_t c_forest_green = { 0x2222, 0x8b8b, 0x2222, 0xffff };
const rgba_t c_ForestGreen = { 0x2222, 0x8b8b, 0x2222, 0xffff };
const rgba_t c_olive_drab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff };
const rgba_t c_OliveDrab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff };
const rgba_t c_dark_khaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff };
const rgba_t c_DarkKhaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff };
const rgba_t c_khaki = { 0xf0f0, 0xe6e6, 0x8c8c, 0xffff };
const rgba_t c_pale_goldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff };
const rgba_t c_PaleGoldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff };
const rgba_t c_light_goldenrod_yellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff };
const rgba_t c_LightGoldenrodYellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff };
const rgba_t c_light_yellow = { 0xffff, 0xffff, 0xe0e0, 0xffff };
const rgba_t c_LightYellow = { 0xffff, 0xffff, 0xe0e0, 0xffff };
const rgba_t c_yellow = { 0xffff, 0xffff, 0x0000, 0xffff };
const rgba_t c_gold = { 0xffff, 0xd7d7, 0x0000, 0xffff };
const rgba_t c_light_goldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff };
const rgba_t c_LightGoldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff };
const rgba_t c_goldenrod = { 0xdada, 0xa5a5, 0x2020, 0xffff };
const rgba_t c_dark_goldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff };
const rgba_t c_DarkGoldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff };
const rgba_t c_rosy_brown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff };
const rgba_t c_RosyBrown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff };
const rgba_t c_indian_red = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff };
const rgba_t c_IndianRed = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff };
const rgba_t c_saddle_brown = { 0x8b8b, 0x4545, 0x1313, 0xffff };
const rgba_t c_SaddleBrown = { 0x8b8b, 0x4545, 0x1313, 0xffff };
const rgba_t c_sienna = { 0xa0a0, 0x5252, 0x2d2d, 0xffff };
const rgba_t c_peru = { 0xcdcd, 0x8585, 0x3f3f, 0xffff };
const rgba_t c_burlywood = { 0xdede, 0xb8b8, 0x8787, 0xffff };
const rgba_t c_beige = { 0xf5f5, 0xf5f5, 0xdcdc, 0xffff };
const rgba_t c_wheat = { 0xf5f5, 0xdede, 0xb3b3, 0xffff };
const rgba_t c_sandy_brown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff };
const rgba_t c_SandyBrown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff };
const rgba_t c_tan = { 0xd2d2, 0xb4b4, 0x8c8c, 0xffff };
const rgba_t c_chocolate = { 0xd2d2, 0x6969, 0x1e1e, 0xffff };
const rgba_t c_firebrick = { 0xb2b2, 0x2222, 0x2222, 0xffff };
const rgba_t c_brown = { 0xa5a5, 0x2a2a, 0x2a2a, 0xffff };
const rgba_t c_dark_salmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff };
const rgba_t c_DarkSalmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff };
const rgba_t c_salmon = { 0xfafa, 0x8080, 0x7272, 0xffff };
const rgba_t c_light_salmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
const rgba_t c_LightSalmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
const rgba_t c_orange = { 0xffff, 0xa5a5, 0x0000, 0xffff };
const rgba_t c_dark_orange = { 0xffff, 0x8c8c, 0x0000, 0xffff };
const rgba_t c_DarkOrange = { 0xffff, 0x8c8c, 0x0000, 0xffff };
const rgba_t c_coral = { 0xffff, 0x7f7f, 0x5050, 0xffff };
const rgba_t c_light_coral = { 0xf0f0, 0x8080, 0x8080, 0xffff };
const rgba_t c_LightCoral = { 0xf0f0, 0x8080, 0x8080, 0xffff };
const rgba_t c_tomato = { 0xffff, 0x6363, 0x4747, 0xffff };
const rgba_t c_orange_red = { 0xffff, 0x4545, 0x0000, 0xffff };
const rgba_t c_OrangeRed = { 0xffff, 0x4545, 0x0000, 0xffff };
const rgba_t c_red = { 0xffff, 0x0000, 0x0000, 0xffff };
const rgba_t c_hot_pink = { 0xffff, 0x6969, 0xb4b4, 0xffff };
const rgba_t c_HotPink = { 0xffff, 0x6969, 0xb4b4, 0xffff };
const rgba_t c_deep_pink = { 0xffff, 0x1414, 0x9393, 0xffff };
const rgba_t c_DeepPink = { 0xffff, 0x1414, 0x9393, 0xffff };
const rgba_t c_pink = { 0xffff, 0xc0c0, 0xcbcb, 0xffff };
const rgba_t c_light_pink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff };
const rgba_t c_LightPink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff };
const rgba_t c_pale_violet_red = { 0xdbdb, 0x7070, 0x9393, 0xffff };
const rgba_t c_PaleVioletRed = { 0xdbdb, 0x7070, 0x9393, 0xffff };
const rgba_t c_maroon = { 0xb0b0, 0x3030, 0x6060, 0xffff };
const rgba_t c_medium_violet_red = { 0xc7c7, 0x1515, 0x8585, 0xffff };
const rgba_t c_MediumVioletRed = { 0xc7c7, 0x1515, 0x8585, 0xffff };
const rgba_t c_violet_red = { 0xd0d0, 0x2020, 0x9090, 0xffff };
const rgba_t c_VioletRed = { 0xd0d0, 0x2020, 0x9090, 0xffff };
const rgba_t c_magenta = { 0xffff, 0x0000, 0xffff, 0xffff };
const rgba_t c_violet = { 0xeeee, 0x8282, 0xeeee, 0xffff };
const rgba_t c_plum = { 0xdddd, 0xa0a0, 0xdddd, 0xffff };
const rgba_t c_orchid = { 0xdada, 0x7070, 0xd6d6, 0xffff };
const rgba_t c_medium_orchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff };
const rgba_t c_MediumOrchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff };
const rgba_t c_dark_orchid = { 0x9999, 0x3232, 0xcccc, 0xffff };
const rgba_t c_DarkOrchid = { 0x9999, 0x3232, 0xcccc, 0xffff };
const rgba_t c_dark_violet = { 0x9494, 0x0000, 0xd3d3, 0xffff };
const rgba_t c_DarkViolet = { 0x9494, 0x0000, 0xd3d3, 0xffff };
const rgba_t c_blue_violet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff };
const rgba_t c_BlueViolet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff };
const rgba_t c_purple = { 0xa0a0, 0x2020, 0xf0f0, 0xffff };
const rgba_t c_medium_purple = { 0x9393, 0x7070, 0xdbdb, 0xffff };
const rgba_t c_MediumPurple = { 0x9393, 0x7070, 0xdbdb, 0xffff };
const rgba_t c_thistle = { 0xd8d8, 0xbfbf, 0xd8d8, 0xffff };
const rgba_t c_snow1 = { 0xffff, 0xfafa, 0xfafa, 0xffff };
const rgba_t c_snow2 = { 0xeeee, 0xe9e9, 0xe9e9, 0xffff };
const rgba_t c_snow3 = { 0xcdcd, 0xc9c9, 0xc9c9, 0xffff };
const rgba_t c_snow4 = { 0x8b8b, 0x8989, 0x8989, 0xffff };
const rgba_t c_seashell1 = { 0xffff, 0xf5f5, 0xeeee, 0xffff };
const rgba_t c_seashell2 = { 0xeeee, 0xe5e5, 0xdede, 0xffff };
const rgba_t c_seashell3 = { 0xcdcd, 0xc5c5, 0xbfbf, 0xffff };
const rgba_t c_seashell4 = { 0x8b8b, 0x8686, 0x8282, 0xffff };
const rgba_t c_AntiqueWhite1 = { 0xffff, 0xefef, 0xdbdb, 0xffff };
const rgba_t c_AntiqueWhite2 = { 0xeeee, 0xdfdf, 0xcccc, 0xffff };
const rgba_t c_AntiqueWhite3 = { 0xcdcd, 0xc0c0, 0xb0b0, 0xffff };
const rgba_t c_AntiqueWhite4 = { 0x8b8b, 0x8383, 0x7878, 0xffff };
const rgba_t c_bisque1 = { 0xffff, 0xe4e4, 0xc4c4, 0xffff };
const rgba_t c_bisque2 = { 0xeeee, 0xd5d5, 0xb7b7, 0xffff };
const rgba_t c_bisque3 = { 0xcdcd, 0xb7b7, 0x9e9e, 0xffff };
const rgba_t c_bisque4 = { 0x8b8b, 0x7d7d, 0x6b6b, 0xffff };
const rgba_t c_PeachPuff1 = { 0xffff, 0xdada, 0xb9b9, 0xffff };
const rgba_t c_PeachPuff2 = { 0xeeee, 0xcbcb, 0xadad, 0xffff };
const rgba_t c_PeachPuff3 = { 0xcdcd, 0xafaf, 0x9595, 0xffff };
const rgba_t c_PeachPuff4 = { 0x8b8b, 0x7777, 0x6565, 0xffff };
const rgba_t c_NavajoWhite1 = { 0xffff, 0xdede, 0xadad, 0xffff };
const rgba_t c_NavajoWhite2 = { 0xeeee, 0xcfcf, 0xa1a1, 0xffff };
const rgba_t c_NavajoWhite3 = { 0xcdcd, 0xb3b3, 0x8b8b, 0xffff };
const rgba_t c_NavajoWhite4 = { 0x8b8b, 0x7979, 0x5e5e, 0xffff };
const rgba_t c_LemonChiffon1 = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
const rgba_t c_LemonChiffon2 = { 0xeeee, 0xe9e9, 0xbfbf, 0xffff };
const rgba_t c_LemonChiffon3 = { 0xcdcd, 0xc9c9, 0xa5a5, 0xffff };
const rgba_t c_LemonChiffon4 = { 0x8b8b, 0x8989, 0x7070, 0xffff };
const rgba_t c_cornsilk1 = { 0xffff, 0xf8f8, 0xdcdc, 0xffff };
const rgba_t c_cornsilk2 = { 0xeeee, 0xe8e8, 0xcdcd, 0xffff };
const rgba_t c_cornsilk3 = { 0xcdcd, 0xc8c8, 0xb1b1, 0xffff };
const rgba_t c_cornsilk4 = { 0x8b8b, 0x8888, 0x7878, 0xffff };
const rgba_t c_ivory1 = { 0xffff, 0xffff, 0xf0f0, 0xffff };
const rgba_t c_ivory2 = { 0xeeee, 0xeeee, 0xe0e0, 0xffff };
const rgba_t c_ivory3 = { 0xcdcd, 0xcdcd, 0xc1c1, 0xffff };
const rgba_t c_ivory4 = { 0x8b8b, 0x8b8b, 0x8383, 0xffff };
const rgba_t c_honeydew1 = { 0xf0f0, 0xffff, 0xf0f0, 0xffff };
const rgba_t c_honeydew2 = { 0xe0e0, 0xeeee, 0xe0e0, 0xffff };
const rgba_t c_honeydew3 = { 0xc1c1, 0xcdcd, 0xc1c1, 0xffff };
const rgba_t c_honeydew4 = { 0x8383, 0x8b8b, 0x8383, 0xffff };
const rgba_t c_LavenderBlush1 = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
const rgba_t c_LavenderBlush2 = { 0xeeee, 0xe0e0, 0xe5e5, 0xffff };
const rgba_t c_LavenderBlush3 = { 0xcdcd, 0xc1c1, 0xc5c5, 0xffff };
const rgba_t c_LavenderBlush4 = { 0x8b8b, 0x8383, 0x8686, 0xffff };
const rgba_t c_MistyRose1 = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
const rgba_t c_MistyRose2 = { 0xeeee, 0xd5d5, 0xd2d2, 0xffff };
const rgba_t c_MistyRose3 = { 0xcdcd, 0xb7b7, 0xb5b5, 0xffff };
const rgba_t c_MistyRose4 = { 0x8b8b, 0x7d7d, 0x7b7b, 0xffff };
const rgba_t c_azure1 = { 0xf0f0, 0xffff, 0xffff, 0xffff };
const rgba_t c_azure2 = { 0xe0e0, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_azure3 = { 0xc1c1, 0xcdcd, 0xcdcd, 0xffff };
const rgba_t c_azure4 = { 0x8383, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_SlateBlue1 = { 0x8383, 0x6f6f, 0xffff, 0xffff };
const rgba_t c_SlateBlue2 = { 0x7a7a, 0x6767, 0xeeee, 0xffff };
const rgba_t c_SlateBlue3 = { 0x6969, 0x5959, 0xcdcd, 0xffff };
const rgba_t c_SlateBlue4 = { 0x4747, 0x3c3c, 0x8b8b, 0xffff };
const rgba_t c_RoyalBlue1 = { 0x4848, 0x7676, 0xffff, 0xffff };
const rgba_t c_RoyalBlue2 = { 0x4343, 0x6e6e, 0xeeee, 0xffff };
const rgba_t c_RoyalBlue3 = { 0x3a3a, 0x5f5f, 0xcdcd, 0xffff };
const rgba_t c_RoyalBlue4 = { 0x2727, 0x4040, 0x8b8b, 0xffff };
const rgba_t c_blue1 = { 0x0000, 0x0000, 0xffff, 0xffff };
const rgba_t c_blue2 = { 0x0000, 0x0000, 0xeeee, 0xffff };
const rgba_t c_blue3 = { 0x0000, 0x0000, 0xcdcd, 0xffff };
const rgba_t c_blue4 = { 0x0000, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_DodgerBlue1 = { 0x1e1e, 0x9090, 0xffff, 0xffff };
const rgba_t c_DodgerBlue2 = { 0x1c1c, 0x8686, 0xeeee, 0xffff };
const rgba_t c_DodgerBlue3 = { 0x1818, 0x7474, 0xcdcd, 0xffff };
const rgba_t c_DodgerBlue4 = { 0x1010, 0x4e4e, 0x8b8b, 0xffff };
const rgba_t c_SteelBlue1 = { 0x6363, 0xb8b8, 0xffff, 0xffff };
const rgba_t c_SteelBlue2 = { 0x5c5c, 0xacac, 0xeeee, 0xffff };
const rgba_t c_SteelBlue3 = { 0x4f4f, 0x9494, 0xcdcd, 0xffff };
const rgba_t c_SteelBlue4 = { 0x3636, 0x6464, 0x8b8b, 0xffff };
const rgba_t c_DeepSkyBlue1 = { 0x0000, 0xbfbf, 0xffff, 0xffff };
const rgba_t c_DeepSkyBlue2 = { 0x0000, 0xb2b2, 0xeeee, 0xffff };
const rgba_t c_DeepSkyBlue3 = { 0x0000, 0x9a9a, 0xcdcd, 0xffff };
const rgba_t c_DeepSkyBlue4 = { 0x0000, 0x6868, 0x8b8b, 0xffff };
const rgba_t c_SkyBlue1 = { 0x8787, 0xcece, 0xffff, 0xffff };
const rgba_t c_SkyBlue2 = { 0x7e7e, 0xc0c0, 0xeeee, 0xffff };
const rgba_t c_SkyBlue3 = { 0x6c6c, 0xa6a6, 0xcdcd, 0xffff };
const rgba_t c_SkyBlue4 = { 0x4a4a, 0x7070, 0x8b8b, 0xffff };
const rgba_t c_LightSkyBlue1 = { 0xb0b0, 0xe2e2, 0xffff, 0xffff };
const rgba_t c_LightSkyBlue2 = { 0xa4a4, 0xd3d3, 0xeeee, 0xffff };
const rgba_t c_LightSkyBlue3 = { 0x8d8d, 0xb6b6, 0xcdcd, 0xffff };
const rgba_t c_LightSkyBlue4 = { 0x6060, 0x7b7b, 0x8b8b, 0xffff };
const rgba_t c_SlateGray1 = { 0xc6c6, 0xe2e2, 0xffff, 0xffff };
const rgba_t c_SlateGray2 = { 0xb9b9, 0xd3d3, 0xeeee, 0xffff };
const rgba_t c_SlateGray3 = { 0x9f9f, 0xb6b6, 0xcdcd, 0xffff };
const rgba_t c_SlateGray4 = { 0x6c6c, 0x7b7b, 0x8b8b, 0xffff };
const rgba_t c_LightSteelBlue1 = { 0xcaca, 0xe1e1, 0xffff, 0xffff };
const rgba_t c_LightSteelBlue2 = { 0xbcbc, 0xd2d2, 0xeeee, 0xffff };
const rgba_t c_LightSteelBlue3 = { 0xa2a2, 0xb5b5, 0xcdcd, 0xffff };
const rgba_t c_LightSteelBlue4 = { 0x6e6e, 0x7b7b, 0x8b8b, 0xffff };
const rgba_t c_LightBlue1 = { 0xbfbf, 0xefef, 0xffff, 0xffff };
const rgba_t c_LightBlue2 = { 0xb2b2, 0xdfdf, 0xeeee, 0xffff };
const rgba_t c_LightBlue3 = { 0x9a9a, 0xc0c0, 0xcdcd, 0xffff };
const rgba_t c_LightBlue4 = { 0x6868, 0x8383, 0x8b8b, 0xffff };
const rgba_t c_LightCyan1 = { 0xe0e0, 0xffff, 0xffff, 0xffff };
const rgba_t c_LightCyan2 = { 0xd1d1, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_LightCyan3 = { 0xb4b4, 0xcdcd, 0xcdcd, 0xffff };
const rgba_t c_LightCyan4 = { 0x7a7a, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_PaleTurquoise1 = { 0xbbbb, 0xffff, 0xffff, 0xffff };
const rgba_t c_PaleTurquoise2 = { 0xaeae, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_PaleTurquoise3 = { 0x9696, 0xcdcd, 0xcdcd, 0xffff };
const rgba_t c_PaleTurquoise4 = { 0x6666, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_CadetBlue1 = { 0x9898, 0xf5f5, 0xffff, 0xffff };
const rgba_t c_CadetBlue2 = { 0x8e8e, 0xe5e5, 0xeeee, 0xffff };
const rgba_t c_CadetBlue3 = { 0x7a7a, 0xc5c5, 0xcdcd, 0xffff };
const rgba_t c_CadetBlue4 = { 0x5353, 0x8686, 0x8b8b, 0xffff };
const rgba_t c_turquoise1 = { 0x0000, 0xf5f5, 0xffff, 0xffff };
const rgba_t c_turquoise2 = { 0x0000, 0xe5e5, 0xeeee, 0xffff };
const rgba_t c_turquoise3 = { 0x0000, 0xc5c5, 0xcdcd, 0xffff };
const rgba_t c_turquoise4 = { 0x0000, 0x8686, 0x8b8b, 0xffff };
const rgba_t c_cyan1 = { 0x0000, 0xffff, 0xffff, 0xffff };
const rgba_t c_cyan2 = { 0x0000, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_cyan3 = { 0x0000, 0xcdcd, 0xcdcd, 0xffff };
const rgba_t c_cyan4 = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_DarkSlateGray1 = { 0x9797, 0xffff, 0xffff, 0xffff };
const rgba_t c_DarkSlateGray2 = { 0x8d8d, 0xeeee, 0xeeee, 0xffff };
const rgba_t c_DarkSlateGray3 = { 0x7979, 0xcdcd, 0xcdcd, 0xffff };
const rgba_t c_DarkSlateGray4 = { 0x5252, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_aquamarine1 = { 0x7f7f, 0xffff, 0xd4d4, 0xffff };
const rgba_t c_aquamarine2 = { 0x7676, 0xeeee, 0xc6c6, 0xffff };
const rgba_t c_aquamarine3 = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
const rgba_t c_aquamarine4 = { 0x4545, 0x8b8b, 0x7474, 0xffff };
const rgba_t c_DarkSeaGreen1 = { 0xc1c1, 0xffff, 0xc1c1, 0xffff };
const rgba_t c_DarkSeaGreen2 = { 0xb4b4, 0xeeee, 0xb4b4, 0xffff };
const rgba_t c_DarkSeaGreen3 = { 0x9b9b, 0xcdcd, 0x9b9b, 0xffff };
const rgba_t c_DarkSeaGreen4 = { 0x6969, 0x8b8b, 0x6969, 0xffff };
const rgba_t c_SeaGreen1 = { 0x5454, 0xffff, 0x9f9f, 0xffff };
const rgba_t c_SeaGreen2 = { 0x4e4e, 0xeeee, 0x9494, 0xffff };
const rgba_t c_SeaGreen3 = { 0x4343, 0xcdcd, 0x8080, 0xffff };
const rgba_t c_SeaGreen4 = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
const rgba_t c_PaleGreen1 = { 0x9a9a, 0xffff, 0x9a9a, 0xffff };
const rgba_t c_PaleGreen2 = { 0x9090, 0xeeee, 0x9090, 0xffff };
const rgba_t c_PaleGreen3 = { 0x7c7c, 0xcdcd, 0x7c7c, 0xffff };
const rgba_t c_PaleGreen4 = { 0x5454, 0x8b8b, 0x5454, 0xffff };
const rgba_t c_SpringGreen1 = { 0x0000, 0xffff, 0x7f7f, 0xffff };
const rgba_t c_SpringGreen2 = { 0x0000, 0xeeee, 0x7676, 0xffff };
const rgba_t c_SpringGreen3 = { 0x0000, 0xcdcd, 0x6666, 0xffff };
const rgba_t c_SpringGreen4 = { 0x0000, 0x8b8b, 0x4545, 0xffff };
const rgba_t c_green1 = { 0x0000, 0xffff, 0x0000, 0xffff };
const rgba_t c_green2 = { 0x0000, 0xeeee, 0x0000, 0xffff };
const rgba_t c_green3 = { 0x0000, 0xcdcd, 0x0000, 0xffff };
const rgba_t c_green4 = { 0x0000, 0x8b8b, 0x0000, 0xffff };
const rgba_t c_chartreuse1 = { 0x7f7f, 0xffff, 0x0000, 0xffff };
const rgba_t c_chartreuse2 = { 0x7676, 0xeeee, 0x0000, 0xffff };
const rgba_t c_chartreuse3 = { 0x6666, 0xcdcd, 0x0000, 0xffff };
const rgba_t c_chartreuse4 = { 0x4545, 0x8b8b, 0x0000, 0xffff };
const rgba_t c_OliveDrab1 = { 0xc0c0, 0xffff, 0x3e3e, 0xffff };
const rgba_t c_OliveDrab2 = { 0xb3b3, 0xeeee, 0x3a3a, 0xffff };
const rgba_t c_OliveDrab3 = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
const rgba_t c_OliveDrab4 = { 0x6969, 0x8b8b, 0x2222, 0xffff };
const rgba_t c_DarkOliveGreen1 = { 0xcaca, 0xffff, 0x7070, 0xffff };
const rgba_t c_DarkOliveGreen2 = { 0xbcbc, 0xeeee, 0x6868, 0xffff };
const rgba_t c_DarkOliveGreen3 = { 0xa2a2, 0xcdcd, 0x5a5a, 0xffff };
const rgba_t c_DarkOliveGreen4 = { 0x6e6e, 0x8b8b, 0x3d3d, 0xffff };
const rgba_t c_khaki1 = { 0xffff, 0xf6f6, 0x8f8f, 0xffff };
const rgba_t c_khaki2 = { 0xeeee, 0xe6e6, 0x8585, 0xffff };
const rgba_t c_khaki3 = { 0xcdcd, 0xc6c6, 0x7373, 0xffff };
const rgba_t c_khaki4 = { 0x8b8b, 0x8686, 0x4e4e, 0xffff };
const rgba_t c_LightGoldenrod1 = { 0xffff, 0xecec, 0x8b8b, 0xffff };
const rgba_t c_LightGoldenrod2 = { 0xeeee, 0xdcdc, 0x8282, 0xffff };
const rgba_t c_LightGoldenrod3 = { 0xcdcd, 0xbebe, 0x7070, 0xffff };
const rgba_t c_LightGoldenrod4 = { 0x8b8b, 0x8181, 0x4c4c, 0xffff };
const rgba_t c_LightYellow1 = { 0xffff, 0xffff, 0xe0e0, 0xffff };
const rgba_t c_LightYellow2 = { 0xeeee, 0xeeee, 0xd1d1, 0xffff };
const rgba_t c_LightYellow3 = { 0xcdcd, 0xcdcd, 0xb4b4, 0xffff };
const rgba_t c_LightYellow4 = { 0x8b8b, 0x8b8b, 0x7a7a, 0xffff };
const rgba_t c_yellow1 = { 0xffff, 0xffff, 0x0000, 0xffff };
const rgba_t c_yellow2 = { 0xeeee, 0xeeee, 0x0000, 0xffff };
const rgba_t c_yellow3 = { 0xcdcd, 0xcdcd, 0x0000, 0xffff };
const rgba_t c_yellow4 = { 0x8b8b, 0x8b8b, 0x0000, 0xffff };
const rgba_t c_gold1 = { 0xffff, 0xd7d7, 0x0000, 0xffff };
const rgba_t c_gold2 = { 0xeeee, 0xc9c9, 0x0000, 0xffff };
const rgba_t c_gold3 = { 0xcdcd, 0xadad, 0x0000, 0xffff };
const rgba_t c_gold4 = { 0x8b8b, 0x7575, 0x0000, 0xffff };
const rgba_t c_goldenrod1 = { 0xffff, 0xc1c1, 0x2525, 0xffff };
const rgba_t c_goldenrod2 = { 0xeeee, 0xb4b4, 0x2222, 0xffff };
const rgba_t c_goldenrod3 = { 0xcdcd, 0x9b9b, 0x1d1d, 0xffff };
const rgba_t c_goldenrod4 = { 0x8b8b, 0x6969, 0x1414, 0xffff };
const rgba_t c_DarkGoldenrod1 = { 0xffff, 0xb9b9, 0x0f0f, 0xffff };
const rgba_t c_DarkGoldenrod2 = { 0xeeee, 0xadad, 0x0e0e, 0xffff };
const rgba_t c_DarkGoldenrod3 = { 0xcdcd, 0x9595, 0x0c0c, 0xffff };
const rgba_t c_DarkGoldenrod4 = { 0x8b8b, 0x6565, 0x0808, 0xffff };
const rgba_t c_RosyBrown1 = { 0xffff, 0xc1c1, 0xc1c1, 0xffff };
const rgba_t c_RosyBrown2 = { 0xeeee, 0xb4b4, 0xb4b4, 0xffff };
const rgba_t c_RosyBrown3 = { 0xcdcd, 0x9b9b, 0x9b9b, 0xffff };
const rgba_t c_RosyBrown4 = { 0x8b8b, 0x6969, 0x6969, 0xffff };
const rgba_t c_IndianRed1 = { 0xffff, 0x6a6a, 0x6a6a, 0xffff };
const rgba_t c_IndianRed2 = { 0xeeee, 0x6363, 0x6363, 0xffff };
const rgba_t c_IndianRed3 = { 0xcdcd, 0x5555, 0x5555, 0xffff };
const rgba_t c_IndianRed4 = { 0x8b8b, 0x3a3a, 0x3a3a, 0xffff };
const rgba_t c_sienna1 = { 0xffff, 0x8282, 0x4747, 0xffff };
const rgba_t c_sienna2 = { 0xeeee, 0x7979, 0x4242, 0xffff };
const rgba_t c_sienna3 = { 0xcdcd, 0x6868, 0x3939, 0xffff };
const rgba_t c_sienna4 = { 0x8b8b, 0x4747, 0x2626, 0xffff };
const rgba_t c_burlywood1 = { 0xffff, 0xd3d3, 0x9b9b, 0xffff };
const rgba_t c_burlywood2 = { 0xeeee, 0xc5c5, 0x9191, 0xffff };
const rgba_t c_burlywood3 = { 0xcdcd, 0xaaaa, 0x7d7d, 0xffff };
const rgba_t c_burlywood4 = { 0x8b8b, 0x7373, 0x5555, 0xffff };
const rgba_t c_wheat1 = { 0xffff, 0xe7e7, 0xbaba, 0xffff };
const rgba_t c_wheat2 = { 0xeeee, 0xd8d8, 0xaeae, 0xffff };
const rgba_t c_wheat3 = { 0xcdcd, 0xbaba, 0x9696, 0xffff };
const rgba_t c_wheat4 = { 0x8b8b, 0x7e7e, 0x6666, 0xffff };
const rgba_t c_tan1 = { 0xffff, 0xa5a5, 0x4f4f, 0xffff };
const rgba_t c_tan2 = { 0xeeee, 0x9a9a, 0x4949, 0xffff };
const rgba_t c_tan3 = { 0xcdcd, 0x8585, 0x3f3f, 0xffff };
const rgba_t c_tan4 = { 0x8b8b, 0x5a5a, 0x2b2b, 0xffff };
const rgba_t c_chocolate1 = { 0xffff, 0x7f7f, 0x2424, 0xffff };
const rgba_t c_chocolate2 = { 0xeeee, 0x7676, 0x2121, 0xffff };
const rgba_t c_chocolate3 = { 0xcdcd, 0x6666, 0x1d1d, 0xffff };
const rgba_t c_chocolate4 = { 0x8b8b, 0x4545, 0x1313, 0xffff };
const rgba_t c_firebrick1 = { 0xffff, 0x3030, 0x3030, 0xffff };
const rgba_t c_firebrick2 = { 0xeeee, 0x2c2c, 0x2c2c, 0xffff };
const rgba_t c_firebrick3 = { 0xcdcd, 0x2626, 0x2626, 0xffff };
const rgba_t c_firebrick4 = { 0x8b8b, 0x1a1a, 0x1a1a, 0xffff };
const rgba_t c_brown1 = { 0xffff, 0x4040, 0x4040, 0xffff };
const rgba_t c_brown2 = { 0xeeee, 0x3b3b, 0x3b3b, 0xffff };
const rgba_t c_brown3 = { 0xcdcd, 0x3333, 0x3333, 0xffff };
const rgba_t c_brown4 = { 0x8b8b, 0x2323, 0x2323, 0xffff };
const rgba_t c_salmon1 = { 0xffff, 0x8c8c, 0x6969, 0xffff };
const rgba_t c_salmon2 = { 0xeeee, 0x8282, 0x6262, 0xffff };
const rgba_t c_salmon3 = { 0xcdcd, 0x7070, 0x5454, 0xffff };
const rgba_t c_salmon4 = { 0x8b8b, 0x4c4c, 0x3939, 0xffff };
const rgba_t c_LightSalmon1 = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
const rgba_t c_LightSalmon2 = { 0xeeee, 0x9595, 0x7272, 0xffff };
const rgba_t c_LightSalmon3 = { 0xcdcd, 0x8181, 0x6262, 0xffff };
const rgba_t c_LightSalmon4 = { 0x8b8b, 0x5757, 0x4242, 0xffff };
const rgba_t c_orange1 = { 0xffff, 0xa5a5, 0x0000, 0xffff };
const rgba_t c_orange2 = { 0xeeee, 0x9a9a, 0x0000, 0xffff };
const rgba_t c_orange3 = { 0xcdcd, 0x8585, 0x0000, 0xffff };
const rgba_t c_orange4 = { 0x8b8b, 0x5a5a, 0x0000, 0xffff };
const rgba_t c_DarkOrange1 = { 0xffff, 0x7f7f, 0x0000, 0xffff };
const rgba_t c_DarkOrange2 = { 0xeeee, 0x7676, 0x0000, 0xffff };
const rgba_t c_DarkOrange3 = { 0xcdcd, 0x6666, 0x0000, 0xffff };
const rgba_t c_DarkOrange4 = { 0x8b8b, 0x4545, 0x0000, 0xffff };
const rgba_t c_coral1 = { 0xffff, 0x7272, 0x5656, 0xffff };
const rgba_t c_coral2 = { 0xeeee, 0x6a6a, 0x5050, 0xffff };
const rgba_t c_coral3 = { 0xcdcd, 0x5b5b, 0x4545, 0xffff };
const rgba_t c_coral4 = { 0x8b8b, 0x3e3e, 0x2f2f, 0xffff };
const rgba_t c_tomato1 = { 0xffff, 0x6363, 0x4747, 0xffff };
const rgba_t c_tomato2 = { 0xeeee, 0x5c5c, 0x4242, 0xffff };
const rgba_t c_tomato3 = { 0xcdcd, 0x4f4f, 0x3939, 0xffff };
const rgba_t c_tomato4 = { 0x8b8b, 0x3636, 0x2626, 0xffff };
const rgba_t c_OrangeRed1 = { 0xffff, 0x4545, 0x0000, 0xffff };
const rgba_t c_OrangeRed2 = { 0xeeee, 0x4040, 0x0000, 0xffff };
const rgba_t c_OrangeRed3 = { 0xcdcd, 0x3737, 0x0000, 0xffff };
const rgba_t c_OrangeRed4 = { 0x8b8b, 0x2525, 0x0000, 0xffff };
const rgba_t c_red1 = { 0xffff, 0x0000, 0x0000, 0xffff };
const rgba_t c_red2 = { 0xeeee, 0x0000, 0x0000, 0xffff };
const rgba_t c_red3 = { 0xcdcd, 0x0000, 0x0000, 0xffff };
const rgba_t c_red4 = { 0x8b8b, 0x0000, 0x0000, 0xffff };
const rgba_t c_DeepPink1 = { 0xffff, 0x1414, 0x9393, 0xffff };
const rgba_t c_DeepPink2 = { 0xeeee, 0x1212, 0x8989, 0xffff };
const rgba_t c_DeepPink3 = { 0xcdcd, 0x1010, 0x7676, 0xffff };
const rgba_t c_DeepPink4 = { 0x8b8b, 0x0a0a, 0x5050, 0xffff };
const rgba_t c_HotPink1 = { 0xffff, 0x6e6e, 0xb4b4, 0xffff };
const rgba_t c_HotPink2 = { 0xeeee, 0x6a6a, 0xa7a7, 0xffff };
const rgba_t c_HotPink3 = { 0xcdcd, 0x6060, 0x9090, 0xffff };
const rgba_t c_HotPink4 = { 0x8b8b, 0x3a3a, 0x6262, 0xffff };
const rgba_t c_pink1 = { 0xffff, 0xb5b5, 0xc5c5, 0xffff };
const rgba_t c_pink2 = { 0xeeee, 0xa9a9, 0xb8b8, 0xffff };
const rgba_t c_pink3 = { 0xcdcd, 0x9191, 0x9e9e, 0xffff };
const rgba_t c_pink4 = { 0x8b8b, 0x6363, 0x6c6c, 0xffff };
const rgba_t c_LightPink1 = { 0xffff, 0xaeae, 0xb9b9, 0xffff };
const rgba_t c_LightPink2 = { 0xeeee, 0xa2a2, 0xadad, 0xffff };
const rgba_t c_LightPink3 = { 0xcdcd, 0x8c8c, 0x9595, 0xffff };
const rgba_t c_LightPink4 = { 0x8b8b, 0x5f5f, 0x6565, 0xffff };
const rgba_t c_PaleVioletRed1 = { 0xffff, 0x8282, 0xabab, 0xffff };
const rgba_t c_PaleVioletRed2 = { 0xeeee, 0x7979, 0x9f9f, 0xffff };
const rgba_t c_PaleVioletRed3 = { 0xcdcd, 0x6868, 0x8989, 0xffff };
const rgba_t c_PaleVioletRed4 = { 0x8b8b, 0x4747, 0x5d5d, 0xffff };
const rgba_t c_maroon1 = { 0xffff, 0x3434, 0xb3b3, 0xffff };
const rgba_t c_maroon2 = { 0xeeee, 0x3030, 0xa7a7, 0xffff };
const rgba_t c_maroon3 = { 0xcdcd, 0x2929, 0x9090, 0xffff };
const rgba_t c_maroon4 = { 0x8b8b, 0x1c1c, 0x6262, 0xffff };
const rgba_t c_VioletRed1 = { 0xffff, 0x3e3e, 0x9696, 0xffff };
const rgba_t c_VioletRed2 = { 0xeeee, 0x3a3a, 0x8c8c, 0xffff };
const rgba_t c_VioletRed3 = { 0xcdcd, 0x3232, 0x7878, 0xffff };
const rgba_t c_VioletRed4 = { 0x8b8b, 0x2222, 0x5252, 0xffff };
const rgba_t c_magenta1 = { 0xffff, 0x0000, 0xffff, 0xffff };
const rgba_t c_magenta2 = { 0xeeee, 0x0000, 0xeeee, 0xffff };
const rgba_t c_magenta3 = { 0xcdcd, 0x0000, 0xcdcd, 0xffff };
const rgba_t c_magenta4 = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_orchid1 = { 0xffff, 0x8383, 0xfafa, 0xffff };
const rgba_t c_orchid2 = { 0xeeee, 0x7a7a, 0xe9e9, 0xffff };
const rgba_t c_orchid3 = { 0xcdcd, 0x6969, 0xc9c9, 0xffff };
const rgba_t c_orchid4 = { 0x8b8b, 0x4747, 0x8989, 0xffff };
const rgba_t c_plum1 = { 0xffff, 0xbbbb, 0xffff, 0xffff };
const rgba_t c_plum2 = { 0xeeee, 0xaeae, 0xeeee, 0xffff };
const rgba_t c_plum3 = { 0xcdcd, 0x9696, 0xcdcd, 0xffff };
const rgba_t c_plum4 = { 0x8b8b, 0x6666, 0x8b8b, 0xffff };
const rgba_t c_MediumOrchid1 = { 0xe0e0, 0x6666, 0xffff, 0xffff };
const rgba_t c_MediumOrchid2 = { 0xd1d1, 0x5f5f, 0xeeee, 0xffff };
const rgba_t c_MediumOrchid3 = { 0xb4b4, 0x5252, 0xcdcd, 0xffff };
const rgba_t c_MediumOrchid4 = { 0x7a7a, 0x3737, 0x8b8b, 0xffff };
const rgba_t c_DarkOrchid1 = { 0xbfbf, 0x3e3e, 0xffff, 0xffff };
const rgba_t c_DarkOrchid2 = { 0xb2b2, 0x3a3a, 0xeeee, 0xffff };
const rgba_t c_DarkOrchid3 = { 0x9a9a, 0x3232, 0xcdcd, 0xffff };
const rgba_t c_DarkOrchid4 = { 0x6868, 0x2222, 0x8b8b, 0xffff };
const rgba_t c_purple1 = { 0x9b9b, 0x3030, 0xffff, 0xffff };
const rgba_t c_purple2 = { 0x9191, 0x2c2c, 0xeeee, 0xffff };
const rgba_t c_purple3 = { 0x7d7d, 0x2626, 0xcdcd, 0xffff };
const rgba_t c_purple4 = { 0x5555, 0x1a1a, 0x8b8b, 0xffff };
const rgba_t c_MediumPurple1 = { 0xabab, 0x8282, 0xffff, 0xffff };
const rgba_t c_MediumPurple2 = { 0x9f9f, 0x7979, 0xeeee, 0xffff };
const rgba_t c_MediumPurple3 = { 0x8989, 0x6868, 0xcdcd, 0xffff };
const rgba_t c_MediumPurple4 = { 0x5d5d, 0x4747, 0x8b8b, 0xffff };
const rgba_t c_thistle1 = { 0xffff, 0xe1e1, 0xffff, 0xffff };
const rgba_t c_thistle2 = { 0xeeee, 0xd2d2, 0xeeee, 0xffff };
const rgba_t c_thistle3 = { 0xcdcd, 0xb5b5, 0xcdcd, 0xffff };
const rgba_t c_thistle4 = { 0x8b8b, 0x7b7b, 0x8b8b, 0xffff };
const rgba_t c_gray0 = { 0x0000, 0x0000, 0x0000, 0xffff };
const rgba_t c_grey0 = { 0x0000, 0x0000, 0x0000, 0xffff };
const rgba_t c_gray1 = { 0x0303, 0x0303, 0x0303, 0xffff };
const rgba_t c_grey1 = { 0x0303, 0x0303, 0x0303, 0xffff };
const rgba_t c_gray2 = { 0x0505, 0x0505, 0x0505, 0xffff };
const rgba_t c_grey2 = { 0x0505, 0x0505, 0x0505, 0xffff };
const rgba_t c_gray3 = { 0x0808, 0x0808, 0x0808, 0xffff };
const rgba_t c_grey3 = { 0x0808, 0x0808, 0x0808, 0xffff };
const rgba_t c_gray4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff };
const rgba_t c_grey4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff };
const rgba_t c_gray5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff };
const rgba_t c_grey5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff };
const rgba_t c_gray6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff };
const rgba_t c_grey6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff };
const rgba_t c_gray7 = { 0x1212, 0x1212, 0x1212, 0xffff };
const rgba_t c_grey7 = { 0x1212, 0x1212, 0x1212, 0xffff };
const rgba_t c_gray8 = { 0x1414, 0x1414, 0x1414, 0xffff };
const rgba_t c_grey8 = { 0x1414, 0x1414, 0x1414, 0xffff };
const rgba_t c_gray9 = { 0x1717, 0x1717, 0x1717, 0xffff };
const rgba_t c_grey9 = { 0x1717, 0x1717, 0x1717, 0xffff };
const rgba_t c_gray10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff };
const rgba_t c_grey10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff };
const rgba_t c_gray11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff };
const rgba_t c_grey11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff };
const rgba_t c_gray12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff };
const rgba_t c_grey12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff };
const rgba_t c_gray13 = { 0x2121, 0x2121, 0x2121, 0xffff };
const rgba_t c_grey13 = { 0x2121, 0x2121, 0x2121, 0xffff };
const rgba_t c_gray14 = { 0x2424, 0x2424, 0x2424, 0xffff };
const rgba_t c_grey14 = { 0x2424, 0x2424, 0x2424, 0xffff };
const rgba_t c_gray15 = { 0x2626, 0x2626, 0x2626, 0xffff };
const rgba_t c_grey15 = { 0x2626, 0x2626, 0x2626, 0xffff };
const rgba_t c_gray16 = { 0x2929, 0x2929, 0x2929, 0xffff };
const rgba_t c_grey16 = { 0x2929, 0x2929, 0x2929, 0xffff };
const rgba_t c_gray17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff };
const rgba_t c_grey17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff };
const rgba_t c_gray18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff };
const rgba_t c_grey18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff };
const rgba_t c_gray19 = { 0x3030, 0x3030, 0x3030, 0xffff };
const rgba_t c_grey19 = { 0x3030, 0x3030, 0x3030, 0xffff };
const rgba_t c_gray20 = { 0x3333, 0x3333, 0x3333, 0xffff };
const rgba_t c_grey20 = { 0x3333, 0x3333, 0x3333, 0xffff };
const rgba_t c_gray21 = { 0x3636, 0x3636, 0x3636, 0xffff };
const rgba_t c_grey21 = { 0x3636, 0x3636, 0x3636, 0xffff };
const rgba_t c_gray22 = { 0x3838, 0x3838, 0x3838, 0xffff };
const rgba_t c_grey22 = { 0x3838, 0x3838, 0x3838, 0xffff };
const rgba_t c_gray23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff };
const rgba_t c_grey23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff };
const rgba_t c_gray24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff };
const rgba_t c_grey24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff };
const rgba_t c_gray25 = { 0x4040, 0x4040, 0x4040, 0xffff };
const rgba_t c_grey25 = { 0x4040, 0x4040, 0x4040, 0xffff };
const rgba_t c_gray26 = { 0x4242, 0x4242, 0x4242, 0xffff };
const rgba_t c_grey26 = { 0x4242, 0x4242, 0x4242, 0xffff };
const rgba_t c_gray27 = { 0x4545, 0x4545, 0x4545, 0xffff };
const rgba_t c_grey27 = { 0x4545, 0x4545, 0x4545, 0xffff };
const rgba_t c_gray28 = { 0x4747, 0x4747, 0x4747, 0xffff };
const rgba_t c_grey28 = { 0x4747, 0x4747, 0x4747, 0xffff };
const rgba_t c_gray29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff };
const rgba_t c_grey29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff };
const rgba_t c_gray30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff };
const rgba_t c_grey30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff };
const rgba_t c_gray31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_grey31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff };
const rgba_t c_gray32 = { 0x5252, 0x5252, 0x5252, 0xffff };
const rgba_t c_grey32 = { 0x5252, 0x5252, 0x5252, 0xffff };
const rgba_t c_gray33 = { 0x5454, 0x5454, 0x5454, 0xffff };
const rgba_t c_grey33 = { 0x5454, 0x5454, 0x5454, 0xffff };
const rgba_t c_gray34 = { 0x5757, 0x5757, 0x5757, 0xffff };
const rgba_t c_grey34 = { 0x5757, 0x5757, 0x5757, 0xffff };
const rgba_t c_gray35 = { 0x5959, 0x5959, 0x5959, 0xffff };
const rgba_t c_grey35 = { 0x5959, 0x5959, 0x5959, 0xffff };
const rgba_t c_gray36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff };
const rgba_t c_grey36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff };
const rgba_t c_gray37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff };
const rgba_t c_grey37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff };
const rgba_t c_gray38 = { 0x6161, 0x6161, 0x6161, 0xffff };
const rgba_t c_grey38 = { 0x6161, 0x6161, 0x6161, 0xffff };
const rgba_t c_gray39 = { 0x6363, 0x6363, 0x6363, 0xffff };
const rgba_t c_grey39 = { 0x6363, 0x6363, 0x6363, 0xffff };
const rgba_t c_gray40 = { 0x6666, 0x6666, 0x6666, 0xffff };
const rgba_t c_grey40 = { 0x6666, 0x6666, 0x6666, 0xffff };
const rgba_t c_gray41 = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_grey41 = { 0x6969, 0x6969, 0x6969, 0xffff };
const rgba_t c_gray42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff };
const rgba_t c_grey42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff };
const rgba_t c_gray43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff };
const rgba_t c_grey43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff };
const rgba_t c_gray44 = { 0x7070, 0x7070, 0x7070, 0xffff };
const rgba_t c_grey44 = { 0x7070, 0x7070, 0x7070, 0xffff };
const rgba_t c_gray45 = { 0x7373, 0x7373, 0x7373, 0xffff };
const rgba_t c_grey45 = { 0x7373, 0x7373, 0x7373, 0xffff };
const rgba_t c_gray46 = { 0x7575, 0x7575, 0x7575, 0xffff };
const rgba_t c_grey46 = { 0x7575, 0x7575, 0x7575, 0xffff };
const rgba_t c_gray47 = { 0x7878, 0x7878, 0x7878, 0xffff };
const rgba_t c_grey47 = { 0x7878, 0x7878, 0x7878, 0xffff };
const rgba_t c_gray48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff };
const rgba_t c_grey48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff };
const rgba_t c_gray49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff };
const rgba_t c_grey49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff };
const rgba_t c_gray50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff };
const rgba_t c_grey50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff };
const rgba_t c_gray51 = { 0x8282, 0x8282, 0x8282, 0xffff };
const rgba_t c_grey51 = { 0x8282, 0x8282, 0x8282, 0xffff };
const rgba_t c_gray52 = { 0x8585, 0x8585, 0x8585, 0xffff };
const rgba_t c_grey52 = { 0x8585, 0x8585, 0x8585, 0xffff };
const rgba_t c_gray53 = { 0x8787, 0x8787, 0x8787, 0xffff };
const rgba_t c_grey53 = { 0x8787, 0x8787, 0x8787, 0xffff };
const rgba_t c_gray54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff };
const rgba_t c_grey54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff };
const rgba_t c_gray55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff };
const rgba_t c_grey55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff };
const rgba_t c_gray56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff };
const rgba_t c_grey56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff };
const rgba_t c_gray57 = { 0x9191, 0x9191, 0x9191, 0xffff };
const rgba_t c_grey57 = { 0x9191, 0x9191, 0x9191, 0xffff };
const rgba_t c_gray58 = { 0x9494, 0x9494, 0x9494, 0xffff };
const rgba_t c_grey58 = { 0x9494, 0x9494, 0x9494, 0xffff };
const rgba_t c_gray59 = { 0x9696, 0x9696, 0x9696, 0xffff };
const rgba_t c_grey59 = { 0x9696, 0x9696, 0x9696, 0xffff };
const rgba_t c_gray60 = { 0x9999, 0x9999, 0x9999, 0xffff };
const rgba_t c_grey60 = { 0x9999, 0x9999, 0x9999, 0xffff };
const rgba_t c_gray61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff };
const rgba_t c_grey61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff };
const rgba_t c_gray62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff };
const rgba_t c_grey62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff };
const rgba_t c_gray63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff };
const rgba_t c_grey63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff };
const rgba_t c_gray64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff };
const rgba_t c_grey64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff };
const rgba_t c_gray65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff };
const rgba_t c_grey65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff };
const rgba_t c_gray66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff };
const rgba_t c_grey66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff };
const rgba_t c_gray67 = { 0xabab, 0xabab, 0xabab, 0xffff };
const rgba_t c_grey67 = { 0xabab, 0xabab, 0xabab, 0xffff };
const rgba_t c_gray68 = { 0xadad, 0xadad, 0xadad, 0xffff };
const rgba_t c_grey68 = { 0xadad, 0xadad, 0xadad, 0xffff };
const rgba_t c_gray69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff };
const rgba_t c_grey69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff };
const rgba_t c_gray70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff };
const rgba_t c_grey70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff };
const rgba_t c_gray71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff };
const rgba_t c_grey71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff };
const rgba_t c_gray72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff };
const rgba_t c_grey72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff };
const rgba_t c_gray73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff };
const rgba_t c_grey73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff };
const rgba_t c_gray74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff };
const rgba_t c_grey74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff };
const rgba_t c_gray75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff };
const rgba_t c_grey75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff };
const rgba_t c_gray76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff };
const rgba_t c_grey76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff };
const rgba_t c_gray77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff };
const rgba_t c_grey77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff };
const rgba_t c_gray78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff };
const rgba_t c_grey78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff };
const rgba_t c_gray79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff };
const rgba_t c_grey79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff };
const rgba_t c_gray80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff };
const rgba_t c_grey80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff };
const rgba_t c_gray81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff };
const rgba_t c_grey81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff };
const rgba_t c_gray82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff };
const rgba_t c_grey82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff };
const rgba_t c_gray83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff };
const rgba_t c_grey83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff };
const rgba_t c_gray84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff };
const rgba_t c_grey84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff };
const rgba_t c_gray85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff };
const rgba_t c_grey85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff };
const rgba_t c_gray86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff };
const rgba_t c_grey86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff };
const rgba_t c_gray87 = { 0xdede, 0xdede, 0xdede, 0xffff };
const rgba_t c_grey87 = { 0xdede, 0xdede, 0xdede, 0xffff };
const rgba_t c_gray88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff };
const rgba_t c_grey88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff };
const rgba_t c_gray89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff };
const rgba_t c_grey89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff };
const rgba_t c_gray90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff };
const rgba_t c_grey90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff };
const rgba_t c_gray91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff };
const rgba_t c_grey91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff };
const rgba_t c_gray92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff };
const rgba_t c_grey92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff };
const rgba_t c_gray93 = { 0xeded, 0xeded, 0xeded, 0xffff };
const rgba_t c_grey93 = { 0xeded, 0xeded, 0xeded, 0xffff };
const rgba_t c_gray94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff };
const rgba_t c_grey94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff };
const rgba_t c_gray95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff };
const rgba_t c_grey95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff };
const rgba_t c_gray96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
const rgba_t c_grey96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
const rgba_t c_gray97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff };
const rgba_t c_grey97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff };
const rgba_t c_gray98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff };
const rgba_t c_grey98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff };
const rgba_t c_gray99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff };
const rgba_t c_grey99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff };
const rgba_t c_gray100 = { 0xffff, 0xffff, 0xffff, 0xffff };
const rgba_t c_grey100 = { 0xffff, 0xffff, 0xffff, 0xffff };
const rgba_t c_dark_grey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
const rgba_t c_DarkGrey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
const rgba_t c_dark_gray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
const rgba_t c_DarkGray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
const rgba_t c_dark_blue = { 0x0000, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_DarkBlue = { 0x0000, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_dark_cyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_DarkCyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
const rgba_t c_dark_magenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_DarkMagenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
const rgba_t c_dark_red = { 0x8b8b, 0x0000, 0x0000, 0xffff };
const rgba_t c_DarkRed = { 0x8b8b, 0x0000, 0x0000, 0xffff };
const rgba_t c_light_green = { 0x9090, 0xeeee, 0x9090, 0xffff };
const rgba_t c_LightGreen = { 0x9090, 0xeeee, 0x9090, 0xffff };


    /*
     *  Calculate a weighted difference between two colors
     */

u32 color_error(const rgba_t *a, const rgba_t *b)
{
    u32 error = abs(a->r-b->r)+abs(a->g-b->g)+abs(a->b-b->b);
    return RGB_WEIGHT*error+abs(a->a-b->a);
}


    /*
     *  Add two colors: a = b+c
     */

void color_add(rgba_t *a, const rgba_t *b, const rgba_t *c)
{
    a->r = b->r+c->r;
    a->g = b->g+c->g;
    a->b = b->b+c->b;
    a->a = b->a+c->a;
}


    /*
     *  Subtract two colors: a = b-c
     */

void color_sub(rgba_t *a, const rgba_t *b, const rgba_t *c)
{
    a->r = b->r-c->r;
    a->g = b->g-c->g;
    a->b = b->b-c->b;
    a->a = b->a-c->a;
}


    /*
     *  Find the index of the closest color in a CLUT
     */

u32 color_find(const rgba_t *color, const rgba_t *clut, u32 clut_size)
{
    u32 idx, best_idx, error, best_error;

    best_idx = 0;
    best_error = color_error(&clut[0], color);
    for (idx = 1; idx < clut_size; idx++) {
	error = color_error(&clut[idx], color);
	if (error < best_error) {
	    best_idx = idx;
	    best_error = error;
	}
    }
    return best_idx;
}


    /*
     *  RGB/YUV conversions
     */

/* Fast saturation from Imlib2 */
#define SATURATE_BOTH(out, in)				\
    do {						\
	unsigned int tmp = (in);			\
	out = (tmp | (-(tmp >> 8))) & (~(tmp >> 9));	\
    } while (0)

void yuva_to_rgba(const yuva_t *yuva, rgba_t *rgba)
{
    u8 y, u, v, r, g, b;

    /* The actual conversion is done in 8 bit */
    y = yuva->y >> 8;
    u = yuva->u >> 8;
    v = yuva->v >> 8;

    /* YUV to RGB */
    SATURATE_BOTH(r, (298*(y-16)+409*(v-128))/256);
    SATURATE_BOTH(g, (298*(y-16)-100*(u-128)-208*(v-128))/256);
    SATURATE_BOTH(b, (298*(y-16)+516*(u-128))/256);

    /* Expand to 16 bit */
    rgba->r = (r << 8) | r;
    rgba->g = (g << 8) | g;
    rgba->b = (b << 8) | b;

    rgba->a = yuva->a;
}

void rgba_to_yuva(const rgba_t *rgba, yuva_t *yuva)
{
    int r, g, b, y, u, v;

    /* The actual conversion is done in 8 bit */
    r = rgba->r >> 8;
    g = rgba->g >> 8;
    b = rgba->b >> 8;

    /* RGB to YUV */
    SATURATE_BOTH(y, ((66*r+129*g+25*b)/256)+16);
    SATURATE_BOTH(u, (128*256-38*r-74*g+112*b)/256);
    SATURATE_BOTH(v, (128*256+112*r-94*g-18*b)/256);

    /* Expand to 16 bit */
    yuva->y = (y << 8) | y;
    yuva->u = (u << 8) | u;
    yuva->v = (v << 8) | v;

    yuva->a = rgba->a;
}