ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/nff2rad.c
Revision: 2.4
Committed: Tue Jul 20 11:34:40 1993 UTC (30 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 2.3: +11 -9 lines
Log Message:
fixes in materials and light sources (hacks all)

File Contents

# Content
1 /* Copyright (c) 1992 Regents of the University of California */
2
3 #ifndef lint
4 static char SCCSid[] = "$SunId$ LBL";
5 #endif
6
7 /*
8 * Convert Neutral File Format input to Radiance scene description.
9 *
10 * 12/9/90 Greg Ward
11 * 02/7/92 Peter Averkamp added X11(MTV)color names &
12 * fixed some lf's for direct import of MTV
13 * source files
14 */
15
16 /******************************************************************
17
18 Since Eric Haines wrote such excellent documentation of his
19 Neutral File Format, I am just going to reprint it here with
20 my added comments in braces {}.
21
22 Neutral File Format (NFF), by Eric Haines
23
24 Draft document #1, 10/3/88
25
26 The NFF (Neutral File Format) is designed as a minimal scene description
27 language. The language was designed in order to test various rendering
28 algorithms and efficiency schemes. It is meant to describe the geometry and
29 basic surface characteristics of objects, the placement of lights, and the
30 viewing frustum for the eye. Some additional information is provided for
31 esthetic reasons (such as the color of the objects, which is not strictly
32 necessary for testing rendering algorithms).
33
34 Future enhancements include: circle and torus objects, spline surfaces
35 with trimming curves, directional lights, characteristics for positional
36 lights, CSG descriptions, and probably more by the time you read this.
37 Comments, suggestions, and criticisms are all welcome.
38
39 At present the NFF file format is used in conjunction with the SPD (Standard
40 Procedural Database) software, a package designed to create a variety of
41 databases for testing rendering schemes. The SPD package is available
42 from Netlib and via ftp from drizzle.cs.uoregon.edu. For more information
43 about SPD see "A Proposal for Standard Graphics Environments," IEEE Computer
44 Graphics and Applications, vol. 7, no. 11, November 1987, pp. 3-5.
45
46 By providing a minimal interface, NFF is meant to act as a simple format to
47 allow the programmer to quickly write filters to move from NFF to the
48 local file format. Presently the following entities are supported:
49 A simple perspective frustum
50 A positional (vs. directional) light source description
51 A background color description
52 A surface properties description
53 Polygon, polygonal patch, cylinder/cone, and sphere descriptions
54
55 Files are output as lines of text. For each entity, the first line
56 defines its type. The rest of the first line and possibly other lines
57 contain further information about the entity. Entities include:
58
59 "v" - viewing vectors and angles { optionally creates view file }
60 "l" - positional light location { it's there, but bad to use }
61 "b" - background color { ditto }
62 "f" - object material properties { this is flakey }
63 "c" - cone or cylinder primitive
64 "s" - sphere primitive
65 "p" - polygon primitive
66 "pp" - polygonal patch primitive { interpreted same as p for now }
67
68 These are explained in depth below: { see conversion routines }
69
70 ***********************************************************************/
71
72 #include <stdio.h>
73
74 char *viewfile = NULL; /* view parameters file */
75
76 char *progname;
77
78
79 main(argc, argv) /* convert NFF file to Radiance */
80 int argc;
81 char *argv[];
82 {
83 int i;
84
85 progname = argv[0];
86 for (i = 1; i < argc; i++)
87 if (argc-i > 1 && !strcmp(argv[i], "-vf"))
88 viewfile = argv[++i];
89 else if (!strncmp(argv[i], "-h",2))
90 goto userr;
91 else
92 break;
93 if (argc-i > 1)
94 goto userr;
95 if (argc-i == 1 && freopen(argv[i], "r", stdin) == NULL) {
96 perror(argv[i]);
97 exit(1);
98 }
99 init();
100 nff2rad();
101 exit(0);
102 userr:
103 fprintf(stderr, "Usage: %s [-vf viewfile] [input]\n", progname);
104 exit(1);
105 }
106
107
108 init() /* spit out initial definitions */
109 {
110 printf("# File created by %s\n", progname);
111 printf("\nvoid light light\n");
112 printf("0\n0\n3 1e6 1e6 1e6\n");
113 printf("\nvoid plastic fill\n");
114 printf("0\n0\n5 .5 .5 .5 0 0\n");
115 }
116
117
118 nff2rad() /* convert NFF on stdin to Radiance on stdout */
119 {
120 register int c;
121
122 while ((c = getchar()) != EOF)
123 switch (c) {
124 case ' ': /* white space */
125 case '\t':
126 case '\n':
127 case '\f':
128 case '\r':
129 continue;
130 case '#': /* comment */
131 comment();
132 break;
133 case 'v': /* view point */
134 view();
135 break;
136 case 'l': /* light source */
137 light();
138 break;
139 case 'b': /* background color */
140 background();
141 break;
142 case 'f': /* fill material */
143 fill();
144 break;
145 case 'c': /* cylinder or cone */
146 cone();
147 break;
148 case 's': /* sphere */
149 sphere();
150 break;
151 case 'p': /* polygon or patch */
152 poly();
153 break;
154 default: /* unknown */
155 fprintf(stderr, "%c: unknown NFF primitive\n", c);
156 exit(1);
157 }
158 }
159
160
161 /*******************************************
162
163 Comment. Description:
164 "#" [ string ]
165
166 Format:
167 # [ string ]
168
169 As soon as a "#" character is detected, the rest of the line is considered
170 a comment.
171
172 ******************/
173
174 comment()
175 {
176 register int c;
177
178 putchar('#');
179 while ((c = getchar()) != EOF) {
180 putchar(c);
181 if (c == '\n')
182 break;
183 }
184 }
185
186
187 /***************************************************
188
189 Viewpoint location. Description:
190 "v"
191 "from" Fx Fy Fz
192 "at" Ax Ay Az
193 "up" Ux Uy Uz
194 "angle" angle
195 "hither" hither
196 "resolution" xres yres
197
198 Format:
199
200 v
201 from %g %g %g
202 at %g %g %g
203 up %g %g %g
204 angle %g
205 hither %g
206 resolution %d %d
207
208 The parameters are:
209
210 From: the eye location in XYZ.
211 At: a position to be at the center of the image, in XYZ world
212 coordinates. A.k.a. "lookat".
213 Up: a vector defining which direction is up, as an XYZ vector.
214 Angle: in degrees, defined as from the center of top pixel row to
215 bottom pixel row and left column to right column.
216 Resolution: in pixels, in x and in y.
217
218 Note that no assumptions are made about normalizing the data (e.g. the
219 from-at distance does not have to be 1). Also, vectors are not
220 required to be perpendicular to each other.
221
222 For all databases some viewing parameters are always the same:
223 Yon is "at infinity."
224 Aspect ratio is 1.0.
225
226 A view entity must be defined before any objects are defined (this
227 requirement is so that NFF files can be used by hidden surface machines).
228
229 ***************/
230
231 view()
232 {
233 static FILE *fp = NULL;
234 float from[3], at[3], up[3], angle;
235
236 if (scanf(" from %f %f %f", &from[0], &from[1], &from[2]) != 3)
237 goto fmterr;
238 if (scanf(" at %f %f %f", &at[0], &at[1], &at[2]) != 3)
239 goto fmterr;
240 if (scanf(" up %f %f %f", &up[0], &up[1], &up[2]) != 3)
241 goto fmterr;
242 if (scanf(" angle %f", &angle) != 1)
243 goto fmterr;
244 scanf(" hither %*f");
245 scanf(" resolution %*d %*d");
246 if (viewfile != NULL) {
247 if (fp == NULL && (fp = fopen(viewfile, "a")) == NULL) {
248 perror(viewfile);
249 exit(1);
250 }
251 fprintf(fp,
252 "VIEW= -vp %g %g %g -vd %g %g %g -vu %g %g %g -vh %g -vv %g\n",
253 from[0], from[1], from[2],
254 at[0]-from[0], at[1]-from[1], at[2]-from[2],
255 up[0], up[1], up[2],
256 angle, angle);
257 }
258 return;
259 fmterr:
260 fprintf(stderr, "%s: view syntax error\n", progname);
261 exit(1);
262 }
263
264
265 /********************************
266
267 Positional light. A light is defined by XYZ position. Description:
268 "l" X Y Z
269
270 Format:
271 l %g %g %g
272
273 All light entities must be defined before any objects are defined (this
274 requirement is so that NFF files can be used by hidden surface machines).
275 Lights have a non-zero intensity of no particular value [this definition
276 may change soon, with the addition of an intensity and/or color].
277
278 **************************/
279
280 light()
281 {
282 static int nlights = 0;
283 register int c;
284 float x, y, z;
285
286 if (scanf("%f %f %f",&x, &y, &z) != 3) {
287 fprintf(stderr, "%s: light source syntax error\n", progname);
288 exit(1);
289 }
290 while ((c = getchar()) != EOF && c != '\n')
291 ;
292 printf("\nlight sphere l%d \n", ++nlights);
293 printf("0\n0\n4 %g %g %g .01\n", x, y, z);
294 }
295
296
297 /**************************************************
298
299 Background color. A color is simply RGB with values between 0 and 1:
300 "b" R G B
301
302 Format:
303 b %g %g %g
304
305 If no background color is set, assume RGB = {0,0,0}.
306
307 ********************/
308
309 background()
310 {
311 float r, g, b;
312 char colname[50];
313 double cvec[3];
314
315 if (scanf("%s", colname) != 1) {
316 fprintf(stderr,"%s: background syntax error\n",progname);exit(1);
317 }
318 if(LookupColorByName(colname,cvec)==1){
319 r=cvec[0];g=cvec[1];b=cvec[2];
320 }else{
321 if(sscanf(colname,"%f",&r)!=1 ||
322 scanf("%f %f", &g, &b) !=2) {
323 fprintf(stderr, "%s: background syntax error\n", progname);
324 exit(1);
325 }
326 }
327 printf("\nvoid glow backg_color\n");
328 printf("0\n0\n4 %g %g %g 0\n", r, g, b);
329 printf("\nbackg_color source background\n");
330 printf("0\n0\n4 0 0 1 360\n");
331 }
332
333
334 /****************************************************
335
336 Fill color and shading parameters. Description:
337 "f" red green blue Kd Ks Shine T index_of_refraction
338
339 Format:
340 f %g %g %g %g %g %g %g %g
341
342 RGB is in terms of 0.0 to 1.0.
343
344 Kd is the diffuse component, Ks the specular, Shine is the Phong cosine
345 power for highlights, T is transmittance (fraction of light passed per
346 unit). Usually, 0 <= Kd <= 1 and 0 <= Ks <= 1, though it is not required
347 that Kd + Ks == 1. Note that transmitting objects ( T > 0 ) are considered
348 to have two sides for algorithms that need these (normally objects have
349 one side).
350
351 The fill color is used to color the objects following it until a new color
352 is assigned.
353
354 *********************/
355
356 fill()
357 {
358 float r, g, b, d, s, p, t, n;
359 char colname[50];
360 double cvec[3];
361
362 if (scanf("%s", colname) != 1) {
363 fprintf(stderr,"%s: fill syntax error\n",progname);exit(1);
364 }
365 if(LookupColorByName(colname,cvec)==1){
366 r=cvec[0];g=cvec[1];b=cvec[2];
367 }else{
368 if(sscanf(colname,"%f",&r)!=1 ||
369 scanf("%f %f", &g, &b) !=2) {
370 fprintf(stderr, "%s: fill syntax error\n", progname);
371 exit(1);
372 }
373 }
374 if (scanf("%f %f %f %f %f", &d, &s, &p, &t, &n) != 5) {
375 fprintf(stderr, "%s: fill material syntax error\n", progname);
376 exit(1);
377 }
378 if (p > 1.)
379 p = 1./p;
380 if (t > .001) { /* has transmission */
381 if (n > 1.1) { /* has index of refraction */
382 printf("\nvoid dielectric fill\n");
383 printf("0\n0\n5 %g %g %g %g 0\n", r, g, b, n);
384 } else { /* transmits w/o refraction */
385 printf("\nvoid trans fill\n");
386 printf("0\n0\n7 %g %g %g %g 0 %g 1\n",
387 r*d, g*d, b*d, s, t);
388 }
389 } else { /* no transmission */
390 printf("\nvoid plastic fill\n");
391 printf("0\n0\n5 %g %g %g %g %g\n", r*d, g*d, b*d, s, p);
392 }
393 }
394
395
396 /*****************************************************
397
398 Cylinder or cone. A cylinder is defined as having a radius and an axis
399 defined by two points, which also define the top and bottom edge of the
400 cylinder. A cone is defined similarly, the difference being that the apex
401 and base radii are different. The apex radius is defined as being smaller
402 than the base radius. Note that the surface exists without endcaps. The
403 cone or cylinder description:
404
405 "c"
406 base.x base.y base.z base_radius
407 apex.x apex.y apex.z apex_radius
408
409 Format:
410 c
411 %g %g %g %g
412 %g %g %g %g
413
414 A negative value for both radii means that only the inside of the object is
415 visible (objects are normally considered one sided, with the outside
416 visible). Note that the base and apex cannot be coincident for a cylinder
417 or cone.
418
419 ************************/
420
421 cone()
422 {
423 static int ncs = 0;
424 int invert;
425 float x0, y0, z0, x1, y1, z1, r0, r1;
426
427 if (scanf("%f %f %f %f %f %f %f %f", &x0, &y0, &z0, &r0,
428 &x1, &y1, &z1, &r1) != 8) {
429 fprintf(stderr, "%s: cylinder or cone syntax error\n",
430 progname);
431 exit(1);
432 }
433 if (invert = r0 < 0.) {
434 r0 = -r0;
435 r1 = -r1;
436 }
437 if (r0-r1 < .001 && r1-r0 < .001) { /* cylinder */
438 printf("\nfill %s c%d \n", invert?"tube":"cylinder", ++ncs);
439 printf("0\n0\n7\n");
440 printf("\t%g\t%g\t%g\n", x0, y0, z0);
441 printf("\t%g\t%g\t%g\n", x1, y1, z1);
442 printf("\t%g\n", r0);
443 } else { /* cone */
444 printf("\nfill %s c%d \n", invert?"cup":"cone", ++ncs);
445 printf("0\n0\n8\n");
446 printf("\t%g\t%g\t%g\n", x0, y0, z0);
447 printf("\t%g\t%g\t%g\n", x1, y1, z1);
448 printf("\t%g\t%g\n", r0, r1);
449 }
450 }
451
452
453 /*****************************************
454
455 Sphere. A sphere is defined by a radius and center position:
456 "s" center.x center.y center.z radius
457
458 Format:
459 s %g %g %g %g
460
461 If the radius is negative, then only the sphere's inside is visible
462 (objects are normally considered one sided, with the outside visible).
463
464 ******************/
465
466 sphere()
467 {
468 static int nspheres = 0;
469 float x, y, z, r;
470
471 if (scanf("%f %f %f %f", &x, &y, &z, &r) != 4) {
472 fprintf(stderr, "%s: sphere syntax error\n", progname);
473 exit(1);
474 }
475 if (r < 0.) {
476 printf("\nfill bubble s%d \n", ++nspheres);
477 printf("0\n0\n4 %g %g %g %g\n", x, y, z, -r);
478 } else {
479 printf("\nfill sphere s%d \n", ++nspheres);
480 printf("0\n0\n4 %g %g %g %g\n", x, y, z, r);
481 }
482 }
483
484
485 /*********************************************
486
487 Polygon. A polygon is defined by a set of vertices. With these databases,
488 a polygon is defined to have all points coplanar. A polygon has only
489 one side, with the order of the vertices being counterclockwise as you
490 face the polygon (right-handed coordinate system). The first two edges
491 must form a non-zero convex angle, so that the normal and side visibility
492 can be determined. Description:
493
494 "p" total_vertices
495 vert1.x vert1.y vert1.z
496 [etc. for total_vertices vertices]
497
498 Format:
499 p %d
500 [ %g %g %g ] <-- for total_vertices vertices
501
502 --------
503
504 Polygonal patch. A patch is defined by a set of vertices and their normals.
505 With these databases, a patch is defined to have all points coplanar.
506 A patch has only one side, with the order of the vertices being
507 counterclockwise as you face the patch (right-handed coordinate system).
508 The first two edges must form a non-zero convex angle, so that the normal
509 and side visibility can be determined. Description:
510
511 "pp" total_vertices
512 vert1.x vert1.y vert1.z norm1.x norm1.y norm1.z
513 [etc. for total_vertices vertices]
514
515 Format:
516 pp %d
517 [ %g %g %g %g %g %g ] <-- for total_vertices vertices
518
519 *******************/
520
521 poly()
522 {
523 static int npolys = 0;
524 int ispatch;
525 int nverts;
526 float x, y, z;
527
528 ispatch = getchar();
529 if (ispatch != 'p') {
530 ungetc(ispatch, stdin);
531 ispatch = 0;
532 }
533 if (scanf("%d", &nverts) != 1)
534 goto fmterr;
535 printf("\nfill polygon p%d \n", ++npolys);
536 printf("0\n0\n%d\n", 3*nverts);
537 while (nverts-- > 0) {
538 if (scanf("%f %f %f", &x, &y, &z) != 3)
539 goto fmterr;
540 if (ispatch)
541 scanf("%*f %*f %*f");
542 printf("\t%g\t%g\t%g\n", x, y, z);
543 }
544 return;
545 fmterr:
546 fprintf(stderr, "%s: polygon or patch syntax error\n", progname);
547 exit(1);
548 }
549 /***********************************************************************
550 * $Author: markv $ (Mark VandeWettering, drizzle.cs.uoregon.edu)
551 * $Revision: 1.2 $
552 * $Date: 88/09/12 12:53:47 $
553 * $Log: color.c,v $
554 * Revision 1.2 88/09/12 12:53:47 markv
555 * Fixed problem in LookupColorbyName, had return ; and return(0).
556 * [ Thank you lint! ]
557 *
558 * Revision 1.1 88/09/11 11:00:37 markv
559 * Initial revision
560 *
561 * Peter Averkamp 92/02/01
562 * added complete X11R5 rgb.txt-table, hacked standalone version
563 * for nff2rad
564 *
565 ***********************************************************************/
566
567 typedef double Flt ;
568 typedef Flt Vec[3] ;
569 typedef Vec Point ;
570 typedef Vec Color ;
571
572 #define VecCopy(a,b) (b)[0]=(a)[0];(b)[1]=(a)[1];(b)[2]=(a)[2];
573 #define NCOLORS (738)
574
575 typedef struct t_color_entry {
576 char * ce_name ;
577 Vec ce_color ;
578 } ColorEntry ;
579
580 #define LESS_THAN -1
581 #define GREATER_THAN 1
582 #define EQUAL_TO 0
583
584 /*
585 * Note: These colors must be in sorted order, because we binary search
586 * for them.
587 *
588 * They were swiped from the X-11 distribution. Sorry....
589 */
590
591 ColorEntry Colors[] = {
592 {"AliceBlue", {0.941176 , 0.972549 , 1.000000 }},
593 {"AntiqueWhite", {0.980392 , 0.921569 , 0.843137 }},
594 {"AntiqueWhite1", {1.000000 , 0.937255 , 0.858824 }},
595 {"AntiqueWhite2", {0.933333 , 0.874510 , 0.800000 }},
596 {"AntiqueWhite3", {0.803922 , 0.752941 , 0.690196 }},
597 {"AntiqueWhite4", {0.545098 , 0.513725 , 0.470588 }},
598 {"BlanchedAlmond", {1.000000 , 0.921569 , 0.803922 }},
599 {"BlueViolet", {0.541176 , 0.168627 , 0.886275 }},
600 {"CadetBlue", {0.372549 , 0.619608 , 0.627451 }},
601 {"CadetBlue1", {0.596078 , 0.960784 , 1.000000 }},
602 {"CadetBlue2", {0.556863 , 0.898039 , 0.933333 }},
603 {"CadetBlue3", {0.478431 , 0.772549 , 0.803922 }},
604 {"CadetBlue4", {0.325490 , 0.525490 , 0.545098 }},
605 {"CornflowerBlue", {0.392157 , 0.584314 , 0.929412 }},
606 {"DarkGoldenrod", {0.721569 , 0.525490 , 0.043137 }},
607 {"DarkGoldenrod1", {1.000000 , 0.725490 , 0.058824 }},
608 {"DarkGoldenrod2", {0.933333 , 0.678431 , 0.054902 }},
609 {"DarkGoldenrod3", {0.803922 , 0.584314 , 0.047059 }},
610 {"DarkGoldenrod4", {0.545098 , 0.396078 , 0.031373 }},
611 {"DarkGreen", {0.000000 , 0.392157 , 0.000000 }},
612 {"DarkKhaki", {0.741176 , 0.717647 , 0.419608 }},
613 {"DarkOliveGreen", {0.333333 , 0.419608 , 0.184314 }},
614 {"DarkOliveGreen1", {0.792157 , 1.000000 , 0.439216 }},
615 {"DarkOliveGreen2", {0.737255 , 0.933333 , 0.407843 }},
616 {"DarkOliveGreen3", {0.635294 , 0.803922 , 0.352941 }},
617 {"DarkOliveGreen4", {0.431373 , 0.545098 , 0.239216 }},
618 {"DarkOrange", {1.000000 , 0.549020 , 0.000000 }},
619 {"DarkOrange1", {1.000000 , 0.498039 , 0.000000 }},
620 {"DarkOrange2", {0.933333 , 0.462745 , 0.000000 }},
621 {"DarkOrange3", {0.803922 , 0.400000 , 0.000000 }},
622 {"DarkOrange4", {0.545098 , 0.270588 , 0.000000 }},
623 {"DarkOrchid", {0.600000 , 0.196078 , 0.800000 }},
624 {"DarkOrchid1", {0.749020 , 0.243137 , 1.000000 }},
625 {"DarkOrchid2", {0.698039 , 0.227451 , 0.933333 }},
626 {"DarkOrchid3", {0.603922 , 0.196078 , 0.803922 }},
627 {"DarkOrchid4", {0.407843 , 0.133333 , 0.545098 }},
628 {"DarkSalmon", {0.913725 , 0.588235 , 0.478431 }},
629 {"DarkSeaGreen", {0.560784 , 0.737255 , 0.560784 }},
630 {"DarkSeaGreen1", {0.756863 , 1.000000 , 0.756863 }},
631 {"DarkSeaGreen2", {0.705882 , 0.933333 , 0.705882 }},
632 {"DarkSeaGreen3", {0.607843 , 0.803922 , 0.607843 }},
633 {"DarkSeaGreen4", {0.411765 , 0.545098 , 0.411765 }},
634 {"DarkSlateBlue", {0.282353 , 0.239216 , 0.545098 }},
635 {"DarkSlateGray", {0.184314 , 0.309804 , 0.309804 }},
636 {"DarkSlateGray1", {0.592157 , 1.000000 , 1.000000 }},
637 {"DarkSlateGray2", {0.552941 , 0.933333 , 0.933333 }},
638 {"DarkSlateGray3", {0.474510 , 0.803922 , 0.803922 }},
639 {"DarkSlateGray4", {0.321569 , 0.545098 , 0.545098 }},
640 {"DarkSlateGrey", {0.184314 , 0.309804 , 0.309804 }},
641 {"DarkTurquoise", {0.000000 , 0.807843 , 0.819608 }},
642 {"DarkViolet", {0.580392 , 0.000000 , 0.827451 }},
643 {"DeepPink", {1.000000 , 0.078431 , 0.576471 }},
644 {"DeepPink1", {1.000000 , 0.078431 , 0.576471 }},
645 {"DeepPink2", {0.933333 , 0.070588 , 0.537255 }},
646 {"DeepPink3", {0.803922 , 0.062745 , 0.462745 }},
647 {"DeepPink4", {0.545098 , 0.039216 , 0.313725 }},
648 {"DeepSkyBlue", {0.000000 , 0.749020 , 1.000000 }},
649 {"DeepSkyBlue1", {0.000000 , 0.749020 , 1.000000 }},
650 {"DeepSkyBlue2", {0.000000 , 0.698039 , 0.933333 }},
651 {"DeepSkyBlue3", {0.000000 , 0.603922 , 0.803922 }},
652 {"DeepSkyBlue4", {0.000000 , 0.407843 , 0.545098 }},
653 {"DimGray", {0.411765 , 0.411765 , 0.411765 }},
654 {"DimGrey", {0.411765 , 0.411765 , 0.411765 }},
655 {"DodgerBlue", {0.117647 , 0.564706 , 1.000000 }},
656 {"DodgerBlue1", {0.117647 , 0.564706 , 1.000000 }},
657 {"DodgerBlue2", {0.109804 , 0.525490 , 0.933333 }},
658 {"DodgerBlue3", {0.094118 , 0.454902 , 0.803922 }},
659 {"DodgerBlue4", {0.062745 , 0.305882 , 0.545098 }},
660 {"FloralWhite", {1.000000 , 0.980392 , 0.941176 }},
661 {"ForestGreen", {0.133333 , 0.545098 , 0.133333 }},
662 {"GhostWhite", {0.972549 , 0.972549 , 1.000000 }},
663 {"GreenYellow", {0.678431 , 1.000000 , 0.184314 }},
664 {"HotPink", {1.000000 , 0.411765 , 0.705882 }},
665 {"HotPink1", {1.000000 , 0.431373 , 0.705882 }},
666 {"HotPink2", {0.933333 , 0.415686 , 0.654902 }},
667 {"HotPink3", {0.803922 , 0.376471 , 0.564706 }},
668 {"HotPink4", {0.545098 , 0.227451 , 0.384314 }},
669 {"IndianRed", {0.803922 , 0.360784 , 0.360784 }},
670 {"IndianRed1", {1.000000 , 0.415686 , 0.415686 }},
671 {"IndianRed2", {0.933333 , 0.388235 , 0.388235 }},
672 {"IndianRed3", {0.803922 , 0.333333 , 0.333333 }},
673 {"IndianRed4", {0.545098 , 0.227451 , 0.227451 }},
674 {"LavenderBlush", {1.000000 , 0.941176 , 0.960784 }},
675 {"LavenderBlush1", {1.000000 , 0.941176 , 0.960784 }},
676 {"LavenderBlush2", {0.933333 , 0.878431 , 0.898039 }},
677 {"LavenderBlush3", {0.803922 , 0.756863 , 0.772549 }},
678 {"LavenderBlush4", {0.545098 , 0.513725 , 0.525490 }},
679 {"LawnGreen", {0.486275 , 0.988235 , 0.000000 }},
680 {"LemonChiffon", {1.000000 , 0.980392 , 0.803922 }},
681 {"LemonChiffon1", {1.000000 , 0.980392 , 0.803922 }},
682 {"LemonChiffon2", {0.933333 , 0.913725 , 0.749020 }},
683 {"LemonChiffon3", {0.803922 , 0.788235 , 0.647059 }},
684 {"LemonChiffon4", {0.545098 , 0.537255 , 0.439216 }},
685 {"LightBlue", {0.678431 , 0.847059 , 0.901961 }},
686 {"LightBlue1", {0.749020 , 0.937255 , 1.000000 }},
687 {"LightBlue2", {0.698039 , 0.874510 , 0.933333 }},
688 {"LightBlue3", {0.603922 , 0.752941 , 0.803922 }},
689 {"LightBlue4", {0.407843 , 0.513725 , 0.545098 }},
690 {"LightCoral", {0.941176 , 0.501961 , 0.501961 }},
691 {"LightCyan", {0.878431 , 1.000000 , 1.000000 }},
692 {"LightCyan1", {0.878431 , 1.000000 , 1.000000 }},
693 {"LightCyan2", {0.819608 , 0.933333 , 0.933333 }},
694 {"LightCyan3", {0.705882 , 0.803922 , 0.803922 }},
695 {"LightCyan4", {0.478431 , 0.545098 , 0.545098 }},
696 {"LightGoldenrod", {0.933333 , 0.866667 , 0.509804 }},
697 {"LightGoldenrod1", {1.000000 , 0.925490 , 0.545098 }},
698 {"LightGoldenrod2", {0.933333 , 0.862745 , 0.509804 }},
699 {"LightGoldenrod3", {0.803922 , 0.745098 , 0.439216 }},
700 {"LightGoldenrod4", {0.545098 , 0.505882 , 0.298039 }},
701 {"LightGoldenrodYellow", {0.980392 , 0.980392 , 0.823529 }},
702 {"LightGray", {0.827451 , 0.827451 , 0.827451 }},
703 {"LightGrey", {0.827451 , 0.827451 , 0.827451 }},
704 {"LightPink", {1.000000 , 0.713725 , 0.756863 }},
705 {"LightPink1", {1.000000 , 0.682353 , 0.725490 }},
706 {"LightPink2", {0.933333 , 0.635294 , 0.678431 }},
707 {"LightPink3", {0.803922 , 0.549020 , 0.584314 }},
708 {"LightPink4", {0.545098 , 0.372549 , 0.396078 }},
709 {"LightSalmon", {1.000000 , 0.627451 , 0.478431 }},
710 {"LightSalmon1", {1.000000 , 0.627451 , 0.478431 }},
711 {"LightSalmon2", {0.933333 , 0.584314 , 0.447059 }},
712 {"LightSalmon3", {0.803922 , 0.505882 , 0.384314 }},
713 {"LightSalmon4", {0.545098 , 0.341176 , 0.258824 }},
714 {"LightSeaGreen", {0.125490 , 0.698039 , 0.666667 }},
715 {"LightSkyBlue", {0.529412 , 0.807843 , 0.980392 }},
716 {"LightSkyBlue1", {0.690196 , 0.886275 , 1.000000 }},
717 {"LightSkyBlue2", {0.643137 , 0.827451 , 0.933333 }},
718 {"LightSkyBlue3", {0.552941 , 0.713725 , 0.803922 }},
719 {"LightSkyBlue4", {0.376471 , 0.482353 , 0.545098 }},
720 {"LightSlateBlue", {0.517647 , 0.439216 , 1.000000 }},
721 {"LightSlateGray", {0.466667 , 0.533333 , 0.600000 }},
722 {"LightSlateGrey", {0.466667 , 0.533333 , 0.600000 }},
723 {"LightSteelBlue", {0.690196 , 0.768627 , 0.870588 }},
724 {"LightSteelBlue1", {0.792157 , 0.882353 , 1.000000 }},
725 {"LightSteelBlue2", {0.737255 , 0.823529 , 0.933333 }},
726 {"LightSteelBlue3", {0.635294 , 0.709804 , 0.803922 }},
727 {"LightSteelBlue4", {0.431373 , 0.482353 , 0.545098 }},
728 {"LightYellow", {1.000000 , 1.000000 , 0.878431 }},
729 {"LightYellow1", {1.000000 , 1.000000 , 0.878431 }},
730 {"LightYellow2", {0.933333 , 0.933333 , 0.819608 }},
731 {"LightYellow3", {0.803922 , 0.803922 , 0.705882 }},
732 {"LightYellow4", {0.545098 , 0.545098 , 0.478431 }},
733 {"LimeGreen", {0.196078 , 0.803922 , 0.196078 }},
734 {"MediumAquamarine", {0.400000 , 0.803922 , 0.666667 }},
735 {"MediumBlue", {0.000000 , 0.000000 , 0.803922 }},
736 {"MediumOrchid", {0.729412 , 0.333333 , 0.827451 }},
737 {"MediumOrchid1", {0.878431 , 0.400000 , 1.000000 }},
738 {"MediumOrchid2", {0.819608 , 0.372549 , 0.933333 }},
739 {"MediumOrchid3", {0.705882 , 0.321569 , 0.803922 }},
740 {"MediumOrchid4", {0.478431 , 0.215686 , 0.545098 }},
741 {"MediumPurple", {0.576471 , 0.439216 , 0.858824 }},
742 {"MediumPurple1", {0.670588 , 0.509804 , 1.000000 }},
743 {"MediumPurple2", {0.623529 , 0.474510 , 0.933333 }},
744 {"MediumPurple3", {0.537255 , 0.407843 , 0.803922 }},
745 {"MediumPurple4", {0.364706 , 0.278431 , 0.545098 }},
746 {"MediumSeaGreen", {0.235294 , 0.701961 , 0.443137 }},
747 {"MediumSlateBlue", {0.482353 , 0.407843 , 0.933333 }},
748 {"MediumSpringGreen", {0.000000 , 0.980392 , 0.603922 }},
749 {"MediumTurquoise", {0.282353 , 0.819608 , 0.800000 }},
750 {"MediumVioletRed", {0.780392 , 0.082353 , 0.521569 }},
751 {"MidnightBlue", {0.098039 , 0.098039 , 0.439216 }},
752 {"MintCream", {0.960784 , 1.000000 , 0.980392 }},
753 {"MistyRose", {1.000000 , 0.894118 , 0.882353 }},
754 {"MistyRose1", {1.000000 , 0.894118 , 0.882353 }},
755 {"MistyRose2", {0.933333 , 0.835294 , 0.823529 }},
756 {"MistyRose3", {0.803922 , 0.717647 , 0.709804 }},
757 {"MistyRose4", {0.545098 , 0.490196 , 0.482353 }},
758 {"NavajoWhite", {1.000000 , 0.870588 , 0.678431 }},
759 {"NavajoWhite1", {1.000000 , 0.870588 , 0.678431 }},
760 {"NavajoWhite2", {0.933333 , 0.811765 , 0.631373 }},
761 {"NavajoWhite3", {0.803922 , 0.701961 , 0.545098 }},
762 {"NavajoWhite4", {0.545098 , 0.474510 , 0.368627 }},
763 {"NavyBlue", {0.000000 , 0.000000 , 0.501961 }},
764 {"OldLace", {0.992157 , 0.960784 , 0.901961 }},
765 {"OliveDrab", {0.419608 , 0.556863 , 0.137255 }},
766 {"OliveDrab1", {0.752941 , 1.000000 , 0.243137 }},
767 {"OliveDrab2", {0.701961 , 0.933333 , 0.227451 }},
768 {"OliveDrab3", {0.603922 , 0.803922 , 0.196078 }},
769 {"OliveDrab4", {0.411765 , 0.545098 , 0.133333 }},
770 {"OrangeRed", {1.000000 , 0.270588 , 0.000000 }},
771 {"OrangeRed1", {1.000000 , 0.270588 , 0.000000 }},
772 {"OrangeRed2", {0.933333 , 0.250980 , 0.000000 }},
773 {"OrangeRed3", {0.803922 , 0.215686 , 0.000000 }},
774 {"OrangeRed4", {0.545098 , 0.145098 , 0.000000 }},
775 {"PaleGoldenrod", {0.933333 , 0.909804 , 0.666667 }},
776 {"PaleGreen", {0.596078 , 0.984314 , 0.596078 }},
777 {"PaleGreen1", {0.603922 , 1.000000 , 0.603922 }},
778 {"PaleGreen2", {0.564706 , 0.933333 , 0.564706 }},
779 {"PaleGreen3", {0.486275 , 0.803922 , 0.486275 }},
780 {"PaleGreen4", {0.329412 , 0.545098 , 0.329412 }},
781 {"PaleTurquoise", {0.686275 , 0.933333 , 0.933333 }},
782 {"PaleTurquoise1", {0.733333 , 1.000000 , 1.000000 }},
783 {"PaleTurquoise2", {0.682353 , 0.933333 , 0.933333 }},
784 {"PaleTurquoise3", {0.588235 , 0.803922 , 0.803922 }},
785 {"PaleTurquoise4", {0.400000 , 0.545098 , 0.545098 }},
786 {"PaleVioletRed", {0.858824 , 0.439216 , 0.576471 }},
787 {"PaleVioletRed1", {1.000000 , 0.509804 , 0.670588 }},
788 {"PaleVioletRed2", {0.933333 , 0.474510 , 0.623529 }},
789 {"PaleVioletRed3", {0.803922 , 0.407843 , 0.537255 }},
790 {"PaleVioletRed4", {0.545098 , 0.278431 , 0.364706 }},
791 {"PapayaWhip", {1.000000 , 0.937255 , 0.835294 }},
792 {"PeachPuff", {1.000000 , 0.854902 , 0.725490 }},
793 {"PeachPuff1", {1.000000 , 0.854902 , 0.725490 }},
794 {"PeachPuff2", {0.933333 , 0.796078 , 0.678431 }},
795 {"PeachPuff3", {0.803922 , 0.686275 , 0.584314 }},
796 {"PeachPuff4", {0.545098 , 0.466667 , 0.396078 }},
797 {"PowderBlue", {0.690196 , 0.878431 , 0.901961 }},
798 {"RosyBrown", {0.737255 , 0.560784 , 0.560784 }},
799 {"RosyBrown1", {1.000000 , 0.756863 , 0.756863 }},
800 {"RosyBrown2", {0.933333 , 0.705882 , 0.705882 }},
801 {"RosyBrown3", {0.803922 , 0.607843 , 0.607843 }},
802 {"RosyBrown4", {0.545098 , 0.411765 , 0.411765 }},
803 {"RoyalBlue", {0.254902 , 0.411765 , 0.882353 }},
804 {"RoyalBlue1", {0.282353 , 0.462745 , 1.000000 }},
805 {"RoyalBlue2", {0.262745 , 0.431373 , 0.933333 }},
806 {"RoyalBlue3", {0.227451 , 0.372549 , 0.803922 }},
807 {"RoyalBlue4", {0.152941 , 0.250980 , 0.545098 }},
808 {"SaddleBrown", {0.545098 , 0.270588 , 0.074510 }},
809 {"SandyBrown", {0.956863 , 0.643137 , 0.376471 }},
810 {"SeaGreen", {0.180392 , 0.545098 , 0.341176 }},
811 {"SeaGreen1", {0.329412 , 1.000000 , 0.623529 }},
812 {"SeaGreen2", {0.305882 , 0.933333 , 0.580392 }},
813 {"SeaGreen3", {0.262745 , 0.803922 , 0.501961 }},
814 {"SeaGreen4", {0.180392 , 0.545098 , 0.341176 }},
815 {"SkyBlue", {0.529412 , 0.807843 , 0.921569 }},
816 {"SkyBlue1", {0.529412 , 0.807843 , 1.000000 }},
817 {"SkyBlue2", {0.494118 , 0.752941 , 0.933333 }},
818 {"SkyBlue3", {0.423529 , 0.650980 , 0.803922 }},
819 {"SkyBlue4", {0.290196 , 0.439216 , 0.545098 }},
820 {"SlateBlue", {0.415686 , 0.352941 , 0.803922 }},
821 {"SlateBlue1", {0.513725 , 0.435294 , 1.000000 }},
822 {"SlateBlue2", {0.478431 , 0.403922 , 0.933333 }},
823 {"SlateBlue3", {0.411765 , 0.349020 , 0.803922 }},
824 {"SlateBlue4", {0.278431 , 0.235294 , 0.545098 }},
825 {"SlateGray", {0.439216 , 0.501961 , 0.564706 }},
826 {"SlateGray1", {0.776471 , 0.886275 , 1.000000 }},
827 {"SlateGray2", {0.725490 , 0.827451 , 0.933333 }},
828 {"SlateGray3", {0.623529 , 0.713725 , 0.803922 }},
829 {"SlateGray4", {0.423529 , 0.482353 , 0.545098 }},
830 {"SlateGrey", {0.439216 , 0.501961 , 0.564706 }},
831 {"SpringGreen", {0.000000 , 1.000000 , 0.498039 }},
832 {"SpringGreen1", {0.000000 , 1.000000 , 0.498039 }},
833 {"SpringGreen2", {0.000000 , 0.933333 , 0.462745 }},
834 {"SpringGreen3", {0.000000 , 0.803922 , 0.400000 }},
835 {"SpringGreen4", {0.000000 , 0.545098 , 0.270588 }},
836 {"SteelBlue", {0.274510 , 0.509804 , 0.705882 }},
837 {"SteelBlue1", {0.388235 , 0.721569 , 1.000000 }},
838 {"SteelBlue2", {0.360784 , 0.674510 , 0.933333 }},
839 {"SteelBlue3", {0.309804 , 0.580392 , 0.803922 }},
840 {"SteelBlue4", {0.211765 , 0.392157 , 0.545098 }},
841 {"VioletRed", {0.815686 , 0.125490 , 0.564706 }},
842 {"VioletRed1", {1.000000 , 0.243137 , 0.588235 }},
843 {"VioletRed2", {0.933333 , 0.227451 , 0.549020 }},
844 {"VioletRed3", {0.803922 , 0.196078 , 0.470588 }},
845 {"VioletRed4", {0.545098 , 0.133333 , 0.321569 }},
846 {"WhiteSmoke", {0.960784 , 0.960784 , 0.960784 }},
847 {"YellowGreen", {0.603922 , 0.803922 , 0.196078 }},
848 {"alice_blue", {0.941176 , 0.972549 , 1.000000 }},
849 {"antique_white", {0.980392 , 0.921569 , 0.843137 }},
850 {"aquamarine", {0.498039 , 1.000000 , 0.831373 }},
851 {"aquamarine1", {0.498039 , 1.000000 , 0.831373 }},
852 {"aquamarine2", {0.462745 , 0.933333 , 0.776471 }},
853 {"aquamarine3", {0.400000 , 0.803922 , 0.666667 }},
854 {"aquamarine4", {0.270588 , 0.545098 , 0.454902 }},
855 {"azure", {0.941176 , 1.000000 , 1.000000 }},
856 {"azure1", {0.941176 , 1.000000 , 1.000000 }},
857 {"azure2", {0.878431 , 0.933333 , 0.933333 }},
858 {"azure3", {0.756863 , 0.803922 , 0.803922 }},
859 {"azure4", {0.513725 , 0.545098 , 0.545098 }},
860 {"beige", {0.960784 , 0.960784 , 0.862745 }},
861 {"bisque", {1.000000 , 0.894118 , 0.768627 }},
862 {"bisque1", {1.000000 , 0.894118 , 0.768627 }},
863 {"bisque2", {0.933333 , 0.835294 , 0.717647 }},
864 {"bisque3", {0.803922 , 0.717647 , 0.619608 }},
865 {"bisque4", {0.545098 , 0.490196 , 0.419608 }},
866 {"black", {0.000000 , 0.000000 , 0.000000 }},
867 {"blanched_almond", {1.000000 , 0.921569 , 0.803922 }},
868 {"blue", {0.000000 , 0.000000 , 1.000000 }},
869 {"blue1", {0.000000 , 0.000000 , 1.000000 }},
870 {"blue2", {0.000000 , 0.000000 , 0.933333 }},
871 {"blue3", {0.000000 , 0.000000 , 0.803922 }},
872 {"blue4", {0.000000 , 0.000000 , 0.545098 }},
873 {"blue_violet", {0.541176 , 0.168627 , 0.886275 }},
874 {"brown", {0.647059 , 0.164706 , 0.164706 }},
875 {"brown1", {1.000000 , 0.250980 , 0.250980 }},
876 {"brown2", {0.933333 , 0.231373 , 0.231373 }},
877 {"brown3", {0.803922 , 0.200000 , 0.200000 }},
878 {"brown4", {0.545098 , 0.137255 , 0.137255 }},
879 {"burlywood", {0.870588 , 0.721569 , 0.529412 }},
880 {"burlywood1", {1.000000 , 0.827451 , 0.607843 }},
881 {"burlywood2", {0.933333 , 0.772549 , 0.568627 }},
882 {"burlywood3", {0.803922 , 0.666667 , 0.490196 }},
883 {"burlywood4", {0.545098 , 0.450980 , 0.333333 }},
884 {"cadet_blue", {0.372549 , 0.619608 , 0.627451 }},
885 {"chartreuse", {0.498039 , 1.000000 , 0.000000 }},
886 {"chartreuse1", {0.498039 , 1.000000 , 0.000000 }},
887 {"chartreuse2", {0.462745 , 0.933333 , 0.000000 }},
888 {"chartreuse3", {0.400000 , 0.803922 , 0.000000 }},
889 {"chartreuse4", {0.270588 , 0.545098 , 0.000000 }},
890 {"chocolate", {0.823529 , 0.411765 , 0.117647 }},
891 {"chocolate1", {1.000000 , 0.498039 , 0.141176 }},
892 {"chocolate2", {0.933333 , 0.462745 , 0.129412 }},
893 {"chocolate3", {0.803922 , 0.400000 , 0.113725 }},
894 {"chocolate4", {0.545098 , 0.270588 , 0.074510 }},
895 {"coral", {1.000000 , 0.498039 , 0.313725 }},
896 {"coral1", {1.000000 , 0.447059 , 0.337255 }},
897 {"coral2", {0.933333 , 0.415686 , 0.313725 }},
898 {"coral3", {0.803922 , 0.356863 , 0.270588 }},
899 {"coral4", {0.545098 , 0.243137 , 0.184314 }},
900 {"cornflower_blue", {0.392157 , 0.584314 , 0.929412 }},
901 {"cornsilk", {1.000000 , 0.972549 , 0.862745 }},
902 {"cornsilk1", {1.000000 , 0.972549 , 0.862745 }},
903 {"cornsilk2", {0.933333 , 0.909804 , 0.803922 }},
904 {"cornsilk3", {0.803922 , 0.784314 , 0.694118 }},
905 {"cornsilk4", {0.545098 , 0.533333 , 0.470588 }},
906 {"cyan", {0.000000 , 1.000000 , 1.000000 }},
907 {"cyan1", {0.000000 , 1.000000 , 1.000000 }},
908 {"cyan2", {0.000000 , 0.933333 , 0.933333 }},
909 {"cyan3", {0.000000 , 0.803922 , 0.803922 }},
910 {"cyan4", {0.000000 , 0.545098 , 0.545098 }},
911 {"dark_goldenrod", {0.721569 , 0.525490 , 0.043137 }},
912 {"dark_green", {0.000000 , 0.392157 , 0.000000 }},
913 {"dark_khaki", {0.741176 , 0.717647 , 0.419608 }},
914 {"dark_olive_green", {0.333333 , 0.419608 , 0.184314 }},
915 {"dark_orange", {1.000000 , 0.549020 , 0.000000 }},
916 {"dark_orchid", {0.600000 , 0.196078 , 0.800000 }},
917 {"dark_salmon", {0.913725 , 0.588235 , 0.478431 }},
918 {"dark_sea_green", {0.560784 , 0.737255 , 0.560784 }},
919 {"dark_slate_blue", {0.282353 , 0.239216 , 0.545098 }},
920 {"dark_slate_gray", {0.184314 , 0.309804 , 0.309804 }},
921 {"dark_slate_grey", {0.184314 , 0.309804 , 0.309804 }},
922 {"dark_turquoise", {0.000000 , 0.807843 , 0.819608 }},
923 {"dark_violet", {0.580392 , 0.000000 , 0.827451 }},
924 {"deep_pink", {1.000000 , 0.078431 , 0.576471 }},
925 {"deep_sky_blue", {0.000000 , 0.749020 , 1.000000 }},
926 {"dim_gray", {0.411765 , 0.411765 , 0.411765 }},
927 {"dim_grey", {0.411765 , 0.411765 , 0.411765 }},
928 {"dodger_blue", {0.117647 , 0.564706 , 1.000000 }},
929 {"firebrick", {0.698039 , 0.133333 , 0.133333 }},
930 {"firebrick1", {1.000000 , 0.188235 , 0.188235 }},
931 {"firebrick2", {0.933333 , 0.172549 , 0.172549 }},
932 {"firebrick3", {0.803922 , 0.149020 , 0.149020 }},
933 {"firebrick4", {0.545098 , 0.101961 , 0.101961 }},
934 {"floral_white", {1.000000 , 0.980392 , 0.941176 }},
935 {"forest_green", {0.133333 , 0.545098 , 0.133333 }},
936 {"gainsboro", {0.862745 , 0.862745 , 0.862745 }},
937 {"ghost_white", {0.972549 , 0.972549 , 1.000000 }},
938 {"gold", {1.000000 , 0.843137 , 0.000000 }},
939 {"gold1", {1.000000 , 0.843137 , 0.000000 }},
940 {"gold2", {0.933333 , 0.788235 , 0.000000 }},
941 {"gold3", {0.803922 , 0.678431 , 0.000000 }},
942 {"gold4", {0.545098 , 0.458824 , 0.000000 }},
943 {"goldenrod", {0.854902 , 0.647059 , 0.125490 }},
944 {"goldenrod1", {1.000000 , 0.756863 , 0.145098 }},
945 {"goldenrod2", {0.933333 , 0.705882 , 0.133333 }},
946 {"goldenrod3", {0.803922 , 0.607843 , 0.113725 }},
947 {"goldenrod4", {0.545098 , 0.411765 , 0.078431 }},
948 {"gray", {0.752941 , 0.752941 , 0.752941 }},
949 {"gray0", {0.000000 , 0.000000 , 0.000000 }},
950 {"gray1", {0.011765 , 0.011765 , 0.011765 }},
951 {"gray10", {0.101961 , 0.101961 , 0.101961 }},
952 {"gray100", {1.000000 , 1.000000 , 1.000000 }},
953 {"gray11", {0.109804 , 0.109804 , 0.109804 }},
954 {"gray12", {0.121569 , 0.121569 , 0.121569 }},
955 {"gray13", {0.129412 , 0.129412 , 0.129412 }},
956 {"gray14", {0.141176 , 0.141176 , 0.141176 }},
957 {"gray15", {0.149020 , 0.149020 , 0.149020 }},
958 {"gray16", {0.160784 , 0.160784 , 0.160784 }},
959 {"gray17", {0.168627 , 0.168627 , 0.168627 }},
960 {"gray18", {0.180392 , 0.180392 , 0.180392 }},
961 {"gray19", {0.188235 , 0.188235 , 0.188235 }},
962 {"gray2", {0.019608 , 0.019608 , 0.019608 }},
963 {"gray20", {0.200000 , 0.200000 , 0.200000 }},
964 {"gray21", {0.211765 , 0.211765 , 0.211765 }},
965 {"gray22", {0.219608 , 0.219608 , 0.219608 }},
966 {"gray23", {0.231373 , 0.231373 , 0.231373 }},
967 {"gray24", {0.239216 , 0.239216 , 0.239216 }},
968 {"gray25", {0.250980 , 0.250980 , 0.250980 }},
969 {"gray26", {0.258824 , 0.258824 , 0.258824 }},
970 {"gray27", {0.270588 , 0.270588 , 0.270588 }},
971 {"gray28", {0.278431 , 0.278431 , 0.278431 }},
972 {"gray29", {0.290196 , 0.290196 , 0.290196 }},
973 {"gray3", {0.031373 , 0.031373 , 0.031373 }},
974 {"gray30", {0.301961 , 0.301961 , 0.301961 }},
975 {"gray31", {0.309804 , 0.309804 , 0.309804 }},
976 {"gray32", {0.321569 , 0.321569 , 0.321569 }},
977 {"gray33", {0.329412 , 0.329412 , 0.329412 }},
978 {"gray34", {0.341176 , 0.341176 , 0.341176 }},
979 {"gray35", {0.349020 , 0.349020 , 0.349020 }},
980 {"gray36", {0.360784 , 0.360784 , 0.360784 }},
981 {"gray37", {0.368627 , 0.368627 , 0.368627 }},
982 {"gray38", {0.380392 , 0.380392 , 0.380392 }},
983 {"gray39", {0.388235 , 0.388235 , 0.388235 }},
984 {"gray4", {0.039216 , 0.039216 , 0.039216 }},
985 {"gray40", {0.400000 , 0.400000 , 0.400000 }},
986 {"gray41", {0.411765 , 0.411765 , 0.411765 }},
987 {"gray42", {0.419608 , 0.419608 , 0.419608 }},
988 {"gray43", {0.431373 , 0.431373 , 0.431373 }},
989 {"gray44", {0.439216 , 0.439216 , 0.439216 }},
990 {"gray45", {0.450980 , 0.450980 , 0.450980 }},
991 {"gray46", {0.458824 , 0.458824 , 0.458824 }},
992 {"gray47", {0.470588 , 0.470588 , 0.470588 }},
993 {"gray48", {0.478431 , 0.478431 , 0.478431 }},
994 {"gray49", {0.490196 , 0.490196 , 0.490196 }},
995 {"gray5", {0.050980 , 0.050980 , 0.050980 }},
996 {"gray50", {0.498039 , 0.498039 , 0.498039 }},
997 {"gray51", {0.509804 , 0.509804 , 0.509804 }},
998 {"gray52", {0.521569 , 0.521569 , 0.521569 }},
999 {"gray53", {0.529412 , 0.529412 , 0.529412 }},
1000 {"gray54", {0.541176 , 0.541176 , 0.541176 }},
1001 {"gray55", {0.549020 , 0.549020 , 0.549020 }},
1002 {"gray56", {0.560784 , 0.560784 , 0.560784 }},
1003 {"gray57", {0.568627 , 0.568627 , 0.568627 }},
1004 {"gray58", {0.580392 , 0.580392 , 0.580392 }},
1005 {"gray59", {0.588235 , 0.588235 , 0.588235 }},
1006 {"gray6", {0.058824 , 0.058824 , 0.058824 }},
1007 {"gray60", {0.600000 , 0.600000 , 0.600000 }},
1008 {"gray61", {0.611765 , 0.611765 , 0.611765 }},
1009 {"gray62", {0.619608 , 0.619608 , 0.619608 }},
1010 {"gray63", {0.631373 , 0.631373 , 0.631373 }},
1011 {"gray64", {0.639216 , 0.639216 , 0.639216 }},
1012 {"gray65", {0.650980 , 0.650980 , 0.650980 }},
1013 {"gray66", {0.658824 , 0.658824 , 0.658824 }},
1014 {"gray67", {0.670588 , 0.670588 , 0.670588 }},
1015 {"gray68", {0.678431 , 0.678431 , 0.678431 }},
1016 {"gray69", {0.690196 , 0.690196 , 0.690196 }},
1017 {"gray7", {0.070588 , 0.070588 , 0.070588 }},
1018 {"gray70", {0.701961 , 0.701961 , 0.701961 }},
1019 {"gray71", {0.709804 , 0.709804 , 0.709804 }},
1020 {"gray72", {0.721569 , 0.721569 , 0.721569 }},
1021 {"gray73", {0.729412 , 0.729412 , 0.729412 }},
1022 {"gray74", {0.741176 , 0.741176 , 0.741176 }},
1023 {"gray75", {0.749020 , 0.749020 , 0.749020 }},
1024 {"gray76", {0.760784 , 0.760784 , 0.760784 }},
1025 {"gray77", {0.768627 , 0.768627 , 0.768627 }},
1026 {"gray78", {0.780392 , 0.780392 , 0.780392 }},
1027 {"gray79", {0.788235 , 0.788235 , 0.788235 }},
1028 {"gray8", {0.078431 , 0.078431 , 0.078431 }},
1029 {"gray80", {0.800000 , 0.800000 , 0.800000 }},
1030 {"gray81", {0.811765 , 0.811765 , 0.811765 }},
1031 {"gray82", {0.819608 , 0.819608 , 0.819608 }},
1032 {"gray83", {0.831373 , 0.831373 , 0.831373 }},
1033 {"gray84", {0.839216 , 0.839216 , 0.839216 }},
1034 {"gray85", {0.850980 , 0.850980 , 0.850980 }},
1035 {"gray86", {0.858824 , 0.858824 , 0.858824 }},
1036 {"gray87", {0.870588 , 0.870588 , 0.870588 }},
1037 {"gray88", {0.878431 , 0.878431 , 0.878431 }},
1038 {"gray89", {0.890196 , 0.890196 , 0.890196 }},
1039 {"gray9", {0.090196 , 0.090196 , 0.090196 }},
1040 {"gray90", {0.898039 , 0.898039 , 0.898039 }},
1041 {"gray91", {0.909804 , 0.909804 , 0.909804 }},
1042 {"gray92", {0.921569 , 0.921569 , 0.921569 }},
1043 {"gray93", {0.929412 , 0.929412 , 0.929412 }},
1044 {"gray94", {0.941176 , 0.941176 , 0.941176 }},
1045 {"gray95", {0.949020 , 0.949020 , 0.949020 }},
1046 {"gray96", {0.960784 , 0.960784 , 0.960784 }},
1047 {"gray97", {0.968627 , 0.968627 , 0.968627 }},
1048 {"gray98", {0.980392 , 0.980392 , 0.980392 }},
1049 {"gray99", {0.988235 , 0.988235 , 0.988235 }},
1050 {"green", {0.000000 , 1.000000 , 0.000000 }},
1051 {"green1", {0.000000 , 1.000000 , 0.000000 }},
1052 {"green2", {0.000000 , 0.933333 , 0.000000 }},
1053 {"green3", {0.000000 , 0.803922 , 0.000000 }},
1054 {"green4", {0.000000 , 0.545098 , 0.000000 }},
1055 {"green_yellow", {0.678431 , 1.000000 , 0.184314 }},
1056 {"grey", {0.752941 , 0.752941 , 0.752941 }},
1057 {"grey0", {0.000000 , 0.000000 , 0.000000 }},
1058 {"grey1", {0.011765 , 0.011765 , 0.011765 }},
1059 {"grey10", {0.101961 , 0.101961 , 0.101961 }},
1060 {"grey100", {1.000000 , 1.000000 , 1.000000 }},
1061 {"grey11", {0.109804 , 0.109804 , 0.109804 }},
1062 {"grey12", {0.121569 , 0.121569 , 0.121569 }},
1063 {"grey13", {0.129412 , 0.129412 , 0.129412 }},
1064 {"grey14", {0.141176 , 0.141176 , 0.141176 }},
1065 {"grey15", {0.149020 , 0.149020 , 0.149020 }},
1066 {"grey16", {0.160784 , 0.160784 , 0.160784 }},
1067 {"grey17", {0.168627 , 0.168627 , 0.168627 }},
1068 {"grey18", {0.180392 , 0.180392 , 0.180392 }},
1069 {"grey19", {0.188235 , 0.188235 , 0.188235 }},
1070 {"grey2", {0.019608 , 0.019608 , 0.019608 }},
1071 {"grey20", {0.200000 , 0.200000 , 0.200000 }},
1072 {"grey21", {0.211765 , 0.211765 , 0.211765 }},
1073 {"grey22", {0.219608 , 0.219608 , 0.219608 }},
1074 {"grey23", {0.231373 , 0.231373 , 0.231373 }},
1075 {"grey24", {0.239216 , 0.239216 , 0.239216 }},
1076 {"grey25", {0.250980 , 0.250980 , 0.250980 }},
1077 {"grey26", {0.258824 , 0.258824 , 0.258824 }},
1078 {"grey27", {0.270588 , 0.270588 , 0.270588 }},
1079 {"grey28", {0.278431 , 0.278431 , 0.278431 }},
1080 {"grey29", {0.290196 , 0.290196 , 0.290196 }},
1081 {"grey3", {0.031373 , 0.031373 , 0.031373 }},
1082 {"grey30", {0.301961 , 0.301961 , 0.301961 }},
1083 {"grey31", {0.309804 , 0.309804 , 0.309804 }},
1084 {"grey32", {0.321569 , 0.321569 , 0.321569 }},
1085 {"grey33", {0.329412 , 0.329412 , 0.329412 }},
1086 {"grey34", {0.341176 , 0.341176 , 0.341176 }},
1087 {"grey35", {0.349020 , 0.349020 , 0.349020 }},
1088 {"grey36", {0.360784 , 0.360784 , 0.360784 }},
1089 {"grey37", {0.368627 , 0.368627 , 0.368627 }},
1090 {"grey38", {0.380392 , 0.380392 , 0.380392 }},
1091 {"grey39", {0.388235 , 0.388235 , 0.388235 }},
1092 {"grey4", {0.039216 , 0.039216 , 0.039216 }},
1093 {"grey40", {0.400000 , 0.400000 , 0.400000 }},
1094 {"grey41", {0.411765 , 0.411765 , 0.411765 }},
1095 {"grey42", {0.419608 , 0.419608 , 0.419608 }},
1096 {"grey43", {0.431373 , 0.431373 , 0.431373 }},
1097 {"grey44", {0.439216 , 0.439216 , 0.439216 }},
1098 {"grey45", {0.450980 , 0.450980 , 0.450980 }},
1099 {"grey46", {0.458824 , 0.458824 , 0.458824 }},
1100 {"grey47", {0.470588 , 0.470588 , 0.470588 }},
1101 {"grey48", {0.478431 , 0.478431 , 0.478431 }},
1102 {"grey49", {0.490196 , 0.490196 , 0.490196 }},
1103 {"grey5", {0.050980 , 0.050980 , 0.050980 }},
1104 {"grey50", {0.498039 , 0.498039 , 0.498039 }},
1105 {"grey51", {0.509804 , 0.509804 , 0.509804 }},
1106 {"grey52", {0.521569 , 0.521569 , 0.521569 }},
1107 {"grey53", {0.529412 , 0.529412 , 0.529412 }},
1108 {"grey54", {0.541176 , 0.541176 , 0.541176 }},
1109 {"grey55", {0.549020 , 0.549020 , 0.549020 }},
1110 {"grey56", {0.560784 , 0.560784 , 0.560784 }},
1111 {"grey57", {0.568627 , 0.568627 , 0.568627 }},
1112 {"grey58", {0.580392 , 0.580392 , 0.580392 }},
1113 {"grey59", {0.588235 , 0.588235 , 0.588235 }},
1114 {"grey6", {0.058824 , 0.058824 , 0.058824 }},
1115 {"grey60", {0.600000 , 0.600000 , 0.600000 }},
1116 {"grey61", {0.611765 , 0.611765 , 0.611765 }},
1117 {"grey62", {0.619608 , 0.619608 , 0.619608 }},
1118 {"grey63", {0.631373 , 0.631373 , 0.631373 }},
1119 {"grey64", {0.639216 , 0.639216 , 0.639216 }},
1120 {"grey65", {0.650980 , 0.650980 , 0.650980 }},
1121 {"grey66", {0.658824 , 0.658824 , 0.658824 }},
1122 {"grey67", {0.670588 , 0.670588 , 0.670588 }},
1123 {"grey68", {0.678431 , 0.678431 , 0.678431 }},
1124 {"grey69", {0.690196 , 0.690196 , 0.690196 }},
1125 {"grey7", {0.070588 , 0.070588 , 0.070588 }},
1126 {"grey70", {0.701961 , 0.701961 , 0.701961 }},
1127 {"grey71", {0.709804 , 0.709804 , 0.709804 }},
1128 {"grey72", {0.721569 , 0.721569 , 0.721569 }},
1129 {"grey73", {0.729412 , 0.729412 , 0.729412 }},
1130 {"grey74", {0.741176 , 0.741176 , 0.741176 }},
1131 {"grey75", {0.749020 , 0.749020 , 0.749020 }},
1132 {"grey76", {0.760784 , 0.760784 , 0.760784 }},
1133 {"grey77", {0.768627 , 0.768627 , 0.768627 }},
1134 {"grey78", {0.780392 , 0.780392 , 0.780392 }},
1135 {"grey79", {0.788235 , 0.788235 , 0.788235 }},
1136 {"grey8", {0.078431 , 0.078431 , 0.078431 }},
1137 {"grey80", {0.800000 , 0.800000 , 0.800000 }},
1138 {"grey81", {0.811765 , 0.811765 , 0.811765 }},
1139 {"grey82", {0.819608 , 0.819608 , 0.819608 }},
1140 {"grey83", {0.831373 , 0.831373 , 0.831373 }},
1141 {"grey84", {0.839216 , 0.839216 , 0.839216 }},
1142 {"grey85", {0.850980 , 0.850980 , 0.850980 }},
1143 {"grey86", {0.858824 , 0.858824 , 0.858824 }},
1144 {"grey87", {0.870588 , 0.870588 , 0.870588 }},
1145 {"grey88", {0.878431 , 0.878431 , 0.878431 }},
1146 {"grey89", {0.890196 , 0.890196 , 0.890196 }},
1147 {"grey9", {0.090196 , 0.090196 , 0.090196 }},
1148 {"grey90", {0.898039 , 0.898039 , 0.898039 }},
1149 {"grey91", {0.909804 , 0.909804 , 0.909804 }},
1150 {"grey92", {0.921569 , 0.921569 , 0.921569 }},
1151 {"grey93", {0.929412 , 0.929412 , 0.929412 }},
1152 {"grey94", {0.941176 , 0.941176 , 0.941176 }},
1153 {"grey95", {0.949020 , 0.949020 , 0.949020 }},
1154 {"grey96", {0.960784 , 0.960784 , 0.960784 }},
1155 {"grey97", {0.968627 , 0.968627 , 0.968627 }},
1156 {"grey98", {0.980392 , 0.980392 , 0.980392 }},
1157 {"grey99", {0.988235 , 0.988235 , 0.988235 }},
1158 {"honeydew", {0.941176 , 1.000000 , 0.941176 }},
1159 {"honeydew1", {0.941176 , 1.000000 , 0.941176 }},
1160 {"honeydew2", {0.878431 , 0.933333 , 0.878431 }},
1161 {"honeydew3", {0.756863 , 0.803922 , 0.756863 }},
1162 {"honeydew4", {0.513725 , 0.545098 , 0.513725 }},
1163 {"hot_pink", {1.000000 , 0.411765 , 0.705882 }},
1164 {"indian_red", {0.803922 , 0.360784 , 0.360784 }},
1165 {"ivory", {1.000000 , 1.000000 , 0.941176 }},
1166 {"ivory1", {1.000000 , 1.000000 , 0.941176 }},
1167 {"ivory2", {0.933333 , 0.933333 , 0.878431 }},
1168 {"ivory3", {0.803922 , 0.803922 , 0.756863 }},
1169 {"ivory4", {0.545098 , 0.545098 , 0.513725 }},
1170 {"khaki", {0.941176 , 0.901961 , 0.549020 }},
1171 {"khaki1", {1.000000 , 0.964706 , 0.560784 }},
1172 {"khaki2", {0.933333 , 0.901961 , 0.521569 }},
1173 {"khaki3", {0.803922 , 0.776471 , 0.450980 }},
1174 {"khaki4", {0.545098 , 0.525490 , 0.305882 }},
1175 {"lavender", {0.901961 , 0.901961 , 0.980392 }},
1176 {"lavender_blush", {1.000000 , 0.941176 , 0.960784 }},
1177 {"lawn_green", {0.486275 , 0.988235 , 0.000000 }},
1178 {"lemon_chiffon", {1.000000 , 0.980392 , 0.803922 }},
1179 {"light_blue", {0.678431 , 0.847059 , 0.901961 }},
1180 {"light_coral", {0.941176 , 0.501961 , 0.501961 }},
1181 {"light_cyan", {0.878431 , 1.000000 , 1.000000 }},
1182 {"light_goldenrod", {0.933333 , 0.866667 , 0.509804 }},
1183 {"light_goldenrod_yellow", {0.980392 , 0.980392 , 0.823529 }},
1184 {"light_gray", {0.827451 , 0.827451 , 0.827451 }},
1185 {"light_grey", {0.827451 , 0.827451 , 0.827451 }},
1186 {"light_pink", {1.000000 , 0.713725 , 0.756863 }},
1187 {"light_salmon", {1.000000 , 0.627451 , 0.478431 }},
1188 {"light_sea_green", {0.125490 , 0.698039 , 0.666667 }},
1189 {"light_sky_blue", {0.529412 , 0.807843 , 0.980392 }},
1190 {"light_slate_blue", {0.517647 , 0.439216 , 1.000000 }},
1191 {"light_slate_gray", {0.466667 , 0.533333 , 0.600000 }},
1192 {"light_slate_grey", {0.466667 , 0.533333 , 0.600000 }},
1193 {"light_steel_blue", {0.690196 , 0.768627 , 0.870588 }},
1194 {"light_yellow", {1.000000 , 1.000000 , 0.878431 }},
1195 {"lime_green", {0.196078 , 0.803922 , 0.196078 }},
1196 {"linen", {0.980392 , 0.941176 , 0.901961 }},
1197 {"magenta", {1.000000 , 0.000000 , 1.000000 }},
1198 {"magenta1", {1.000000 , 0.000000 , 1.000000 }},
1199 {"magenta2", {0.933333 , 0.000000 , 0.933333 }},
1200 {"magenta3", {0.803922 , 0.000000 , 0.803922 }},
1201 {"magenta4", {0.545098 , 0.000000 , 0.545098 }},
1202 {"maroon", {0.690196 , 0.188235 , 0.376471 }},
1203 {"maroon1", {1.000000 , 0.203922 , 0.701961 }},
1204 {"maroon2", {0.933333 , 0.188235 , 0.654902 }},
1205 {"maroon3", {0.803922 , 0.160784 , 0.564706 }},
1206 {"maroon4", {0.545098 , 0.109804 , 0.384314 }},
1207 {"medium_aquamarine", {0.400000 , 0.803922 , 0.666667 }},
1208 {"medium_blue", {0.000000 , 0.000000 , 0.803922 }},
1209 {"medium_orchid", {0.729412 , 0.333333 , 0.827451 }},
1210 {"medium_purple", {0.576471 , 0.439216 , 0.858824 }},
1211 {"medium_sea_green", {0.235294 , 0.701961 , 0.443137 }},
1212 {"medium_slate_blue", {0.482353 , 0.407843 , 0.933333 }},
1213 {"medium_spring_green", {0.000000 , 0.980392 , 0.603922 }},
1214 {"medium_turquoise", {0.282353 , 0.819608 , 0.800000 }},
1215 {"medium_violet_red", {0.780392 , 0.082353 , 0.521569 }},
1216 {"midnight_blue", {0.098039 , 0.098039 , 0.439216 }},
1217 {"mint_cream", {0.960784 , 1.000000 , 0.980392 }},
1218 {"misty_rose", {1.000000 , 0.894118 , 0.882353 }},
1219 {"moccasin", {1.000000 , 0.894118 , 0.709804 }},
1220 {"navajo_white", {1.000000 , 0.870588 , 0.678431 }},
1221 {"navy", {0.000000 , 0.000000 , 0.501961 }},
1222 {"navy_blue", {0.000000 , 0.000000 , 0.501961 }},
1223 {"old_lace", {0.992157 , 0.960784 , 0.901961 }},
1224 {"olive_drab", {0.419608 , 0.556863 , 0.137255 }},
1225 {"orange", {1.000000 , 0.647059 , 0.000000 }},
1226 {"orange1", {1.000000 , 0.647059 , 0.000000 }},
1227 {"orange2", {0.933333 , 0.603922 , 0.000000 }},
1228 {"orange3", {0.803922 , 0.521569 , 0.000000 }},
1229 {"orange4", {0.545098 , 0.352941 , 0.000000 }},
1230 {"orange_red", {1.000000 , 0.270588 , 0.000000 }},
1231 {"orchid", {0.854902 , 0.439216 , 0.839216 }},
1232 {"orchid1", {1.000000 , 0.513725 , 0.980392 }},
1233 {"orchid2", {0.933333 , 0.478431 , 0.913725 }},
1234 {"orchid3", {0.803922 , 0.411765 , 0.788235 }},
1235 {"orchid4", {0.545098 , 0.278431 , 0.537255 }},
1236 {"pale_goldenrod", {0.933333 , 0.909804 , 0.666667 }},
1237 {"pale_green", {0.596078 , 0.984314 , 0.596078 }},
1238 {"pale_turquoise", {0.686275 , 0.933333 , 0.933333 }},
1239 {"pale_violet_red", {0.858824 , 0.439216 , 0.576471 }},
1240 {"papaya_whip", {1.000000 , 0.937255 , 0.835294 }},
1241 {"peach_puff", {1.000000 , 0.854902 , 0.725490 }},
1242 {"peru", {0.803922 , 0.521569 , 0.247059 }},
1243 {"pink", {1.000000 , 0.752941 , 0.796078 }},
1244 {"pink1", {1.000000 , 0.709804 , 0.772549 }},
1245 {"pink2", {0.933333 , 0.662745 , 0.721569 }},
1246 {"pink3", {0.803922 , 0.568627 , 0.619608 }},
1247 {"pink4", {0.545098 , 0.388235 , 0.423529 }},
1248 {"plum", {0.866667 , 0.627451 , 0.866667 }},
1249 {"plum1", {1.000000 , 0.733333 , 1.000000 }},
1250 {"plum2", {0.933333 , 0.682353 , 0.933333 }},
1251 {"plum3", {0.803922 , 0.588235 , 0.803922 }},
1252 {"plum4", {0.545098 , 0.400000 , 0.545098 }},
1253 {"powder_blue", {0.690196 , 0.878431 , 0.901961 }},
1254 {"purple", {0.627451 , 0.125490 , 0.941176 }},
1255 {"purple1", {0.607843 , 0.188235 , 1.000000 }},
1256 {"purple2", {0.568627 , 0.172549 , 0.933333 }},
1257 {"purple3", {0.490196 , 0.149020 , 0.803922 }},
1258 {"purple4", {0.333333 , 0.101961 , 0.545098 }},
1259 {"red", {1.000000 , 0.000000 , 0.000000 }},
1260 {"red1", {1.000000 , 0.000000 , 0.000000 }},
1261 {"red2", {0.933333 , 0.000000 , 0.000000 }},
1262 {"red3", {0.803922 , 0.000000 , 0.000000 }},
1263 {"red4", {0.545098 , 0.000000 , 0.000000 }},
1264 {"rosy_brown", {0.737255 , 0.560784 , 0.560784 }},
1265 {"royal_blue", {0.254902 , 0.411765 , 0.882353 }},
1266 {"saddle_brown", {0.545098 , 0.270588 , 0.074510 }},
1267 {"salmon", {0.980392 , 0.501961 , 0.447059 }},
1268 {"salmon1", {1.000000 , 0.549020 , 0.411765 }},
1269 {"salmon2", {0.933333 , 0.509804 , 0.384314 }},
1270 {"salmon3", {0.803922 , 0.439216 , 0.329412 }},
1271 {"salmon4", {0.545098 , 0.298039 , 0.223529 }},
1272 {"sandy_brown", {0.956863 , 0.643137 , 0.376471 }},
1273 {"sea_green", {0.180392 , 0.545098 , 0.341176 }},
1274 {"seashell", {1.000000 , 0.960784 , 0.933333 }},
1275 {"seashell1", {1.000000 , 0.960784 , 0.933333 }},
1276 {"seashell2", {0.933333 , 0.898039 , 0.870588 }},
1277 {"seashell3", {0.803922 , 0.772549 , 0.749020 }},
1278 {"seashell4", {0.545098 , 0.525490 , 0.509804 }},
1279 {"sienna", {0.627451 , 0.321569 , 0.176471 }},
1280 {"sienna1", {1.000000 , 0.509804 , 0.278431 }},
1281 {"sienna2", {0.933333 , 0.474510 , 0.258824 }},
1282 {"sienna3", {0.803922 , 0.407843 , 0.223529 }},
1283 {"sienna4", {0.545098 , 0.278431 , 0.149020 }},
1284 {"sky_blue", {0.529412 , 0.807843 , 0.921569 }},
1285 {"slate_blue", {0.415686 , 0.352941 , 0.803922 }},
1286 {"slate_gray", {0.439216 , 0.501961 , 0.564706 }},
1287 {"slate_grey", {0.439216 , 0.501961 , 0.564706 }},
1288 {"snow", {1.000000 , 0.980392 , 0.980392 }},
1289 {"snow1", {1.000000 , 0.980392 , 0.980392 }},
1290 {"snow2", {0.933333 , 0.913725 , 0.913725 }},
1291 {"snow3", {0.803922 , 0.788235 , 0.788235 }},
1292 {"snow4", {0.545098 , 0.537255 , 0.537255 }},
1293 {"spring_green", {0.000000 , 1.000000 , 0.498039 }},
1294 {"steel_blue", {0.274510 , 0.509804 , 0.705882 }},
1295 {"tan", {0.823529 , 0.705882 , 0.549020 }},
1296 {"tan1", {1.000000 , 0.647059 , 0.309804 }},
1297 {"tan2", {0.933333 , 0.603922 , 0.286275 }},
1298 {"tan3", {0.803922 , 0.521569 , 0.247059 }},
1299 {"tan4", {0.545098 , 0.352941 , 0.168627 }},
1300 {"thistle", {0.847059 , 0.749020 , 0.847059 }},
1301 {"thistle1", {1.000000 , 0.882353 , 1.000000 }},
1302 {"thistle2", {0.933333 , 0.823529 , 0.933333 }},
1303 {"thistle3", {0.803922 , 0.709804 , 0.803922 }},
1304 {"thistle4", {0.545098 , 0.482353 , 0.545098 }},
1305 {"tomato", {1.000000 , 0.388235 , 0.278431 }},
1306 {"tomato1", {1.000000 , 0.388235 , 0.278431 }},
1307 {"tomato2", {0.933333 , 0.360784 , 0.258824 }},
1308 {"tomato3", {0.803922 , 0.309804 , 0.223529 }},
1309 {"tomato4", {0.545098 , 0.211765 , 0.149020 }},
1310 {"turquoise", {0.250980 , 0.878431 , 0.815686 }},
1311 {"turquoise1", {0.000000 , 0.960784 , 1.000000 }},
1312 {"turquoise2", {0.000000 , 0.898039 , 0.933333 }},
1313 {"turquoise3", {0.000000 , 0.772549 , 0.803922 }},
1314 {"turquoise4", {0.000000 , 0.525490 , 0.545098 }},
1315 {"violet", {0.933333 , 0.509804 , 0.933333 }},
1316 {"violet_red", {0.815686 , 0.125490 , 0.564706 }},
1317 {"wheat", {0.960784 , 0.870588 , 0.701961 }},
1318 {"wheat1", {1.000000 , 0.905882 , 0.729412 }},
1319 {"wheat2", {0.933333 , 0.847059 , 0.682353 }},
1320 {"wheat3", {0.803922 , 0.729412 , 0.588235 }},
1321 {"wheat4", {0.545098 , 0.494118 , 0.400000 }},
1322 {"white", {1.000000 , 1.000000 , 1.000000 }},
1323 {"white_smoke", {0.960784 , 0.960784 , 0.960784 }},
1324 {"yellow", {1.000000 , 1.000000 , 0.000000 }},
1325 {"yellow1", {1.000000 , 1.000000 , 0.000000 }},
1326 {"yellow2", {0.933333 , 0.933333 , 0.000000 }},
1327 {"yellow3", {0.803922 , 0.803922 , 0.000000 }},
1328 {"yellow4", {0.545098 , 0.545098 , 0.000000 }},
1329 {"yellow_green", {0.603922 , 0.803922 , 0.196078} }
1330 } ;
1331
1332 int
1333 LookupColorByName(name, color)
1334 char * name ;
1335 Vec color ;
1336 {
1337 int rc ;
1338 rc = BinarySearch(name, 0, NCOLORS - 1 , Colors) ;
1339 if (rc < 0) {
1340 return(0) ;
1341 }
1342
1343 VecCopy(Colors[rc].ce_color, color) ;
1344 return 1 ;
1345 }
1346
1347
1348 int
1349 BinarySearch(name, l, h, array)
1350 char * name ;
1351 int l, h ;
1352 ColorEntry array[] ;
1353 {
1354 int m, rc ;
1355 if (l > h)
1356 return(-1) ;
1357
1358 m = (l + h) / 2 ;
1359
1360 rc = strcmp(name, array[m].ce_name) ;
1361 if (rc == 0)
1362 return m ;
1363 else if (rc < 0)
1364 return BinarySearch(name, l, m-1, array) ;
1365 else
1366 return BinarySearch(name, m + 1, h, array) ;
1367 }