3 # © Copyright 2021-2022, Scott Gasch
5 """A bunch of color names mapped into RGB tuples and some methods for
6 setting the text color, background, etc... using ANSI escape
16 from abc import abstractmethod
17 from typing import Any, Callable, Dict, Iterable, Literal, Optional, Tuple
19 from overrides import overrides
24 logger = logging.getLogger(__name__)
26 # https://en.wikipedia.org/wiki/ANSI_escape_code
29 COLOR_NAMES_TO_RGB: Dict[str, Tuple[int, int, int]] = {
30 "abbey": (0x4C, 0x4F, 0x56),
31 "acadia": (0x1B, 0x14, 0x04),
32 "acapulco": (0x7C, 0xB0, 0xA1),
33 "aero blue": (0xC9, 0xFF, 0xE5),
34 "affair": (0x71, 0x46, 0x93),
35 "akaroa": (0xD4, 0xC4, 0xA8),
36 "alabaster": (0xFA, 0xFA, 0xFA),
37 "albescent white": (0xF5, 0xE9, 0xD3),
38 "algae green": (0x93, 0xDF, 0xB8),
39 "alice blue": (0xF0, 0xF8, 0xFF),
40 "alizarin crimson": (0xE3, 0x26, 0x36),
41 "allports": (0x00, 0x76, 0xA3),
42 "almond frost": (0x90, 0x7B, 0x71),
43 "almond": (0xEE, 0xD9, 0xC4),
44 "alpine": (0xAF, 0x8F, 0x2C),
45 "alto": (0xDB, 0xDB, 0xDB),
46 "aluminium": (0xA9, 0xAC, 0xB6),
47 "amaranth": (0xE5, 0x2B, 0x50),
48 "amazon": (0x3B, 0x7A, 0x57),
49 "amber": (0xFF, 0xBF, 0x00),
50 "americano": (0x87, 0x75, 0x6E),
51 "amethyst smoke": (0xA3, 0x97, 0xB4),
52 "amethyst": (0x99, 0x66, 0xCC),
53 "amour": (0xF9, 0xEA, 0xF3),
54 "amulet": (0x7B, 0x9F, 0x80),
55 "anakiwa": (0x9D, 0xE5, 0xFF),
56 "antique brass": (0xC8, 0x8A, 0x65),
57 "antique bronze": (0x70, 0x4A, 0x07),
58 "antique white": (0xFA, 0xEB, 0xD7),
59 "anzac": (0xE0, 0xB6, 0x46),
60 "apache": (0xDF, 0xBE, 0x6F),
61 "apple blossom": (0xAF, 0x4D, 0x43),
62 "apple green": (0xE2, 0xF3, 0xEC),
63 "apple": (0x4F, 0xA8, 0x3D),
64 "apricot peach": (0xFB, 0xCE, 0xB1),
65 "apricot white": (0xFF, 0xFE, 0xEC),
66 "apricot": (0xEB, 0x93, 0x73),
67 "aqua deep": (0x01, 0x4B, 0x43),
68 "aqua forest": (0x5F, 0xA7, 0x77),
69 "aqua haze": (0xED, 0xF5, 0xF5),
70 "aqua island": (0xA1, 0xDA, 0xD7),
71 "aqua spring": (0xEA, 0xF9, 0xF5),
72 "aqua squeeze": (0xE8, 0xF5, 0xF2),
73 "aqua": (0x00, 0xFF, 0xFF),
74 "aquamarine blue": (0x71, 0xD9, 0xE2),
75 "aquamarine": (0x7F, 0xFF, 0xD4),
76 "arapawa": (0x11, 0x0C, 0x6C),
77 "armadillo": (0x43, 0x3E, 0x37),
78 "arrowtown": (0x94, 0x87, 0x71),
79 "ash": (0xC6, 0xC3, 0xB5),
80 "asparagus": (0x7B, 0xA0, 0x5B),
81 "asphalt": (0x13, 0x0A, 0x06),
82 "astra": (0xFA, 0xEA, 0xB9),
83 "astral": (0x32, 0x7D, 0xA0),
84 "astronaut blue": (0x01, 0x3E, 0x62),
85 "astronaut": (0x28, 0x3A, 0x77),
86 "athens gray": (0xEE, 0xF0, 0xF3),
87 "aths special": (0xEC, 0xEB, 0xCE),
88 "atlantis": (0x97, 0xCD, 0x2D),
89 "atoll": (0x0A, 0x6F, 0x75),
90 "atomic tangerine": (0xFF, 0x99, 0x66),
91 "au chico": (0x97, 0x60, 0x5D),
92 "aubergine": (0x3B, 0x09, 0x10),
93 "australian mint": (0xF5, 0xFF, 0xBE),
94 "avocado": (0x88, 0x8D, 0x65),
95 "axolotl": (0x4E, 0x66, 0x49),
96 "azalea": (0xF7, 0xC8, 0xDA),
97 "aztec": (0x0D, 0x1C, 0x19),
98 "azure radiance": (0x00, 0x7F, 0xFF),
99 "azure": (0xF0, 0xFF, 0xFF),
100 "baby blue": (0xE0, 0xFF, 0xFF),
101 "backup.house": (175, 95, 0),
102 "bahama blue": (0x02, 0x63, 0x95),
103 "bahia": (0xA5, 0xCB, 0x0C),
104 "baja white": (0xFF, 0xF8, 0xD1),
105 "bali hai": (0x85, 0x9F, 0xAF),
106 "baltic sea": (0x2A, 0x26, 0x30),
107 "bamboo": (0xDA, 0x63, 0x04),
108 "banana mania": (0xFB, 0xE7, 0xB2),
109 "bandicoot": (0x85, 0x84, 0x70),
110 "barberry": (0xDE, 0xD7, 0x17),
111 "barley corn": (0xA6, 0x8B, 0x5B),
112 "barley white": (0xFF, 0xF4, 0xCE),
113 "barossa": (0x44, 0x01, 0x2D),
114 "bastille": (0x29, 0x21, 0x30),
115 "battleship gray": (0x82, 0x8F, 0x72),
116 "bay leaf": (0x7D, 0xA9, 0x8D),
117 "bay of many": (0x27, 0x3A, 0x81),
118 "bazaar": (0x98, 0x77, 0x7B),
119 "bean ": (0x3D, 0x0C, 0x02),
120 "beauty bush": (0xEE, 0xC1, 0xBE),
121 "beaver": (0x92, 0x6F, 0x5B),
122 "beeswax": (0xFE, 0xF2, 0xC7),
123 "beige": (0xF5, 0xF5, 0xDC),
124 "bermuda gray": (0x6B, 0x8B, 0xA2),
125 "bermuda": (0x7D, 0xD8, 0xC6),
126 "beryl green": (0xDE, 0xE5, 0xC0),
127 "bianca": (0xFC, 0xFB, 0xF3),
128 "big stone": (0x16, 0x2A, 0x40),
129 "bilbao": (0x32, 0x7C, 0x14),
130 "biloba flower": (0xB2, 0xA1, 0xEA),
131 "birch": (0x37, 0x30, 0x21),
132 "bird flower": (0xD4, 0xCD, 0x16),
133 "biscay": (0x1B, 0x31, 0x62),
134 "bismark": (0x49, 0x71, 0x83),
135 "bison hide": (0xC1, 0xB7, 0xA4),
136 "bisque": (0xFF, 0xE4, 0xC4),
137 "bistre": (0x3D, 0x2B, 0x1F),
138 "bitter lemon": (0xCA, 0xE0, 0x0D),
139 "bitter": (0x86, 0x89, 0x74),
140 "bittersweet": (0xFE, 0x6F, 0x5E),
141 "bizarre": (0xEE, 0xDE, 0xDA),
142 "black bean": (0x08, 0x19, 0x10),
143 "black forest": (0x0B, 0x13, 0x04),
144 "black haze": (0xF6, 0xF7, 0xF7),
145 "black marlin": (0x3E, 0x2C, 0x1C),
146 "black olive": (0x24, 0x2E, 0x16),
147 "black pearl": (0x04, 0x13, 0x22),
148 "black rock": (0x0D, 0x03, 0x32),
149 "black rose": (0x67, 0x03, 0x2D),
150 "black russian": (0x0A, 0x00, 0x1C),
151 "black squeeze": (0xF2, 0xFA, 0xFA),
152 "black white": (0xFF, 0xFE, 0xF6),
153 "black": (0x00, 0x00, 0x00),
154 "blackberry": (0x4D, 0x01, 0x35),
155 "blackcurrant": (0x32, 0x29, 0x3A),
156 "blanched almond": (0xFF, 0xEB, 0xCD),
157 "blaze orange": (0xFF, 0x66, 0x00),
158 "bleach white": (0xFE, 0xF3, 0xD8),
159 "bleached cedar": (0x2C, 0x21, 0x33),
160 "blizzard blue": (0xA3, 0xE3, 0xED),
161 "blossom": (0xDC, 0xB4, 0xBC),
162 "blue bayoux": (0x49, 0x66, 0x79),
163 "blue bell": (0x99, 0x99, 0xCC),
164 "blue chalk": (0xF1, 0xE9, 0xFF),
165 "blue charcoal": (0x01, 0x0D, 0x1A),
166 "blue chill": (0x0C, 0x89, 0x90),
167 "blue diamond": (0x38, 0x04, 0x74),
168 "blue dianne": (0x20, 0x48, 0x52),
169 "blue gem": (0x2C, 0x0E, 0x8C),
170 "blue haze": (0xBF, 0xBE, 0xD8),
171 "blue lagoon": (0x01, 0x79, 0x87),
172 "blue marguerite": (0x76, 0x66, 0xC6),
173 "blue ribbon": (0x00, 0x66, 0xFF),
174 "blue romance": (0xD2, 0xF6, 0xDE),
175 "blue smoke": (0x74, 0x88, 0x81),
176 "blue stone": (0x01, 0x61, 0x62),
177 "blue violet": (0x8A, 0x2B, 0xE2),
178 "blue whale": (0x04, 0x2E, 0x4C),
179 "blue zodiac": (0x13, 0x26, 0x4D),
180 "blue": (0x00, 0x00, 0xFF),
181 "blumine": (0x18, 0x58, 0x7A),
182 "blush pink": (0xFF, 0x6F, 0xFF),
183 "blush": (0xB4, 0x46, 0x68),
184 "bombay": (0xAF, 0xB1, 0xB8),
185 "bon jour": (0xE5, 0xE0, 0xE1),
186 "bondi blue": (0x00, 0x95, 0xB6),
187 "bone": (0xE4, 0xD1, 0xC0),
188 "bordeaux": (0x5C, 0x01, 0x20),
189 "bossanova": (0x4E, 0x2A, 0x5A),
190 "boston blue": (0x3B, 0x91, 0xB4),
191 "botticelli": (0xC7, 0xDD, 0xE5),
192 "bottle green": (0x09, 0x36, 0x24),
193 "boulder": (0x7A, 0x7A, 0x7A),
194 "bouquet": (0xAE, 0x80, 0x9E),
195 "bourbon": (0xBA, 0x6F, 0x1E),
196 "bracken": (0x4A, 0x2A, 0x04),
197 "brandy punch": (0xCD, 0x84, 0x29),
198 "brandy rose": (0xBB, 0x89, 0x83),
199 "brandy": (0xDE, 0xC1, 0x96),
200 "breaker bay": (0x5D, 0xA1, 0x9F),
201 "brick red": (0xC6, 0x2D, 0x42),
202 "bridal heath": (0xFF, 0xFA, 0xF4),
203 "bridesmaid": (0xFE, 0xF0, 0xEC),
204 "bright gray": (0x3C, 0x41, 0x51),
205 "bright green": (0x66, 0xFF, 0x00),
206 "bright red": (0xB1, 0x00, 0x00),
207 "bright sun": (0xFE, 0xD3, 0x3C),
208 "bright turquoise": (0x08, 0xE8, 0xDE),
209 "brilliant rose": (0xF6, 0x53, 0xA6),
210 "brink pink": (0xFB, 0x60, 0x7F),
211 "bronco": (0xAB, 0xA1, 0x96),
212 "bronze olive": (0x4E, 0x42, 0x0C),
213 "bronze": (0x3F, 0x21, 0x09),
214 "bronzetone": (0x4D, 0x40, 0x0F),
215 "broom": (0xFF, 0xEC, 0x13),
216 "brown bramble": (0x59, 0x28, 0x04),
217 "brown derby": (0x49, 0x26, 0x15),
218 "brown pod": (0x40, 0x18, 0x01),
219 "brown rust": (0xAF, 0x59, 0x3E),
220 "brown tumbleweed": (0x37, 0x29, 0x0E),
221 "brown": (0x96, 0x4B, 0x00),
222 "bubbles": (0xE7, 0xFE, 0xFF),
223 "buccaneer": (0x62, 0x2F, 0x30),
224 "bud": (0xA8, 0xAE, 0x9C),
225 "buddha gold": (0xC1, 0xA0, 0x04),
226 "buff": (0xF0, 0xDC, 0x82),
227 "bulgarian rose": (0x48, 0x06, 0x07),
228 "bull shot": (0x86, 0x4D, 0x1E),
229 "bunker": (0x0D, 0x11, 0x17),
230 "bunting": (0x15, 0x1F, 0x4C),
231 "burgundy": (0x90, 0x00, 0x20),
232 "burlywood": (0xDE, 0xB8, 0x87),
233 "burnham": (0x00, 0x2E, 0x20),
234 "burning orange": (0xFF, 0x70, 0x34),
235 "burning sand": (0xD9, 0x93, 0x76),
236 "burnt maroon": (0x42, 0x03, 0x03),
237 "burnt orange": (0xCC, 0x55, 0x00),
238 "burnt sienna": (0xE9, 0x74, 0x51),
239 "burnt umber": (0x8A, 0x33, 0x24),
240 "bush": (0x0D, 0x2E, 0x1C),
241 "buttercup": (0xF3, 0xAD, 0x16),
242 "buttered rum": (0xA1, 0x75, 0x0D),
243 "butterfly bush": (0x62, 0x4E, 0x9A),
244 "buttermilk": (0xFF, 0xF1, 0xB5),
245 "buttery white": (0xFF, 0xFC, 0xEA),
246 "cab sav": (0x4D, 0x0A, 0x18),
247 "cabaret": (0xD9, 0x49, 0x72),
248 "cabbage pont": (0x3F, 0x4C, 0x3A),
249 "cactus": (0x58, 0x71, 0x56),
250 "cadet blue": (0x5F, 0x9E, 0xA0),
251 "cadillac": (0xB0, 0x4C, 0x6A),
252 "cafe royale": (0x6F, 0x44, 0x0C),
253 "calico": (0xE0, 0xC0, 0x95),
254 "california": (0xFE, 0x9D, 0x04),
255 "calypso": (0x31, 0x72, 0x8D),
256 "camarone": (0x00, 0x58, 0x1A),
257 "camelot": (0x89, 0x34, 0x56),
258 "cameo": (0xD9, 0xB9, 0x9B),
259 "camouflage green": (0x78, 0x86, 0x6B),
260 "camouflage": (0x3C, 0x39, 0x10),
261 "can can": (0xD5, 0x91, 0xA4),
262 "canary": (0xF3, 0xFB, 0x62),
263 "candlelight": (0xFC, 0xD9, 0x17),
264 "candy corn": (0xFB, 0xEC, 0x5D),
265 "cannon black": (0x25, 0x17, 0x06),
266 "cannon pink": (0x89, 0x43, 0x67),
267 "cape cod": (0x3C, 0x44, 0x43),
268 "cape honey": (0xFE, 0xE5, 0xAC),
269 "cape palliser": (0xA2, 0x66, 0x45),
270 "caper": (0xDC, 0xED, 0xB4),
271 "caramel": (0xFF, 0xDD, 0xAF),
272 "cararra": (0xEE, 0xEE, 0xE8),
273 "cardin green": (0x01, 0x36, 0x1C),
274 "cardinal pink": (0x8C, 0x05, 0x5E),
275 "cardinal": (0xC4, 0x1E, 0x3A),
276 "careys pink": (0xD2, 0x9E, 0xAA),
277 "caribbean green": (0x00, 0xCC, 0x99),
278 "carissma": (0xEA, 0x88, 0xA8),
279 "carla": (0xF3, 0xFF, 0xD8),
280 "carmine": (0x96, 0x00, 0x18),
281 "carnaby tan": (0x5C, 0x2E, 0x01),
282 "carnation pink": (0xFF, 0xA6, 0xC9),
283 "carnation": (0xF9, 0x5A, 0x61),
284 "carousel pink": (0xF9, 0xE0, 0xED),
285 "carrot orange": (0xED, 0x91, 0x21),
286 "casablanca": (0xF8, 0xB8, 0x53),
287 "casal": (0x2F, 0x61, 0x68),
288 "cascade": (0x8B, 0xA9, 0xA5),
289 "cashmere": (0xE6, 0xBE, 0xA5),
290 "casper": (0xAD, 0xBE, 0xD1),
291 "castro": (0x52, 0x00, 0x1F),
292 "catalina blue": (0x06, 0x2A, 0x78),
293 "catskill white": (0xEE, 0xF6, 0xF7),
294 "cavern pink": (0xE3, 0xBE, 0xBE),
295 "cedar wood finish": (0x71, 0x1A, 0x00),
296 "cedar": (0x3E, 0x1C, 0x14),
297 "celadon": (0xAC, 0xE1, 0xAF),
298 "celery": (0xB8, 0xC2, 0x5D),
299 "celeste": (0xD1, 0xD2, 0xCA),
300 "cello": (0x1E, 0x38, 0x5B),
301 "celtic": (0x16, 0x32, 0x22),
302 "cement": (0x8D, 0x76, 0x62),
303 "ceramic": (0xFC, 0xFF, 0xF9),
304 "cerise red": (0xDE, 0x31, 0x63),
305 "cerise": (0xDA, 0x32, 0x87),
306 "cerulean blue": (0x2A, 0x52, 0xBE),
307 "cerulean": (0x02, 0xA4, 0xD3),
308 "chablis": (0xFF, 0xF4, 0xF3),
309 "chalet green": (0x51, 0x6E, 0x3D),
310 "chalky": (0xEE, 0xD7, 0x94),
311 "chambray": (0x35, 0x4E, 0x8C),
312 "chamois": (0xED, 0xDC, 0xB1),
313 "champagne": (0xFA, 0xEC, 0xCC),
314 "chantilly": (0xF8, 0xC3, 0xDF),
315 "charade": (0x29, 0x29, 0x37),
316 "chardon": (0xFF, 0xF3, 0xF1),
317 "chardonnay": (0xFF, 0xCD, 0x8C),
318 "charlotte": (0xBA, 0xEE, 0xF9),
319 "charm": (0xD4, 0x74, 0x94),
320 "chartreuse yellow": (0xDF, 0xFF, 0x00),
321 "chartreuse": (0x7F, 0xFF, 0x00),
322 "chateau green": (0x40, 0xA8, 0x60),
323 "chatelle": (0xBD, 0xB3, 0xC7),
324 "chathams blue": (0x17, 0x55, 0x79),
325 "cheetah.house": (95, 0x00, 0x00),
326 "chelsea cucumber": (0x83, 0xAA, 0x5D),
327 "chelsea gem": (0x9E, 0x53, 0x02),
328 "chenin": (0xDF, 0xCD, 0x6F),
329 "cherokee": (0xFC, 0xDA, 0x98),
330 "cherry pie": (0x2A, 0x03, 0x59),
331 "cherrywood": (0x65, 0x1A, 0x14),
332 "cherub": (0xF8, 0xD9, 0xE9),
333 "chestnut rose": (0xCD, 0x5C, 0x5C),
334 "chestnut": (0xB9, 0x4E, 0x48),
335 "chetwode blue": (0x85, 0x81, 0xD9),
336 "chicago": (0x5D, 0x5C, 0x58),
337 "chiffon": (0xF1, 0xFF, 0xC8),
338 "chilean fire": (0xF7, 0x77, 0x03),
339 "chilean heath": (0xFF, 0xFD, 0xE6),
340 "china ivory": (0xFC, 0xFF, 0xE7),
341 "chino": (0xCE, 0xC7, 0xA7),
342 "chinook": (0xA8, 0xE3, 0xBD),
343 "chocolate": (0x37, 0x02, 0x02),
344 "christalle": (0x33, 0x03, 0x6B),
345 "christi": (0x67, 0xA7, 0x12),
346 "christine": (0xE7, 0x73, 0x0A),
347 "chrome white": (0xE8, 0xF1, 0xD4),
348 "cinder": (0x0E, 0x0E, 0x18),
349 "cinderella": (0xFD, 0xE1, 0xDC),
350 "cinnabar": (0xE3, 0x42, 0x34),
351 "cinnamon": (0x7B, 0x3F, 0x00),
352 "cioccolato": (0x55, 0x28, 0x0C),
353 "citrine white": (0xFA, 0xF7, 0xD6),
354 "citron": (0x9E, 0xA9, 0x1F),
355 "citrus": (0xA1, 0xC5, 0x0A),
356 "clairvoyant": (0x48, 0x06, 0x56),
357 "clam shell": (0xD4, 0xB6, 0xAF),
358 "claret": (0x7F, 0x17, 0x34),
359 "classic rose": (0xFB, 0xCC, 0xE7),
360 "clay ash": (0xBD, 0xC8, 0xB3),
361 "clay creek": (0x8A, 0x83, 0x60),
362 "clear day": (0xE9, 0xFF, 0xFD),
363 "clementine": (0xE9, 0x6E, 0x00),
364 "clinker": (0x37, 0x1D, 0x09),
365 "cloud burst": (0x20, 0x2E, 0x54),
366 "cloud": (0xC7, 0xC4, 0xBF),
367 "cloudy": (0xAC, 0xA5, 0x9F),
368 "clover": (0x38, 0x49, 0x10),
369 "cobalt": (0x00, 0x47, 0xAB),
370 "cocoa bean": (0x48, 0x1C, 0x1C),
371 "cocoa brown": (0x30, 0x1F, 0x1E),
372 "coconut cream": (0xF8, 0xF7, 0xDC),
373 "cod gray": (0x0B, 0x0B, 0x0B),
374 "coffee bean": (0x2A, 0x14, 0x0E),
375 "coffee": (0x70, 0x65, 0x55),
376 "cognac": (0x9F, 0x38, 0x1D),
377 "cola": (0x3F, 0x25, 0x00),
378 "cold purple": (0xAB, 0xA0, 0xD9),
379 "cold turkey": (0xCE, 0xBA, 0xBA),
380 "colonial white": (0xFF, 0xED, 0xBC),
381 "comet": (0x5C, 0x5D, 0x75),
382 "como": (0x51, 0x7C, 0x66),
383 "conch": (0xC9, 0xD9, 0xD2),
384 "concord": (0x7C, 0x7B, 0x7A),
385 "concrete": (0xF2, 0xF2, 0xF2),
386 "confetti": (0xE9, 0xD7, 0x5A),
387 "congo brown": (0x59, 0x37, 0x37),
388 "congress blue": (0x02, 0x47, 0x8E),
389 "conifer": (0xAC, 0xDD, 0x4D),
390 "contessa": (0xC6, 0x72, 0x6B),
391 "copper canyon": (0x7E, 0x3A, 0x15),
392 "copper rose": (0x99, 0x66, 0x66),
393 "copper rust": (0x94, 0x47, 0x47),
394 "copper": (0xB8, 0x73, 0x33),
395 "copperfield": (0xDA, 0x8A, 0x67),
396 "coral red": (0xFF, 0x40, 0x40),
397 "coral reef": (0xC7, 0xBC, 0xA2),
398 "coral tree": (0xA8, 0x6B, 0x6B),
399 "coral": (0xFF, 0x7F, 0x50),
400 "corduroy": (0x60, 0x6E, 0x68),
401 "coriander": (0xC4, 0xD0, 0xB0),
402 "cork": (0x40, 0x29, 0x1D),
403 "corn field": (0xF8, 0xFA, 0xCD),
404 "corn harvest": (0x8B, 0x6B, 0x0B),
405 "corn silk": (0xFF, 0xF8, 0xDC),
406 "corn": (0xE7, 0xBF, 0x05),
407 "cornflower blue": (0x64, 0x95, 0xED),
408 "cornflower lilac": (0xFF, 0xB0, 0xAC),
409 "cornflower": (0x93, 0xCC, 0xEA),
410 "corvette": (0xFA, 0xD3, 0xA2),
411 "cosmic": (0x76, 0x39, 0x5D),
412 "cosmos": (0xFF, 0xD8, 0xD9),
413 "costa del sol": (0x61, 0x5D, 0x30),
414 "cotton candy": (0xFF, 0xB7, 0xD5),
415 "cotton seed": (0xC2, 0xBD, 0xB6),
416 "county green": (0x01, 0x37, 0x1A),
417 "cowboy": (0x4D, 0x28, 0x2D),
418 "crail": (0xB9, 0x51, 0x40),
419 "cranberry": (0xDB, 0x50, 0x79),
420 "crater brown": (0x46, 0x24, 0x25),
421 "cream brulee": (0xFF, 0xE5, 0xA0),
422 "cream can": (0xF5, 0xC8, 0x5C),
423 "cream": (0xFF, 0xFD, 0xD0),
424 "creole": (0x1E, 0x0F, 0x04),
425 "crete": (0x73, 0x78, 0x29),
426 "crimson": (0xDC, 0x14, 0x3C),
427 "crocodile": (0x73, 0x6D, 0x58),
428 "crown of thorns": (0x77, 0x1F, 0x1F),
429 "crowshead": (0x1C, 0x12, 0x08),
430 "cruise": (0xB5, 0xEC, 0xDF),
431 "crusoe": (0x00, 0x48, 0x16),
432 "crusta": (0xFD, 0x7B, 0x33),
433 "cumin": (0x92, 0x43, 0x21),
434 "cumulus": (0xFD, 0xFF, 0xD5),
435 "cupid": (0xFB, 0xBE, 0xDA),
436 "curious blue": (0x25, 0x96, 0xD1),
437 "cutty sark": (0x50, 0x76, 0x72),
438 "cyan": (0x00, 0xFF, 0xFF),
439 "cyprus": (0x00, 0x3E, 0x40),
440 "daintree": (0x01, 0x27, 0x31),
441 "dairy cream": (0xF9, 0xE4, 0xBC),
442 "daisy bush": (0x4F, 0x23, 0x98),
443 "dallas": (0x6E, 0x4B, 0x26),
444 "dandelion": (0xFE, 0xD8, 0x5D),
445 "danube": (0x60, 0x93, 0xD1),
446 "dark blue": (0x00, 0x00, 0x8B),
447 "dark burgundy": (0x77, 0x0F, 0x05),
448 "dark cyan": (0x00, 0x8B, 0x8B),
449 "dark ebony": (0x3C, 0x20, 0x05),
450 "dark fern": (0x0A, 0x48, 0x0D),
451 "dark goldenrod": (0xB8, 0x86, 0x0B),
452 "dark gray": (0xA9, 0xA9, 0xA9),
453 "dark green": (0x18, 0x2D, 0x09),
454 "dark magenta": (0xAF, 0x00, 0xAF),
455 "dark olive green": (0x55, 0x6B, 0x2F),
456 "dark orange": (0xFF, 0x8C, 0x00),
457 "dark orchid": (0x99, 0x32, 0xCC),
458 "dark purple": (0x36, 0x00, 0x79),
459 "dark red": (0x64, 0x00, 0x00),
460 "dark salmon": (0xE9, 0x96, 0x7A),
461 "dark sea green": (0x8F, 0xBC, 0x8F),
462 "dark slate gray": (0x2F, 0x4F, 0x4F),
463 "dark tan": (0x66, 0x10, 0x10),
464 "dark turquoise": (0x00, 0xCE, 0xD1),
465 "dark violet": (0x94, 0x00, 0xD3),
466 "dawn pink": (0xF3, 0xE9, 0xE5),
467 "dawn": (0xA6, 0xA2, 0x9A),
468 "de york": (0x7A, 0xC4, 0x88),
469 "deco": (0xD2, 0xDA, 0x97),
470 "deep blue": (0x22, 0x08, 0x78),
471 "deep blush": (0xE4, 0x76, 0x98),
472 "deep bronze": (0x4A, 0x30, 0x04),
473 "deep cerulean": (0x00, 0x7B, 0xA7),
474 "deep cove": (0x05, 0x10, 0x40),
475 "deep fir": (0x00, 0x29, 0x00),
476 "deep forest green": (0x18, 0x2D, 0x09),
477 "deep koamaru": (0x1B, 0x12, 0x7B),
478 "deep oak": (0x41, 0x20, 0x10),
479 "deep pink": (0xFF, 0x14, 0x93),
480 "deep sapphire": (0x08, 0x25, 0x67),
481 "deep sea green": (0x09, 0x58, 0x59),
482 "deep sea": (0x01, 0x82, 0x6B),
483 "deep sky blue": (0x00, 0xBF, 0xFF),
484 "deep teal": (0x00, 0x35, 0x32),
485 "del rio": (0xB0, 0x9A, 0x95),
486 "dell": (0x39, 0x64, 0x13),
487 "delta": (0xA4, 0xA4, 0x9D),
488 "deluge": (0x75, 0x63, 0xA8),
489 "denim": (0x15, 0x60, 0xBD),
490 "derby": (0xFF, 0xEE, 0xD8),
491 "desert sand": (0xED, 0xC9, 0xAF),
492 "desert storm": (0xF8, 0xF8, 0xF7),
493 "desert": (0xAE, 0x60, 0x20),
494 "dew": (0xEA, 0xFF, 0xFE),
495 "di serria": (0xDB, 0x99, 0x5E),
496 "diesel": (0x13, 0x00, 0x00),
497 "dim gray": (0x69, 0x69, 0x69),
498 "dingley": (0x5D, 0x77, 0x47),
499 "disco": (0x87, 0x15, 0x50),
500 "dixie": (0xE2, 0x94, 0x18),
501 "dodger blue": (0x1E, 0x90, 0xFF),
502 "dolly": (0xF9, 0xFF, 0x8B),
503 "dolphin": (0x64, 0x60, 0x77),
504 "domino": (0x8E, 0x77, 0x5E),
505 "don juan": (0x5D, 0x4C, 0x51),
506 "donkey brown": (0xA6, 0x92, 0x79),
507 "dorado": (0x6B, 0x57, 0x55),
508 "double colonial white": (0xEE, 0xE3, 0xAD),
509 "double pearl lusta": (0xFC, 0xF4, 0xD0),
510 "double spanish white": (0xE6, 0xD7, 0xB9),
511 "dove gray": (0x6D, 0x6C, 0x6C),
512 "downriver": (0x09, 0x22, 0x56),
513 "downy": (0x6F, 0xD0, 0xC5),
514 "driftwood": (0xAF, 0x87, 0x51),
515 "drover": (0xFD, 0xF7, 0xAD),
516 "dull lavender": (0xA8, 0x99, 0xE6),
517 "dune": (0x38, 0x35, 0x33),
518 "dust storm": (0xE5, 0xCC, 0xC9),
519 "dusty gray": (0xA8, 0x98, 0x9B),
520 "eagle": (0xB6, 0xBA, 0xA4),
521 "earls green": (0xC9, 0xB9, 0x3B),
522 "early dawn": (0xFF, 0xF9, 0xE6),
523 "east bay": (0x41, 0x4C, 0x7D),
524 "east side": (0xAC, 0x91, 0xCE),
525 "eastern blue": (0x1E, 0x9A, 0xB0),
526 "ebb": (0xE9, 0xE3, 0xE3),
527 "ebony clay": (0x26, 0x28, 0x3B),
528 "ebony": (0x0C, 0x0B, 0x1D),
529 "eclipse": (0x31, 0x1C, 0x17),
530 "ecru white": (0xF5, 0xF3, 0xE5),
531 "ecstasy": (0xFA, 0x78, 0x14),
532 "eden": (0x10, 0x58, 0x52),
533 "edgewater": (0xC8, 0xE3, 0xD7),
534 "edward": (0xA2, 0xAE, 0xAB),
535 "egg sour": (0xFF, 0xF4, 0xDD),
536 "egg white": (0xFF, 0xEF, 0xC1),
537 "eggplant": (0x61, 0x40, 0x51),
538 "el paso": (0x1E, 0x17, 0x08),
539 "el salva": (0x8F, 0x3E, 0x33),
540 "electric lime": (0xCC, 0xFF, 0x00),
541 "electric violet": (0x8B, 0x00, 0xFF),
542 "elephant": (0x12, 0x34, 0x47),
543 "elf green": (0x08, 0x83, 0x70),
544 "elm": (0x1C, 0x7C, 0x7D),
545 "emerald": (0x50, 0xC8, 0x78),
546 "eminence": (0x6C, 0x30, 0x82),
547 "emperor": (0x51, 0x46, 0x49),
548 "empress": (0x81, 0x73, 0x77),
549 "endeavour": (0x00, 0x56, 0xA7),
550 "energy yellow": (0xF8, 0xDD, 0x5C),
551 "english holly": (0x02, 0x2D, 0x15),
552 "english walnut": (0x3E, 0x2B, 0x23),
553 "envy": (0x8B, 0xA6, 0x90),
554 "equator": (0xE1, 0xBC, 0x64),
555 "espresso": (0x61, 0x27, 0x18),
556 "eternity": (0x21, 0x1A, 0x0E),
557 "eucalyptus": (0x27, 0x8A, 0x5B),
558 "eunry": (0xCF, 0xA3, 0x9D),
559 "evening sea": (0x02, 0x4E, 0x46),
560 "everglade": (0x1C, 0x40, 0x2E),
561 "faded jade": (0x42, 0x79, 0x77),
562 "fair pink": (0xFF, 0xEF, 0xEC),
563 "falcon": (0x7F, 0x62, 0x6D),
564 "fall green": (0xEC, 0xEB, 0xBD),
565 "falu red": (0x80, 0x18, 0x18),
566 "fantasy": (0xFA, 0xF3, 0xF0),
567 "fedora": (0x79, 0x6A, 0x78),
568 "feijoa": (0x9F, 0xDD, 0x8C),
569 "fern frond": (0x65, 0x72, 0x20),
570 "fern green": (0x4F, 0x79, 0x42),
571 "fern": (0x63, 0xB7, 0x6C),
572 "ferra": (0x70, 0x4F, 0x50),
573 "festival": (0xFB, 0xE9, 0x6C),
574 "feta": (0xF0, 0xFC, 0xEA),
575 "fiery orange": (0xB3, 0x52, 0x13),
576 "finch": (0x62, 0x66, 0x49),
577 "finlandia": (0x55, 0x6D, 0x56),
578 "finn": (0x69, 0x2D, 0x54),
579 "fiord": (0x40, 0x51, 0x69),
580 "fire brick": (0xB2, 0x22, 0x22),
581 "fire bush": (0xE8, 0x99, 0x28),
582 "fire": (0xAA, 0x42, 0x03),
583 "firefly": (0x0E, 0x2A, 0x30),
584 "flame pea": (0xDA, 0x5B, 0x38),
585 "flamenco": (0xFF, 0x7D, 0x07),
586 "flamingo": (0xF2, 0x55, 0x2A),
587 "flax smoke": (0x7B, 0x82, 0x65),
588 "flax": (0xEE, 0xDC, 0x82),
589 "flesh": (0xFF, 0xCB, 0xA4),
590 "flint": (0x6F, 0x6A, 0x61),
591 "flirt": (0xA2, 0x00, 0x6D),
592 "floral white": (0xFF, 0xFA, 0xF0),
593 "flush mahogany": (0xCA, 0x34, 0x35),
594 "flush orange": (0xFF, 0x7F, 0x00),
595 "foam": (0xD8, 0xFC, 0xFA),
596 "fog": (0xD7, 0xD0, 0xFF),
597 "foggy gray": (0xCB, 0xCA, 0xB6),
598 "forest green": (0x22, 0x8B, 0x22),
599 "forget me not": (0xFF, 0xF1, 0xEE),
600 "fountain blue": (0x56, 0xB4, 0xBE),
601 "frangipani": (0xFF, 0xDE, 0xB3),
602 "french gray": (0xBD, 0xBD, 0xC6),
603 "french lilac": (0xEC, 0xC7, 0xEE),
604 "french pass": (0xBD, 0xED, 0xFD),
605 "french rose": (0xF6, 0x4A, 0x8A),
606 "fresh eggplant": (0x99, 0x00, 0x66),
607 "friar gray": (0x80, 0x7E, 0x79),
608 "fringy flower": (0xB1, 0xE2, 0xC1),
609 "froly": (0xF5, 0x75, 0x84),
610 "frost": (0xED, 0xF5, 0xDD),
611 "frosted mint": (0xDB, 0xFF, 0xF8),
612 "frostee": (0xE4, 0xF6, 0xE7),
613 "fruit salad": (0x4F, 0x9D, 0x5D),
614 "fuchsia blue": (0x7A, 0x58, 0xC1),
615 "fuchsia pink": (0xC1, 0x54, 0xC1),
616 "fuchsia": (0xFF, 0x00, 0xFF),
617 "fuego": (0xBE, 0xDE, 0x0D),
618 "fuel yellow": (0xEC, 0xA9, 0x27),
619 "fun blue": (0x19, 0x59, 0xA8),
620 "fun green": (0x01, 0x6D, 0x39),
621 "fuscous gray": (0x54, 0x53, 0x4D),
622 "fuzzy wuzzy brown": (0xC4, 0x56, 0x55),
623 "gable green": (0x16, 0x35, 0x31),
624 "gainsboro": (0xDC, 0xDC, 0xDC),
625 "gallery": (0xEF, 0xEF, 0xEF),
626 "galliano": (0xDC, 0xB2, 0x0C),
627 "gamboge": (0xE4, 0x9B, 0x0F),
628 "geebung": (0xD1, 0x8F, 0x1B),
629 "genoa": (0x15, 0x73, 0x6B),
630 "geraldine": (0xFB, 0x89, 0x89),
631 "geyser": (0xD4, 0xDF, 0xE2),
632 "ghost white": (0xF8, 0xF8, 0xFF),
633 "ghost": (0xC7, 0xC9, 0xD5),
634 "gigas": (0x52, 0x3C, 0x94),
635 "gimblet": (0xB8, 0xB5, 0x6A),
636 "gin fizz": (0xFF, 0xF9, 0xE2),
637 "gin": (0xE8, 0xF2, 0xEB),
638 "givry": (0xF8, 0xE4, 0xBF),
639 "glacier": (0x80, 0xB3, 0xC4),
640 "glade green": (0x61, 0x84, 0x5F),
641 "go ben": (0x72, 0x6D, 0x4E),
642 "goblin": (0x3D, 0x7D, 0x52),
643 "gold drop": (0xF1, 0x82, 0x00),
644 "gold sand": (0xE6, 0xBE, 0x8A),
645 "gold tips": (0xDE, 0xBA, 0x13),
646 "gold": (0xFF, 0xD7, 0x00),
647 "golden bell": (0xE2, 0x89, 0x13),
648 "golden dream": (0xF0, 0xD5, 0x2D),
649 "golden fizz": (0xF5, 0xFB, 0x3D),
650 "golden glow": (0xFD, 0xE2, 0x95),
651 "golden grass": (0xDA, 0xA5, 0x20),
652 "golden sand": (0xF0, 0xDB, 0x7D),
653 "golden tainoi": (0xFF, 0xCC, 0x5C),
654 "goldenrod": (0xFC, 0xD6, 0x67),
655 "gondola": (0x26, 0x14, 0x14),
656 "gordons green": (0x0B, 0x11, 0x07),
657 "gorse": (0xFF, 0xF1, 0x4F),
658 "gossamer": (0x06, 0x9B, 0x81),
659 "gossip": (0xD2, 0xF8, 0xB0),
660 "gothic": (0x6D, 0x92, 0xA1),
661 "governor bay": (0x2F, 0x3C, 0xB3),
662 "grain brown": (0xE4, 0xD5, 0xB7),
663 "grandis": (0xFF, 0xD3, 0x8C),
664 "granite green": (0x8D, 0x89, 0x74),
665 "granny apple": (0xD5, 0xF6, 0xE3),
666 "granny smith apple": (0x9D, 0xE0, 0x93),
667 "granny smith": (0x84, 0xA0, 0xA0),
668 "grape": (0x38, 0x1A, 0x51),
669 "graphite": (0x25, 0x16, 0x07),
670 "gravel": (0x4A, 0x44, 0x4B),
671 "gray asparagus": (0x46, 0x59, 0x45),
672 "gray chateau": (0xA2, 0xAA, 0xB3),
673 "gray nickel": (0xC3, 0xC3, 0xBD),
674 "gray nurse": (0xE7, 0xEC, 0xE6),
675 "gray olive": (0xA9, 0xA4, 0x91),
676 "gray suit": (0xC1, 0xBE, 0xCD),
677 "gray": (0x80, 0x80, 0x80),
678 "green haze": (0x01, 0xA3, 0x68),
679 "green house": (0x24, 0x50, 0x0F),
680 "green kelp": (0x25, 0x31, 0x1C),
681 "green leaf": (0x43, 0x6A, 0x0D),
682 "green mist": (0xCB, 0xD3, 0xB0),
683 "green pea": (0x1D, 0x61, 0x42),
684 "green smoke": (0xA4, 0xAF, 0x6E),
685 "green spring": (0xB8, 0xC1, 0xB1),
686 "green vogue": (0x03, 0x2B, 0x52),
687 "green waterloo": (0x10, 0x14, 0x05),
688 "green white": (0xE8, 0xEB, 0xE0),
689 "green yellow": (0xAD, 0xFF, 0x2F),
690 "green": (0x00, 0xFF, 0x00),
691 "grenadier": (0xD5, 0x46, 0x00),
692 "guardsman red": (0xBA, 0x01, 0x01),
693 "gulf blue": (0x05, 0x16, 0x57),
694 "gulf stream": (0x80, 0xB3, 0xAE),
695 "gull gray": (0x9D, 0xAC, 0xB7),
696 "gum leaf": (0xB6, 0xD3, 0xBF),
697 "gumbo": (0x7C, 0xA1, 0xA6),
698 "gun powder": (0x41, 0x42, 0x57),
699 "gunsmoke": (0x82, 0x86, 0x85),
700 "gurkha": (0x9A, 0x95, 0x77),
701 "hacienda": (0x98, 0x81, 0x1B),
702 "hairy heath": (0x6B, 0x2A, 0x14),
703 "haiti": (0x1B, 0x10, 0x35),
704 "half and half": (0xFF, 0xFE, 0xE1),
705 "half baked": (0x85, 0xC4, 0xCC),
706 "half colonial white": (0xFD, 0xF6, 0xD3),
707 "half dutch white": (0xFE, 0xF7, 0xDE),
708 "half spanish white": (0xFE, 0xF4, 0xDB),
709 "hampton": (0xE5, 0xD8, 0xAF),
710 "harlequin": (0x3F, 0xFF, 0x00),
711 "harp": (0xE6, 0xF2, 0xEA),
712 "harvest gold": (0xE0, 0xB9, 0x74),
713 "havelock blue": (0x55, 0x90, 0xD9),
714 "hawaiian tan": (0x9D, 0x56, 0x16),
715 "hawkes blue": (0xD4, 0xE2, 0xFC),
716 "heath": (0x54, 0x10, 0x12),
717 "heather": (0xB7, 0xC3, 0xD0),
718 "heathered gray": (0xB6, 0xB0, 0x95),
719 "heavy metal": (0x2B, 0x32, 0x28),
720 "heliotrope": (0xDF, 0x73, 0xFF),
721 "hemlock": (0x5E, 0x5D, 0x3B),
722 "hemp": (0x90, 0x78, 0x74),
723 "hibiscus": (0xB6, 0x31, 0x6C),
724 "highland": (0x6F, 0x8E, 0x63),
725 "hillary": (0xAC, 0xA5, 0x86),
726 "himalaya": (0x6A, 0x5D, 0x1B),
727 "hint of green": (0xE6, 0xFF, 0xE9),
728 "hint of red": (0xFB, 0xF9, 0xF9),
729 "hint of yellow": (0xFA, 0xFD, 0xE4),
730 "hippie blue": (0x58, 0x9A, 0xAF),
731 "hippie green": (0x53, 0x82, 0x4B),
732 "hippie pink": (0xAE, 0x45, 0x60),
733 "hit gray": (0xA1, 0xAD, 0xB5),
734 "hit pink": (0xFF, 0xAB, 0x81),
735 "hokey pokey": (0xC8, 0xA5, 0x28),
736 "hoki": (0x65, 0x86, 0x9F),
737 "holly": (0x01, 0x1D, 0x13),
738 "hollywood cerise": (0xF4, 0x00, 0xA1),
739 "honey flower": (0x4F, 0x1C, 0x70),
740 "honeydew": (0xF0, 0xFF, 0xF0),
741 "honeysuckle": (0xED, 0xFC, 0x84),
742 "hopbush": (0xD0, 0x6D, 0xA1),
743 "horizon": (0x5A, 0x87, 0xA0),
744 "horses neck": (0x60, 0x49, 0x13),
745 "hot cinnamon": (0xD2, 0x69, 0x1E),
746 "hot pink": (0xFF, 0x69, 0xB4),
747 "hot toddy": (0xB3, 0x80, 0x07),
748 "humming bird": (0xCF, 0xF9, 0xF3),
749 "hunter green": (0x16, 0x1D, 0x10),
750 "hurricane": (0x87, 0x7C, 0x7B),
751 "husk": (0xB7, 0xA4, 0x58),
752 "ice cold": (0xB1, 0xF4, 0xE7),
753 "iceberg": (0xDA, 0xF4, 0xF0),
754 "illusion": (0xF6, 0xA4, 0xC9),
755 "inch worm": (0xB0, 0xE3, 0x13),
756 "indian khaki": (0xC3, 0xB0, 0x91),
757 "indian red": (0xCD, 0x5C, 0x5C),
758 "indian tan": (0x4D, 0x1E, 0x01),
759 "indigo": (0x4F, 0x69, 0xC6),
760 "indochine": (0xC2, 0x6B, 0x03),
761 "international orange": (0xFF, 0x4F, 0x00),
762 "irish coffee": (0x5F, 0x3D, 0x26),
763 "iroko": (0x43, 0x31, 0x20),
764 "iron": (0xD4, 0xD7, 0xD9),
765 "ironside gray": (0x67, 0x66, 0x62),
766 "ironstone": (0x86, 0x48, 0x3C),
767 "island spice": (0xFF, 0xFC, 0xEE),
768 "ivory": (0xFF, 0xFF, 0xF0),
769 "jacaranda": (0x2E, 0x03, 0x29),
770 "jacarta": (0x3A, 0x2A, 0x6A),
771 "jacko bean": (0x2E, 0x19, 0x05),
772 "jacksons purple": (0x20, 0x20, 0x8D),
773 "jade": (0x00, 0xA8, 0x6B),
774 "jaffa": (0xEF, 0x86, 0x3F),
775 "jagged ice": (0xC2, 0xE8, 0xE5),
776 "jagger": (0x35, 0x0E, 0x57),
777 "jaguar": (0x08, 0x01, 0x10),
778 "jambalaya": (0x5B, 0x30, 0x13),
779 "janna": (0xF4, 0xEB, 0xD3),
780 "japanese laurel": (0x0A, 0x69, 0x06),
781 "japanese maple": (0x78, 0x01, 0x09),
782 "japonica": (0xD8, 0x7C, 0x63),
783 "java": (0x1F, 0xC2, 0xC2),
784 "jazzberry jam": (0xA5, 0x0B, 0x5E),
785 "jelly bean": (0x29, 0x7B, 0x9A),
786 "jet stream": (0xB5, 0xD2, 0xCE),
787 "jewel": (0x12, 0x6B, 0x40),
788 "jon": (0x3B, 0x1F, 0x1F),
789 "jonquil": (0xEE, 0xFF, 0x9A),
790 "jordy blue": (0x8A, 0xB9, 0xF1),
791 "judge gray": (0x54, 0x43, 0x33),
792 "jumbo": (0x7C, 0x7B, 0x82),
793 "jungle green": (0x29, 0xAB, 0x87),
794 "jungle mist": (0xB4, 0xCF, 0xD3),
795 "juniper": (0x6D, 0x92, 0x92),
796 "just right": (0xEC, 0xCD, 0xB9),
797 "kabul": (0x5E, 0x48, 0x3E),
798 "kaitoke green": (0x00, 0x46, 0x20),
799 "kangaroo": (0xC6, 0xC8, 0xBD),
800 "karaka": (0x1E, 0x16, 0x09),
801 "karry": (0xFF, 0xEA, 0xD4),
802 "kashmir blue": (0x50, 0x70, 0x96),
803 "kelp": (0x45, 0x49, 0x36),
804 "kenyan copper": (0x7C, 0x1C, 0x05),
805 "keppel": (0x3A, 0xB0, 0x9E),
806 "key lime pie": (0xBF, 0xC9, 0x21),
807 "khaki": (0xF0, 0xE6, 0x8C),
808 "kidnapper": (0xE1, 0xEA, 0xD4),
809 "kilamanjaro": (0x24, 0x0C, 0x02),
810 "killarney": (0x3A, 0x6A, 0x47),
811 "kimberly": (0x73, 0x6C, 0x9F),
812 "kingfisher daisy": (0x3E, 0x04, 0x80),
813 "kiosk.house": (90, 95, 0),
814 "klein blue": (0x00, 0x2F, 0xA7),
815 "kobi": (0xE7, 0x9F, 0xC4),
816 "kokoda": (0x6E, 0x6D, 0x57),
817 "korma": (0x8F, 0x4B, 0x0E),
818 "koromiko": (0xFF, 0xBD, 0x5F),
819 "kournikova": (0xFF, 0xE7, 0x72),
820 "kumera": (0x88, 0x62, 0x21),
821 "la palma": (0x36, 0x87, 0x16),
822 "la rioja": (0xB3, 0xC1, 0x10),
823 "las palmas": (0xC6, 0xE6, 0x10),
824 "laser lemon": (0xFF, 0xFF, 0x66),
825 "laser": (0xC8, 0xB5, 0x68),
826 "laurel": (0x74, 0x93, 0x78),
827 "lavender blush": (0xFF, 0xF0, 0xF5),
828 "lavender gray": (0xBD, 0xBB, 0xD7),
829 "lavender magenta": (0xEE, 0x82, 0xEE),
830 "lavender pink": (0xFB, 0xAE, 0xD2),
831 "lavender purple": (0x96, 0x7B, 0xB6),
832 "lavender rose": (0xFB, 0xA0, 0xE3),
833 "lavender": (0xB5, 0x7E, 0xDC),
834 "lawn green": (0x7C, 0xFC, 0x00),
835 "leather": (0x96, 0x70, 0x59),
836 "lemon chiffon": (0xFF, 0xFA, 0xCD),
837 "lemon ginger": (0xAC, 0x9E, 0x22),
838 "lemon grass": (0x9B, 0x9E, 0x8F),
839 "lemon": (0xFD, 0xE9, 0x10),
840 "light apricot": (0xFD, 0xD5, 0xB1),
841 "light blue": (0xAD, 0xD8, 0xE6),
842 "light coral": (0xF0, 0x80, 0x80),
843 "light cyan": (0xE0, 0xFF, 0xFF),
844 "light goldenrod": (0xFA, 0xFA, 0xD2),
845 "light gray": (0x26, 0x23, 0x35),
846 "light green": (0x90, 0xEE, 0x90),
847 "light orchid": (0xE2, 0x9C, 0xD2),
848 "light pink": (0xDD, 0xB6, 0xC1),
849 "light salmon": (0xDD, 0xA0, 0x7A),
850 "light sea green": (0x20, 0xB2, 0xAA),
851 "light slate gray": (0x77, 0x88, 0x99),
852 "light steel blue": (0xB0, 0xC4, 0xDE),
853 "light wisteria": (0xC9, 0xA0, 0xDC),
854 "light yellow": (0xFF, 0xFF, 0xE0),
855 "lightning yellow": (0xFC, 0xC0, 0x1E),
856 "lilac bush": (0x98, 0x74, 0xD3),
857 "lilac": (0xC8, 0xA2, 0xC8),
858 "lily white": (0xE7, 0xF8, 0xFF),
859 "lily": (0xC8, 0xAA, 0xBF),
860 "lima": (0x76, 0xBD, 0x17),
861 "lime": (0xBF, 0xFF, 0x00),
862 "limeade": (0x6F, 0x9D, 0x02),
863 "limed ash": (0x74, 0x7D, 0x63),
864 "limed oak": (0xAC, 0x8A, 0x56),
865 "limed spruce": (0x39, 0x48, 0x51),
866 "linen": (0xFA, 0xF0, 0xE6),
867 "link water": (0xD9, 0xE4, 0xF5),
868 "lipstick": (0xAB, 0x05, 0x63),
869 "lisbon brown": (0x42, 0x39, 0x21),
870 "livid brown": (0x4D, 0x28, 0x2E),
871 "loafer": (0xEE, 0xF4, 0xDE),
872 "loblolly": (0xBD, 0xC9, 0xCE),
873 "lochinvar": (0x2C, 0x8C, 0x84),
874 "lochmara": (0x00, 0x7E, 0xC7),
875 "locust": (0xA8, 0xAF, 0x8E),
876 "log cabin": (0x24, 0x2A, 0x1D),
877 "logan": (0xAA, 0xA9, 0xCD),
878 "lola": (0xDF, 0xCF, 0xDB),
879 "london hue": (0xBE, 0xA6, 0xC3),
880 "lonestar": (0x6D, 0x01, 0x01),
881 "lotus": (0x86, 0x3C, 0x3C),
882 "loulou": (0x46, 0x0B, 0x41),
883 "lucky point": (0x1A, 0x1A, 0x68),
884 "lucky": (0xAF, 0x9F, 0x1C),
885 "lunar green": (0x3C, 0x49, 0x3A),
886 "luxor gold": (0xA7, 0x88, 0x2C),
887 "lynch": (0x69, 0x7E, 0x9A),
888 "mabel": (0xD9, 0xF7, 0xFF),
889 "macaroni and cheese": (0xFF, 0xB9, 0x7B),
890 "madang": (0xB7, 0xF0, 0xBE),
891 "madison": (0x09, 0x25, 0x5D),
892 "madras": (0x3F, 0x30, 0x02),
893 "magenta": (0xFF, 0x00, 0xFF),
894 "magic mint": (0xAA, 0xF0, 0xD1),
895 "magnolia": (0xF8, 0xF4, 0xFF),
896 "mahogany": (0x4E, 0x06, 0x06),
897 "mai tai": (0xB0, 0x66, 0x08),
898 "maize": (0xF5, 0xD5, 0xA0),
899 "makara": (0x89, 0x7D, 0x6D),
900 "mako": (0x44, 0x49, 0x54),
901 "malachite": (0x0B, 0xDA, 0x51),
902 "malibu": (0x7D, 0xC8, 0xF7),
903 "mallard": (0x23, 0x34, 0x18),
904 "malta": (0xBD, 0xB2, 0xA1),
905 "mamba": (0x8E, 0x81, 0x90),
906 "manatee": (0x8D, 0x90, 0xA1),
907 "mandalay": (0xAD, 0x78, 0x1B),
908 "mandy": (0xE2, 0x54, 0x65),
909 "mandys pink": (0xF2, 0xC3, 0xB2),
910 "mango tango": (0xE7, 0x72, 0x00),
911 "manhattan": (0xF5, 0xC9, 0x99),
912 "mantis": (0x74, 0xC3, 0x65),
913 "mantle": (0x8B, 0x9C, 0x90),
914 "manz": (0xEE, 0xEF, 0x78),
915 "mardi gras": (0x35, 0x00, 0x36),
916 "marigold yellow": (0xFB, 0xE8, 0x70),
917 "marigold": (0xB9, 0x8D, 0x28),
918 "mariner": (0x28, 0x6A, 0xCD),
919 "maroon flush": (0xC3, 0x21, 0x48),
920 "maroon oak": (0x52, 0x0C, 0x17),
921 "maroon": (0x80, 0x00, 0x00),
922 "marshland": (0x0B, 0x0F, 0x08),
923 "martini": (0xAF, 0xA0, 0x9E),
924 "martinique": (0x36, 0x30, 0x50),
925 "marzipan": (0xF8, 0xDB, 0x9D),
926 "masala": (0x40, 0x3B, 0x38),
927 "matisse": (0x1B, 0x65, 0x9D),
928 "matrix": (0xB0, 0x5D, 0x54),
929 "matterhorn": (0x4E, 0x3B, 0x41),
930 "mauve": (0xE0, 0xB0, 0xFF),
931 "mauvelous": (0xF0, 0x91, 0xA9),
932 "maverick": (0xD8, 0xC2, 0xD5),
933 "medium aquamarine": (0x66, 0xCD, 0xAA),
934 "medium blue": (0x00, 0x00, 0xCD),
935 "medium carmine": (0xAF, 0x40, 0x35),
936 "medium orchid": (0xBA, 0x55, 0xD3),
937 "medium purple": (0x93, 0x70, 0xDB),
938 "medium red violet": (0xBB, 0x33, 0x85),
939 "medium sea green": (0x3C, 0xB3, 0x71),
940 "medium slate blue": (0x7B, 0x68, 0xEE),
941 "medium spring green": (0x00, 0xFA, 0x9A),
942 "medium turquoise": (0x48, 0xD1, 0xCC),
943 "medium violet red": (0xC7, 0x15, 0x85),
944 "meerkat.cabin": (95, 0x00, 95),
945 "melanie": (0xE4, 0xC2, 0xD5),
946 "melanzane": (0x30, 0x05, 0x29),
947 "melon": (0xFE, 0xBA, 0xAD),
948 "melrose": (0xC7, 0xC1, 0xFF),
949 "mercury": (0xE5, 0xE5, 0xE5),
950 "merino": (0xF6, 0xF0, 0xE6),
951 "merlin": (0x41, 0x3C, 0x37),
952 "merlot": (0x83, 0x19, 0x23),
953 "metallic bronze": (0x49, 0x37, 0x1B),
954 "metallic copper": (0x71, 0x29, 0x1D),
955 "meteor": (0xD0, 0x7D, 0x12),
956 "meteorite": (0x3C, 0x1F, 0x76),
957 "mexican red": (0xA7, 0x25, 0x25),
958 "mid gray": (0x5F, 0x5F, 0x6E),
959 "midnight blue": (0x00, 0x33, 0x66),
960 "midnight moss": (0x04, 0x10, 0x04),
961 "midnight": (0x01, 0x16, 0x35),
962 "mikado": (0x2D, 0x25, 0x10),
963 "milan": (0xFA, 0xFF, 0xA4),
964 "milano red": (0xB8, 0x11, 0x04),
965 "milk punch": (0xFF, 0xF6, 0xD4),
966 "millbrook": (0x59, 0x44, 0x33),
967 "mimosa": (0xF8, 0xFD, 0xD3),
968 "mindaro": (0xE3, 0xF9, 0x88),
969 "mine shaft": (0x32, 0x32, 0x32),
970 "mineral green": (0x3F, 0x5D, 0x53),
971 "ming": (0x36, 0x74, 0x7D),
972 "minsk": (0x3F, 0x30, 0x7F),
973 "mint cream": (0xF5, 0xFF, 0xF1),
974 "mint green": (0x98, 0xFF, 0x98),
975 "mint julep": (0xF1, 0xEE, 0xC1),
976 "mint tulip": (0xC4, 0xF4, 0xEB),
977 "mirage": (0x16, 0x19, 0x28),
978 "mischka": (0xD1, 0xD2, 0xDD),
979 "mist gray": (0xC4, 0xC4, 0xBC),
980 "misty rose": (0xFF, 0xE4, 0xE1),
981 "mobster": (0x7F, 0x75, 0x89),
982 "moccaccino": (0x6E, 0x1D, 0x14),
983 "moccasin": (0xFF, 0xE4, 0xB5),
984 "mocha": (0x78, 0x2D, 0x19),
985 "mojo": (0xC0, 0x47, 0x37),
986 "mona lisa": (0xFF, 0xA1, 0x94),
987 "monarch": (0x8B, 0x07, 0x23),
988 "mondo": (0x4A, 0x3C, 0x30),
989 "mongoose": (0xB5, 0xA2, 0x7F),
990 "monsoon": (0x8A, 0x83, 0x89),
991 "monte carlo": (0x83, 0xD0, 0xC6),
992 "monza": (0xC7, 0x03, 0x1E),
993 "moody blue": (0x7F, 0x76, 0xD3),
994 "moon glow": (0xFC, 0xFE, 0xDA),
995 "moon mist": (0xDC, 0xDD, 0xCC),
996 "moon raker": (0xD6, 0xCE, 0xF6),
997 "morning glory": (0x9E, 0xDE, 0xE0),
998 "morocco brown": (0x44, 0x1D, 0x00),
999 "mortar": (0x50, 0x43, 0x51),
1000 "mosque": (0x03, 0x6A, 0x6E),
1001 "moss green": (0xAD, 0xDF, 0xAD),
1002 "mountain meadow": (0x1A, 0xB3, 0x85),
1003 "mountain mist": (0x95, 0x93, 0x96),
1004 "mountbatten pink": (0x99, 0x7A, 0x8D),
1005 "muddy waters": (0xB7, 0x8E, 0x5C),
1006 "muesli": (0xAA, 0x8B, 0x5B),
1007 "mulberry wood": (0x5C, 0x05, 0x36),
1008 "mulberry": (0xC5, 0x4B, 0x8C),
1009 "mule fawn": (0x8C, 0x47, 0x2F),
1010 "mulled wine": (0x4E, 0x45, 0x62),
1011 "mustard": (0xFF, 0xDB, 0x58),
1012 "my pink": (0xD6, 0x91, 0x88),
1013 "my sin": (0xFF, 0xB3, 0x1F),
1014 "mystic": (0xE2, 0xEB, 0xED),
1015 "nandor": (0x4B, 0x5D, 0x52),
1016 "napa": (0xAC, 0xA4, 0x94),
1017 "narvik": (0xED, 0xF9, 0xF1),
1018 "natural gray": (0x8B, 0x86, 0x80),
1019 "navajo white": (0xFF, 0xDE, 0xAD),
1020 "navy blue": (0x00, 0x00, 0x80),
1021 "navy": (0x00, 0x00, 0x80),
1022 "nebula": (0xCB, 0xDB, 0xD6),
1023 "negroni": (0xFF, 0xE2, 0xC5),
1024 "neon carrot": (0xFF, 0x99, 0x33),
1025 "nepal": (0x8E, 0xAB, 0xC1),
1026 "neptune": (0x7C, 0xB7, 0xBB),
1027 "nero": (0x14, 0x06, 0x00),
1028 "nevada": (0x64, 0x6E, 0x75),
1029 "new orleans": (0xF3, 0xD6, 0x9D),
1030 "new york pink": (0xD7, 0x83, 0x7F),
1031 "niagara": (0x06, 0xA1, 0x89),
1032 "night rider": (0x1F, 0x12, 0x0F),
1033 "night shadz": (0xAA, 0x37, 0x5A),
1034 "nile blue": (0x19, 0x37, 0x51),
1035 "nobel": (0xB7, 0xB1, 0xB1),
1036 "nomad": (0xBA, 0xB1, 0xA2),
1037 "norway": (0xA8, 0xBD, 0x9F),
1038 "nugget": (0xC5, 0x99, 0x22),
1039 "nutmeg wood finish": (0x68, 0x36, 0x00),
1040 "nutmeg": (0x81, 0x42, 0x2C),
1041 "oasis": (0xFE, 0xEF, 0xCE),
1042 "observatory": (0x02, 0x86, 0x6F),
1043 "ocean green": (0x41, 0xAA, 0x78),
1044 "ochre": (0xCC, 0x77, 0x22),
1045 "off green": (0xE6, 0xF8, 0xF3),
1046 "off yellow": (0xFE, 0xF9, 0xE3),
1047 "oil": (0x28, 0x1E, 0x15),
1048 "old brick": (0x90, 0x1E, 0x1E),
1049 "old copper": (0x72, 0x4A, 0x2F),
1050 "old gold": (0xCF, 0xB5, 0x3B),
1051 "old lace": (0xFD, 0xF5, 0xE6),
1052 "old lavender": (0x79, 0x68, 0x78),
1053 "old rose": (0xC0, 0x80, 0x81),
1054 "olive drab": (0x6B, 0x8E, 0x23),
1055 "olive green": (0xB5, 0xB3, 0x5C),
1056 "olive haze": (0x8B, 0x84, 0x70),
1057 "olive": (0x80, 0x80, 0x00),
1058 "olivetone": (0x71, 0x6E, 0x10),
1059 "olivine": (0x9A, 0xB9, 0x73),
1060 "onahau": (0xCD, 0xF4, 0xFF),
1061 "onion": (0x2F, 0x27, 0x0E),
1062 "opal": (0xA9, 0xC6, 0xC2),
1063 "opium": (0x8E, 0x6F, 0x70),
1064 "oracle": (0x37, 0x74, 0x75),
1065 "orange peel": (0xFF, 0xA0, 0x00),
1066 "orange red": (0xFF, 0x45, 0x00),
1067 "orange roughy": (0xC4, 0x57, 0x19),
1068 "orange white": (0xFE, 0xFC, 0xED),
1069 "orange": (0xFF, 0x68, 0x1F),
1070 "orchid white": (0xFF, 0xFD, 0xF3),
1071 "orchid": (0xDA, 0x70, 0xD6),
1072 "oregon": (0x9B, 0x47, 0x03),
1073 "orient": (0x01, 0x5E, 0x85),
1074 "oriental pink": (0xC6, 0x91, 0x91),
1075 "orinoco": (0xF3, 0xFB, 0xD4),
1076 "oslo gray": (0x87, 0x8D, 0x91),
1077 "ottoman": (0xE9, 0xF8, 0xED),
1078 "outer space": (0x2D, 0x38, 0x3A),
1079 "outrageous orange": (0xFF, 0x60, 0x37),
1080 "oxford blue": (0x38, 0x45, 0x55),
1081 "oxley": (0x77, 0x9E, 0x86),
1082 "oyster bay": (0xDA, 0xFA, 0xFF),
1083 "oyster pink": (0xE9, 0xCE, 0xCD),
1084 "paarl": (0xA6, 0x55, 0x29),
1085 "pablo": (0x77, 0x6F, 0x61),
1086 "pacific blue": (0x00, 0x9D, 0xC4),
1087 "pacifika": (0x77, 0x81, 0x20),
1088 "paco": (0x41, 0x1F, 0x10),
1089 "padua": (0xAD, 0xE6, 0xC4),
1090 "pale canary": (0xFF, 0xFF, 0x99),
1091 "pale goldenrod": (0xEE, 0xE8, 0xAA),
1092 "pale green": (0x98, 0xFB, 0x98),
1093 "pale leaf": (0xC0, 0xD3, 0xB9),
1094 "pale oyster": (0x98, 0x8D, 0x77),
1095 "pale prim": (0xFD, 0xFE, 0xB8),
1096 "pale rose": (0xFF, 0xE1, 0xF2),
1097 "pale sky": (0x6E, 0x77, 0x83),
1098 "pale slate": (0xC3, 0xBF, 0xC1),
1099 "pale turquoise": (0xAF, 0xEE, 0xEE),
1100 "pale violet red": (0xDB, 0x70, 0x93),
1101 "palm green": (0x09, 0x23, 0x0F),
1102 "palm leaf": (0x19, 0x33, 0x0E),
1103 "pampas": (0xF4, 0xF2, 0xEE),
1104 "panache": (0xEA, 0xF6, 0xEE),
1105 "pancho": (0xED, 0xCD, 0xAB),
1106 "papaya whip": (0xFF, 0xEF, 0xD5),
1107 "paprika": (0x8D, 0x02, 0x26),
1108 "paradiso": (0x31, 0x7D, 0x82),
1109 "parchment": (0xF1, 0xE9, 0xD2),
1110 "paris daisy": (0xFF, 0xF4, 0x6E),
1111 "paris m": (0x26, 0x05, 0x6A),
1112 "paris white": (0xCA, 0xDC, 0xD4),
1113 "parsley": (0x13, 0x4F, 0x19),
1114 "pastel green": (0x77, 0xDD, 0x77),
1115 "pastel pink": (0xFF, 0xD1, 0xDC),
1116 "patina": (0x63, 0x9A, 0x8F),
1117 "pattens blue": (0xDE, 0xF5, 0xFF),
1118 "paua": (0x26, 0x03, 0x68),
1119 "pavlova": (0xD7, 0xC4, 0x98),
1120 "peach cream": (0xFF, 0xF0, 0xDB),
1121 "peach orange": (0xFF, 0xCC, 0x99),
1122 "peach puff": (0xFF, 0xDA, 0xB9),
1123 "peach schnapps": (0xFF, 0xDC, 0xD6),
1124 "peach yellow": (0xFA, 0xDF, 0xAD),
1125 "peach": (0xFF, 0xE5, 0xB4),
1126 "peanut": (0x78, 0x2F, 0x16),
1127 "pear": (0xD1, 0xE2, 0x31),
1128 "pearl bush": (0xE8, 0xE0, 0xD5),
1129 "pearl lusta": (0xFC, 0xF4, 0xDC),
1130 "peat": (0x71, 0x6B, 0x56),
1131 "pelorous": (0x3E, 0xAB, 0xBF),
1132 "peppermint": (0xE3, 0xF5, 0xE1),
1133 "perano": (0xA9, 0xBE, 0xF2),
1134 "perfume": (0xD0, 0xBE, 0xF8),
1135 "periglacial blue": (0xE1, 0xE6, 0xD6),
1136 "periwinkle gray": (0xC3, 0xCD, 0xE6),
1137 "periwinkle": (0xCC, 0xCC, 0xFF),
1138 "persian blue": (0x1C, 0x39, 0xBB),
1139 "persian green": (0x00, 0xA6, 0x93),
1140 "persian indigo": (0x32, 0x12, 0x7A),
1141 "persian pink": (0xF7, 0x7F, 0xBE),
1142 "persian plum": (0x70, 0x1C, 0x1C),
1143 "persian red": (0xCC, 0x33, 0x33),
1144 "persian rose": (0xFE, 0x28, 0xA2),
1145 "persimmon": (0xFF, 0x6B, 0x53),
1146 "peru tan": (0x7F, 0x3A, 0x02),
1147 "peru": (0xCD, 0x85, 0x3F),
1148 "pesto": (0x7C, 0x76, 0x31),
1149 "petite orchid": (0xDB, 0x96, 0x90),
1150 "pewter": (0x96, 0xA8, 0xA1),
1151 "pharlap": (0xA3, 0x80, 0x7B),
1152 "picasso": (0xFF, 0xF3, 0x9D),
1153 "pickled bean": (0x6E, 0x48, 0x26),
1154 "pickled bluewood": (0x31, 0x44, 0x59),
1155 "picton blue": (0x45, 0xB1, 0xE8),
1156 "pig pink": (0xFD, 0xD7, 0xE4),
1157 "pigeon post": (0xAF, 0xBD, 0xD9),
1158 "pigment indigo": (0x4B, 0x00, 0x82),
1159 "pine cone": (0x6D, 0x5E, 0x54),
1160 "pine glade": (0xC7, 0xCD, 0x90),
1161 "pine green": (0x01, 0x79, 0x6F),
1162 "pine tree": (0x17, 0x1F, 0x04),
1163 "pink flamingo": (0xFF, 0x66, 0xFF),
1164 "pink flare": (0xE1, 0xC0, 0xC8),
1165 "pink lace": (0xFF, 0xDD, 0xF4),
1166 "pink lady": (0xFF, 0xF1, 0xD8),
1167 "pink salmon": (0xFF, 0x91, 0xA4),
1168 "pink swan": (0xBE, 0xB5, 0xB7),
1169 "pink": (0xFF, 0xC0, 0xCB),
1170 "piper": (0xC9, 0x63, 0x23),
1171 "pipi": (0xFE, 0xF4, 0xCC),
1172 "pippin": (0xFF, 0xE1, 0xDF),
1173 "pirate gold": (0xBA, 0x7F, 0x03),
1174 "pistachio": (0x9D, 0xC2, 0x09),
1175 "pixie green": (0xC0, 0xD8, 0xB6),
1176 "pizazz": (0xFF, 0x90, 0x00),
1177 "pizza": (0xC9, 0x94, 0x15),
1178 "plantation": (0x27, 0x50, 0x4B),
1179 "plum": (0x84, 0x31, 0x79),
1180 "pohutukawa": (0x8F, 0x02, 0x1C),
1181 "polar": (0xE5, 0xF9, 0xF6),
1182 "polo blue": (0x8D, 0xA8, 0xCC),
1183 "pomegranate": (0xF3, 0x47, 0x23),
1184 "pompadour": (0x66, 0x00, 0x45),
1185 "porcelain": (0xEF, 0xF2, 0xF3),
1186 "porsche": (0xEA, 0xAE, 0x69),
1187 "port gore": (0x25, 0x1F, 0x4F),
1188 "portafino": (0xFF, 0xFF, 0xB4),
1189 "portage": (0x8B, 0x9F, 0xEE),
1190 "portica": (0xF9, 0xE6, 0x63),
1191 "pot pourri": (0xF5, 0xE7, 0xE2),
1192 "potters clay": (0x8C, 0x57, 0x38),
1193 "powder ash": (0xBC, 0xC9, 0xC2),
1194 "powder blue": (0xB0, 0xE0, 0xE6),
1195 "prairie sand": (0x9A, 0x38, 0x20),
1196 "prelude": (0xD0, 0xC0, 0xE5),
1197 "prim": (0xF0, 0xE2, 0xEC),
1198 "primrose": (0xED, 0xEA, 0x99),
1199 "provincial pink": (0xFE, 0xF5, 0xF1),
1200 "prussian blue": (0x00, 0x31, 0x53),
1201 "puce": (0xCC, 0x88, 0x99),
1202 "pueblo": (0x7D, 0x2C, 0x14),
1203 "puerto rico": (0x3F, 0xC1, 0xAA),
1204 "pumice": (0xC2, 0xCA, 0xC4),
1205 "pumpkin skin": (0xB1, 0x61, 0x0B),
1206 "pumpkin": (0xFF, 0x75, 0x18),
1207 "punch": (0xDC, 0x43, 0x33),
1208 "punga": (0x4D, 0x3D, 0x14),
1209 "purple heart": (0x65, 0x2D, 0xC1),
1210 "purple mountain's majesty": (0x96, 0x78, 0xB6),
1211 "purple pizzazz": (0xFF, 0x00, 0xCC),
1212 "purple": (0x66, 0x00, 0x99),
1213 "putty": (0xE7, 0xCD, 0x8C),
1214 "quarter pearl lusta": (0xFF, 0xFD, 0xF4),
1215 "quarter spanish white": (0xF7, 0xF2, 0xE1),
1216 "quicksand": (0xBD, 0x97, 0x8E),
1217 "quill gray": (0xD6, 0xD6, 0xD1),
1218 "quincy": (0x62, 0x3F, 0x2D),
1219 "racing green": (0x0C, 0x19, 0x11),
1220 "radical red": (0xFF, 0x35, 0x5E),
1221 "raffia": (0xEA, 0xDA, 0xB8),
1222 "rainee": (0xB9, 0xC8, 0xAC),
1223 "rajah": (0xF7, 0xB6, 0x68),
1224 "rangitoto": (0x2E, 0x32, 0x22),
1225 "rangoon green": (0x1C, 0x1E, 0x13),
1226 "raven": (0x72, 0x7B, 0x89),
1227 "raw sienna": (0xD2, 0x7D, 0x46),
1228 "raw umber": (0x73, 0x4A, 0x12),
1229 "razzle dazzle rose": (0xFF, 0x33, 0xCC),
1230 "razzmatazz": (0xE3, 0x0B, 0x5C),
1231 "rebecca purple": (0x66, 0x33, 0x99),
1232 "rebel": (0x3C, 0x12, 0x06),
1233 "red beech": (0x7B, 0x38, 0x01),
1234 "red berry": (0x8E, 0x00, 0x00),
1235 "red damask": (0xDA, 0x6A, 0x41),
1236 "red devil": (0x86, 0x01, 0x11),
1237 "red orange": (0xFF, 0x3F, 0x34),
1238 "red oxide": (0x6E, 0x09, 0x02),
1239 "red ribbon": (0xED, 0x0A, 0x3F),
1240 "red robin": (0x80, 0x34, 0x1F),
1241 "red stage": (0xD0, 0x5F, 0x04),
1242 "red violet": (0xC7, 0x15, 0x85),
1243 "red": (0xFF, 0x00, 0x00),
1244 "redwood": (0x5D, 0x1E, 0x0F),
1245 "reef gold": (0x9F, 0x82, 0x1C),
1246 "reef": (0xC9, 0xFF, 0xA2),
1247 "regal blue": (0x01, 0x3F, 0x6A),
1248 "regent gray": (0x86, 0x94, 0x9F),
1249 "regent st blue": (0xAA, 0xD6, 0xE6),
1250 "remy": (0xFE, 0xEB, 0xF3),
1251 "reno sand": (0xA8, 0x65, 0x15),
1252 "resolution blue": (0x00, 0x23, 0x87),
1253 "revolver": (0x2C, 0x16, 0x32),
1254 "rhino": (0x2E, 0x3F, 0x62),
1255 "rice cake": (0xFF, 0xFE, 0xF0),
1256 "rice flower": (0xEE, 0xFF, 0xE2),
1257 "rich gold": (0xA8, 0x53, 0x07),
1258 "rio grande": (0xBB, 0xD0, 0x09),
1259 "ripe lemon": (0xF4, 0xD8, 0x1C),
1260 "ripe plum": (0x41, 0x00, 0x56),
1261 "riptide": (0x8B, 0xE6, 0xD8),
1262 "river bed": (0x43, 0x4C, 0x59),
1263 "rob roy": (0xEA, 0xC6, 0x74),
1264 "robin's egg blue": (0x00, 0xCC, 0xCC),
1265 "rock blue": (0x9E, 0xB1, 0xCD),
1266 "rock spray": (0xBA, 0x45, 0x0C),
1267 "rock": (0x4D, 0x38, 0x33),
1268 "rodeo dust": (0xC9, 0xB2, 0x9B),
1269 "rolling stone": (0x74, 0x7D, 0x83),
1270 "roman coffee": (0x79, 0x5D, 0x4C),
1271 "roman": (0xDE, 0x63, 0x60),
1272 "romance": (0xFF, 0xFE, 0xFD),
1273 "romantic": (0xFF, 0xD2, 0xB7),
1274 "ronchi": (0xEC, 0xC5, 0x4E),
1275 "roof terracotta": (0xA6, 0x2F, 0x20),
1276 "rope": (0x8E, 0x4D, 0x1E),
1277 "rose bud cherry": (0x80, 0x0B, 0x47),
1278 "rose bud": (0xFB, 0xB2, 0xA3),
1279 "rose fog": (0xE7, 0xBC, 0xB4),
1280 "rose of sharon": (0xBF, 0x55, 0x00),
1281 "rose white": (0xFF, 0xF6, 0xF5),
1282 "rose": (0xFF, 0x00, 0x7F),
1283 "rosewood": (0x65, 0x00, 0x0B),
1284 "rosy blue": (0xBC, 0x8F, 0x8F),
1285 "roti": (0xC6, 0xA8, 0x4B),
1286 "rouge": (0xA2, 0x3B, 0x6C),
1287 "royal blue": (0x41, 0x69, 0xE1),
1288 "royal heath": (0xAB, 0x34, 0x72),
1289 "royal purple": (0x6B, 0x3F, 0xA0),
1290 "rpi": (208, 95, 0),
1291 "rum swizzle": (0xF9, 0xF8, 0xE4),
1292 "rum": (0x79, 0x69, 0x89),
1293 "russet": (0x80, 0x46, 0x1B),
1294 "russett": (0x75, 0x5A, 0x57),
1295 "rust": (0xB7, 0x41, 0x0E),
1296 "rustic red": (0x48, 0x04, 0x04),
1297 "rusty nail": (0x86, 0x56, 0x0A),
1298 "saddle brown": (0x58, 0x34, 0x01),
1299 "saddle": (0x4C, 0x30, 0x24),
1300 "saffron mango": (0xF9, 0xBF, 0x58),
1301 "saffron": (0xF4, 0xC4, 0x30),
1302 "sage": (0x9E, 0xA5, 0x87),
1303 "sahara sand": (0xF1, 0xE7, 0x88),
1304 "sahara": (0xB7, 0xA2, 0x14),
1305 "sail": (0xB8, 0xE0, 0xF9),
1306 "salem": (0x09, 0x7F, 0x4B),
1307 "salmon": (0xFF, 0x8C, 0x69),
1308 "salomie": (0xFE, 0xDB, 0x8D),
1309 "salt box": (0x68, 0x5E, 0x6E),
1310 "saltpan": (0xF1, 0xF7, 0xF2),
1311 "sambuca": (0x3A, 0x20, 0x10),
1312 "san felix": (0x0B, 0x62, 0x07),
1313 "san juan": (0x30, 0x4B, 0x6A),
1314 "san marino": (0x45, 0x6C, 0xAC),
1315 "sand dune": (0x82, 0x6F, 0x65),
1316 "sandal": (0xAA, 0x8D, 0x6F),
1317 "sandrift": (0xAB, 0x91, 0x7A),
1318 "sandstone": (0x79, 0x6D, 0x62),
1319 "sandwisp": (0xF5, 0xE7, 0xA2),
1320 "sandy beach": (0xFF, 0xEA, 0xC8),
1321 "sandy brown": (0xF4, 0xA4, 0x60),
1322 "sangria": (0x92, 0x00, 0x0A),
1323 "sanguine brown": (0x8D, 0x3D, 0x38),
1324 "santa fe": (0xB1, 0x6D, 0x52),
1325 "santas gray": (0x9F, 0xA0, 0xB1),
1326 "sapling": (0xDE, 0xD4, 0xA4),
1327 "sapphire": (0x2F, 0x51, 0x9E),
1328 "saratoga": (0x55, 0x5B, 0x10),
1329 "satin linen": (0xE6, 0xE4, 0xD4),
1330 "sauvignon": (0xFF, 0xF5, 0xF3),
1331 "sazerac": (0xFF, 0xF4, 0xE0),
1332 "scampi": (0x67, 0x5F, 0xA6),
1333 "scandal": (0xCF, 0xFA, 0xF4),
1334 "scarlet gum": (0x43, 0x15, 0x60),
1335 "scarlet": (0xFF, 0x24, 0x00),
1336 "scarlett": (0x95, 0x00, 0x15),
1337 "scarpa flow": (0x58, 0x55, 0x62),
1338 "schist": (0xA9, 0xB4, 0x97),
1339 "school bus yellow": (0xFF, 0xD8, 0x00),
1340 "schooner": (0x8B, 0x84, 0x7E),
1341 "science blue": (0x00, 0x66, 0xCC),
1342 "scooter": (0x2E, 0xBF, 0xD4),
1343 "scorpion": (0x69, 0x5F, 0x62),
1344 "scotch mist": (0xFF, 0xFB, 0xDC),
1345 "screamin' green": (0x66, 0xFF, 0x66),
1346 "sea buckthorn": (0xFB, 0xA1, 0x29),
1347 "sea green": (0x2E, 0x8B, 0x57),
1348 "sea mist": (0xC5, 0xDB, 0xCA),
1349 "sea nymph": (0x78, 0xA3, 0x9C),
1350 "sea pink": (0xED, 0x98, 0x9E),
1351 "seagull": (0x80, 0xCC, 0xEA),
1352 "seance": (0x73, 0x1E, 0x8F),
1353 "seashell peach": (0xFF, 0xF5, 0xEE),
1354 "seashell": (0xF1, 0xF1, 0xF1),
1355 "seaweed": (0x1B, 0x2F, 0x11),
1356 "selago": (0xF0, 0xEE, 0xFD),
1357 "selective yellow": (0xFF, 0xBA, 0x00),
1358 "sepia black": (0x2B, 0x02, 0x02),
1359 "sepia skin": (0x9E, 0x5B, 0x40),
1360 "sepia": (0x70, 0x42, 0x14),
1361 "serenade": (0xFF, 0xF4, 0xE8),
1362 "shadow green": (0x9A, 0xC2, 0xB8),
1363 "shadow": (0x83, 0x70, 0x50),
1364 "shady lady": (0xAA, 0xA5, 0xA9),
1365 "shakespeare": (0x4E, 0xAB, 0xD1),
1366 "shalimar": (0xFB, 0xFF, 0xBA),
1367 "shamrock": (0x33, 0xCC, 0x99),
1368 "shark": (0x25, 0x27, 0x2C),
1369 "sherpa blue": (0x00, 0x49, 0x50),
1370 "sherwood green": (0x02, 0x40, 0x2C),
1371 "shilo": (0xE8, 0xB9, 0xB3),
1372 "shingle fawn": (0x6B, 0x4E, 0x31),
1373 "ship cove": (0x78, 0x8B, 0xBA),
1374 "ship gray": (0x3E, 0x3A, 0x44),
1375 "shiraz": (0xB2, 0x09, 0x31),
1376 "shocking pink": (0xFC, 0x0F, 0xC0),
1377 "shocking": (0xE2, 0x92, 0xC0),
1378 "shuttle gray": (0x5F, 0x66, 0x72),
1379 "siam": (0x64, 0x6A, 0x54),
1380 "sidecar": (0xF3, 0xE7, 0xBB),
1381 "sienna": (0xA0, 0x52, 0x2D),
1382 "silk": (0xBD, 0xB1, 0xA8),
1383 "silver chalice": (0xAC, 0xAC, 0xAC),
1384 "silver rust": (0xC9, 0xC0, 0xBB),
1385 "silver sand": (0xBF, 0xC1, 0xC2),
1386 "silver tree": (0x66, 0xB5, 0x8F),
1387 "silver": (0xC0, 0xC0, 0xC0),
1388 "sinbad": (0x9F, 0xD7, 0xD3),
1389 "siren": (0x7A, 0x01, 0x3A),
1390 "sirocco": (0x71, 0x80, 0x80),
1391 "sisal": (0xD3, 0xCB, 0xBA),
1392 "skeptic": (0xCA, 0xE6, 0xDA),
1393 "sky blue": (0x76, 0xD7, 0xEA),
1394 "slate blue": (0x6A, 0x5A, 0xCD),
1395 "slate gray": (0x70, 0x80, 0x90),
1396 "smalt blue": (0x51, 0x80, 0x8F),
1397 "smalt": (0x00, 0x33, 0x99),
1398 "smoky": (0x60, 0x5B, 0x73),
1399 "snow drift": (0xF7, 0xFA, 0xF7),
1400 "snow flurry": (0xE4, 0xFF, 0xD1),
1401 "snow": (0xFF, 0xFA, 0xFA),
1402 "snowy mint": (0xD6, 0xFF, 0xDB),
1403 "snuff": (0xE2, 0xD8, 0xED),
1404 "soapstone": (0xFF, 0xFB, 0xF9),
1405 "soft amber": (0xD1, 0xC6, 0xB4),
1406 "soft peach": (0xF5, 0xED, 0xEF),
1407 "solid pink": (0x89, 0x38, 0x43),
1408 "solitaire": (0xFE, 0xF8, 0xE2),
1409 "solitude": (0xEA, 0xF6, 0xFF),
1410 "sorbus": (0xFD, 0x7C, 0x07),
1411 "sorrell brown": (0xCE, 0xB9, 0x8F),
1412 "soya bean": (0x6A, 0x60, 0x51),
1413 "spanish green": (0x81, 0x98, 0x85),
1414 "spectra": (0x2F, 0x5A, 0x57),
1415 "spice": (0x6A, 0x44, 0x2E),
1416 "spicy mix": (0x88, 0x53, 0x42),
1417 "spicy mustard": (0x74, 0x64, 0x0D),
1418 "spicy pink": (0x81, 0x6E, 0x71),
1419 "spindle": (0xB6, 0xD1, 0xEA),
1420 "spray": (0x79, 0xDE, 0xEC),
1421 "spring green": (0x00, 0xFF, 0x7F),
1422 "spring leaves": (0x57, 0x83, 0x63),
1423 "spring rain": (0xAC, 0xCB, 0xB1),
1424 "spring sun": (0xF6, 0xFF, 0xDC),
1425 "spring wood": (0xF8, 0xF6, 0xF1),
1426 "sprout": (0xC1, 0xD7, 0xB0),
1427 "spun pearl": (0xAA, 0xAB, 0xB7),
1428 "squirrel": (0x8F, 0x81, 0x76),
1429 "st tropaz": (0x2D, 0x56, 0x9B),
1430 "stack": (0x8A, 0x8F, 0x8A),
1431 "star dust": (0x9F, 0x9F, 0x9C),
1432 "stark white": (0xE5, 0xD7, 0xBD),
1433 "starship": (0xEC, 0xF2, 0x45),
1434 "steel blue": (0x46, 0x82, 0xB4),
1435 "steel gray": (0x26, 0x23, 0x35),
1436 "stiletto": (0x9C, 0x33, 0x36),
1437 "stonewall": (0x92, 0x85, 0x73),
1438 "storm dust": (0x64, 0x64, 0x63),
1439 "storm gray": (0x71, 0x74, 0x86),
1440 "stratos": (0x00, 0x07, 0x41),
1441 "straw": (0xD4, 0xBF, 0x8D),
1442 "strikemaster": (0x95, 0x63, 0x87),
1443 "stromboli": (0x32, 0x5D, 0x52),
1444 "studio": (0x71, 0x4A, 0xB2),
1445 "submarine": (0xBA, 0xC7, 0xC9),
1446 "sugar cane": (0xF9, 0xFF, 0xF6),
1447 "sulu": (0xC1, 0xF0, 0x7C),
1448 "summer green": (0x96, 0xBB, 0xAB),
1449 "sun": (0xFB, 0xAC, 0x13),
1450 "sundance": (0xC9, 0xB3, 0x5B),
1451 "sundown": (0xFF, 0xB1, 0xB3),
1452 "sunflower": (0xE4, 0xD4, 0x22),
1453 "sunglo": (0xE1, 0x68, 0x65),
1454 "sunglow": (0xFF, 0xCC, 0x33),
1455 "sunset orange": (0xFE, 0x4C, 0x40),
1456 "sunshade": (0xFF, 0x9E, 0x2C),
1457 "supernova": (0xFF, 0xC9, 0x01),
1458 "surf crest": (0xCF, 0xE5, 0xD2),
1459 "surf": (0xBB, 0xD7, 0xC1),
1460 "surfie green": (0x0C, 0x7A, 0x79),
1461 "sushi": (0x87, 0xAB, 0x39),
1462 "suva gray": (0x88, 0x83, 0x87),
1463 "swamp green": (0xAC, 0xB7, 0x8E),
1464 "swamp": (0x00, 0x1B, 0x1C),
1465 "swans down": (0xDC, 0xF0, 0xEA),
1466 "sweet corn": (0xFB, 0xEA, 0x8C),
1467 "sweet pink": (0xFD, 0x9F, 0xA2),
1468 "swirl": (0xD3, 0xCD, 0xC5),
1469 "swiss coffee": (0xDD, 0xD6, 0xD5),
1470 "sycamore": (0x90, 0x8D, 0x39),
1471 "tabasco": (0xA0, 0x27, 0x12),
1472 "tacao": (0xED, 0xB3, 0x81),
1473 "tacha": (0xD6, 0xC5, 0x62),
1474 "tahiti gold": (0xE9, 0x7C, 0x07),
1475 "tahuna sands": (0xEE, 0xF0, 0xC8),
1476 "tall poppy": (0xB3, 0x2D, 0x29),
1477 "tallow": (0xA8, 0xA5, 0x89),
1478 "tamarillo": (0x99, 0x16, 0x13),
1479 "tamarind": (0x34, 0x15, 0x15),
1480 "tan hide": (0xFA, 0x9D, 0x5A),
1481 "tan": (0xD2, 0xB4, 0x8C),
1482 "tana": (0xD9, 0xDC, 0xC1),
1483 "tangaroa": (0x03, 0x16, 0x3C),
1484 "tangerine": (0xF2, 0x85, 0x00),
1485 "tango": (0xED, 0x7A, 0x1C),
1486 "tapa": (0x7B, 0x78, 0x74),
1487 "tapestry": (0xB0, 0x5E, 0x81),
1488 "tara": (0xE1, 0xF6, 0xE8),
1489 "tarawera": (0x07, 0x3A, 0x50),
1490 "tasman": (0xCF, 0xDC, 0xCF),
1491 "taupe gray": (0xB3, 0xAF, 0x95),
1492 "taupe": (0x48, 0x3C, 0x32),
1493 "tawny port": (0x69, 0x25, 0x45),
1494 "te papa green": (0x1E, 0x43, 0x3C),
1495 "tea green": (0xD0, 0xF0, 0xC0),
1496 "tea": (0xC1, 0xBA, 0xB0),
1497 "teak": (0xB1, 0x94, 0x61),
1498 "teal blue": (0x04, 0x42, 0x59),
1499 "teal": (0x00, 0x80, 0x80),
1500 "temptress": (0x3B, 0x00, 0x0B),
1501 "tenn": (0xCD, 0x57, 0x00),
1502 "tequila": (0xFF, 0xE6, 0xC7),
1503 "terracotta": (0xE2, 0x72, 0x5B),
1504 "texas rose": (0xFF, 0xB5, 0x55),
1505 "texas": (0xF8, 0xF9, 0x9C),
1506 "thatch green": (0x40, 0x3D, 0x19),
1507 "thatch": (0xB6, 0x9D, 0x98),
1508 "thistle green": (0xCC, 0xCA, 0xA8),
1509 "thistle": (0xD8, 0xBF, 0xD8),
1510 "thunder": (0x33, 0x29, 0x2F),
1511 "thunderbird": (0xC0, 0x2B, 0x18),
1512 "tia maria": (0xC1, 0x44, 0x0E),
1513 "tiara": (0xC3, 0xD1, 0xD1),
1514 "tiber": (0x06, 0x35, 0x37),
1515 "tickle me pink": (0xFC, 0x80, 0xA5),
1516 "tidal": (0xF1, 0xFF, 0xAD),
1517 "tide": (0xBF, 0xB8, 0xB0),
1518 "timber green": (0x16, 0x32, 0x2C),
1519 "timberwolf": (0xD9, 0xD6, 0xCF),
1520 "titan white": (0xF0, 0xEE, 0xFF),
1521 "toast": (0x9A, 0x6E, 0x61),
1522 "tobacco brown": (0x71, 0x5D, 0x47),
1523 "toledo": (0x3A, 0x00, 0x20),
1524 "tolopea": (0x1B, 0x02, 0x45),
1525 "tom thumb": (0x3F, 0x58, 0x3B),
1526 "tomato": (0xFF, 0x63, 0x47),
1527 "tonys pink": (0xE7, 0x9F, 0x8C),
1528 "topaz": (0x7C, 0x77, 0x8A),
1529 "torch red": (0xFD, 0x0E, 0x35),
1530 "torea bay": (0x0F, 0x2D, 0x9E),
1531 "tory blue": (0x14, 0x50, 0xAA),
1532 "tosca": (0x8D, 0x3F, 0x3F),
1533 "totem pole": (0x99, 0x1B, 0x07),
1534 "tower gray": (0xA9, 0xBD, 0xBF),
1535 "tradewind": (0x5F, 0xB3, 0xAC),
1536 "tranquil": (0xE6, 0xFF, 0xFF),
1537 "travertine": (0xFF, 0xFD, 0xE8),
1538 "tree poppy": (0xFC, 0x9C, 0x1D),
1539 "treehouse": (0x3B, 0x28, 0x20),
1540 "trendy green": (0x7C, 0x88, 0x1A),
1541 "trendy pink": (0x8C, 0x64, 0x95),
1542 "trinidad": (0xE6, 0x4E, 0x03),
1543 "tropical blue": (0xC3, 0xDD, 0xF9),
1544 "tropical rain forest": (0x00, 0x75, 0x5E),
1545 "trout": (0x4A, 0x4E, 0x5A),
1546 "true v": (0x8A, 0x73, 0xD6),
1547 "tuatara": (0x36, 0x35, 0x34),
1548 "tuft bush": (0xFF, 0xDD, 0xCD),
1549 "tulip tree": (0xEA, 0xB3, 0x3B),
1550 "tumbleweed": (0xDE, 0xA6, 0x81),
1551 "tuna": (0x35, 0x35, 0x42),
1552 "tundora": (0x4A, 0x42, 0x44),
1553 "turbo": (0xFA, 0xE6, 0x00),
1554 "turkish rose": (0xB5, 0x72, 0x81),
1555 "turmeric": (0xCA, 0xBB, 0x48),
1556 "turquoise blue": (0x6C, 0xDA, 0xE7),
1557 "turquoise": (0x30, 0xD5, 0xC8),
1558 "turtle green": (0x2A, 0x38, 0x0B),
1559 "tuscany": (0xBD, 0x5E, 0x2E),
1560 "tusk": (0xEE, 0xF3, 0xC3),
1561 "tussock": (0xC5, 0x99, 0x4B),
1562 "tutu": (0xFF, 0xF1, 0xF9),
1563 "twilight blue": (0xEE, 0xFD, 0xFF),
1564 "twilight": (0xE4, 0xCF, 0xDE),
1565 "twine": (0xC2, 0x95, 0x5D),
1566 "tyrian purple": (0x66, 0x02, 0x3C),
1567 "ultramarine": (0x12, 0x0A, 0x8F),
1568 "valencia": (0xD8, 0x44, 0x37),
1569 "valentino": (0x35, 0x0E, 0x42),
1570 "valhalla": (0x2B, 0x19, 0x4F),
1571 "van cleef": (0x49, 0x17, 0x0C),
1572 "vanilla ice": (0xF3, 0xD9, 0xDF),
1573 "vanilla": (0xD1, 0xBE, 0xA8),
1574 "varden": (0xFF, 0xF6, 0xDF),
1575 "venetian red": (0x72, 0x01, 0x0F),
1576 "venice blue": (0x05, 0x59, 0x89),
1577 "venus": (0x92, 0x85, 0x90),
1578 "verdigris": (0x5D, 0x5E, 0x37),
1579 "verdun green": (0x49, 0x54, 0x00),
1580 "vermilion": (0xFF, 0x4D, 0x00),
1581 "vesuvius": (0xB1, 0x4A, 0x0B),
1582 "victoria": (0x53, 0x44, 0x91),
1583 "vida loca": (0x54, 0x90, 0x19),
1584 "viking": (0x64, 0xCC, 0xDB),
1585 "vin rouge": (0x98, 0x3D, 0x61),
1586 "viola": (0xCB, 0x8F, 0xA9),
1587 "violent violet": (0x29, 0x0C, 0x5E),
1588 "violet eggplant": (0x99, 0x11, 0x99),
1589 "violet red": (0xF7, 0x46, 0x8A),
1590 "violet": (0x24, 0x0A, 0x40),
1591 "viridian green": (0x67, 0x89, 0x75),
1592 "viridian": (0x40, 0x82, 0x6D),
1593 "vis vis": (0xFF, 0xEF, 0xA1),
1594 "vista blue": (0x8F, 0xD6, 0xB4),
1595 "vista white": (0xFC, 0xF8, 0xF7),
1596 "vivid tangerine": (0xFF, 0x99, 0x80),
1597 "vivid violet": (0x80, 0x37, 0x90),
1598 "voodoo": (0x53, 0x34, 0x55),
1599 "vulcan": (0x10, 0x12, 0x1D),
1600 "wafer": (0xDE, 0xCB, 0xC6),
1601 "waikawa gray": (0x5A, 0x6E, 0x9C),
1602 "waiouru": (0x36, 0x3C, 0x0D),
1603 "walnut": (0x77, 0x3F, 0x1A),
1604 "wannabe.house": (0x00, 0x00, 95),
1605 "wasabi": (0x78, 0x8A, 0x25),
1606 "water leaf": (0xA1, 0xE9, 0xDE),
1607 "watercourse": (0x05, 0x6F, 0x57),
1608 "waterloo ": (0x7B, 0x7C, 0x94),
1609 "wattle": (0xDC, 0xD7, 0x47),
1610 "watusi": (0xFF, 0xDD, 0xCF),
1611 "wax flower": (0xFF, 0xC0, 0xA8),
1612 "we peep": (0xF7, 0xDB, 0xE6),
1613 "web orange": (0xFF, 0xA5, 0x00),
1614 "wedgewood": (0x4E, 0x7F, 0x9E),
1615 "well read": (0xB4, 0x33, 0x32),
1616 "west coast": (0x62, 0x51, 0x19),
1617 "west side": (0xFF, 0x91, 0x0F),
1618 "westar": (0xDC, 0xD9, 0xD2),
1619 "wewak": (0xF1, 0x9B, 0xAB),
1620 "wheat": (0xF5, 0xDE, 0xB3),
1621 "wheatfield": (0xF3, 0xED, 0xCF),
1622 "whiskey": (0xD5, 0x9A, 0x6F),
1623 "whisper": (0xF7, 0xF5, 0xFA),
1624 "white ice": (0xDD, 0xF9, 0xF1),
1625 "white lilac": (0xF8, 0xF7, 0xFC),
1626 "white linen": (0xF8, 0xF0, 0xE8),
1627 "white pointer": (0xFE, 0xF8, 0xFF),
1628 "white rock": (0xEA, 0xE8, 0xD4),
1629 "white smoke": (0xF5, 0xF5, 0xF5),
1630 "white": (0xFF, 0xFF, 0xFF),
1631 "wild blue yonder": (0x7A, 0x89, 0xB8),
1632 "wild rice": (0xEC, 0xE0, 0x90),
1633 "wild sand": (0xF4, 0xF4, 0xF4),
1634 "wild strawberry": (0xFF, 0x33, 0x99),
1635 "wild watermelon": (0xFD, 0x5B, 0x78),
1636 "wild willow": (0xB9, 0xC4, 0x6A),
1637 "william": (0x3A, 0x68, 0x6C),
1638 "willow brook": (0xDF, 0xEC, 0xDA),
1639 "willow grove": (0x65, 0x74, 0x5D),
1640 "windsor": (0x3C, 0x08, 0x78),
1641 "wine berry": (0x59, 0x1D, 0x35),
1642 "winter hazel": (0xD5, 0xD1, 0x95),
1643 "wisp pink": (0xFE, 0xF4, 0xF8),
1644 "wisteria": (0x97, 0x71, 0xB5),
1645 "wistful": (0xA4, 0xA6, 0xD3),
1646 "witch haze": (0xFF, 0xFC, 0x99),
1647 "wood bark": (0x26, 0x11, 0x05),
1648 "woodland": (0x4D, 0x53, 0x28),
1649 "woodrush": (0x30, 0x2A, 0x0F),
1650 "woodsmoke": (0x0C, 0x0D, 0x0F),
1651 "woody brown": (0x48, 0x31, 0x31),
1652 "xanadu": (0x73, 0x86, 0x78),
1653 "yellow green": (0xC5, 0xE1, 0x7A),
1654 "yellow metal": (0x71, 0x63, 0x38),
1655 "yellow orange": (0xFF, 0xAE, 0x42),
1656 "yellow sea": (0xFE, 0xA9, 0x04),
1657 "yellow": (0xFF, 0xFF, 0x00),
1658 "your pink": (0xFF, 0xC3, 0xC0),
1659 "yukon gold": (0x7B, 0x66, 0x08),
1660 "yuma": (0xCE, 0xC2, 0x91),
1661 "zambezi": (0x68, 0x55, 0x58),
1662 "zanah": (0xDA, 0xEC, 0xD6),
1663 "zest": (0xE5, 0x84, 0x1B),
1664 "zeus": (0x29, 0x23, 0x19),
1665 "ziggurat": (0xBF, 0xDB, 0xE2),
1666 "zinnwaldite": (0xEB, 0xC2, 0xAF),
1667 "zircon": (0xF4, 0xF8, 0xFF),
1668 "zombie": (0xE4, 0xD6, 0x9B),
1669 "zorba": (0xA5, 0x9B, 0x91),
1670 "zuccini": (0x04, 0x40, 0x22),
1671 "zumthor": (0xED, 0xF6, 0xFF),
1676 """Clear screen ANSI escape sequence"""
1680 def clear_screen() -> str:
1681 """Clear screen ANSI escape sequence"""
1685 def clear_line() -> str:
1686 """Clear the current line ANSI escape sequence"""
1691 """Reset text attributes to 'normal'"""
1695 def normal() -> str:
1696 """Reset text attributes to 'normal'"""
1701 """Set text to bold"""
1705 def italic() -> str:
1706 """Set text to italic"""
1710 def italics() -> str:
1711 """Set text to italic"""
1715 def underline() -> str:
1716 """Set text to underline"""
1720 def strikethrough() -> str:
1721 """Set text to strikethrough"""
1725 def strike_through() -> str:
1726 """Set text to strikethrough"""
1727 return strikethrough()
1730 def is_16color(num: int) -> bool:
1731 """Is num a valid 16 color number?"""
1732 return num in (255, 128)
1735 def is_216color(num: int) -> bool:
1736 """Is num a valid 256 color number?"""
1737 return num in set([0, 95, 135, 175, 223, 255])
1740 def _simple_color_number(red: int, green: int, blue: int) -> int:
1741 """Construct a simple color number"""
1745 return b << 2 | g << 1 | r
1748 def fg_16color(red: int, green: int, blue: int) -> str:
1749 """Set foreground color using 16 color mode"""
1750 code = _simple_color_number(red, green, blue) + 30
1758 if bright_count > 1:
1760 return f"
\e[{code}m"
1763 def bg_16color(red: int, green: int, blue: int) -> str:
1764 """Set background using 16 color mode"""
1765 code = _simple_color_number(red, green, blue) + 40
1773 if bright_count > 1:
1775 return f"
\e[{code}m"
1778 def _pixel_to_216color(n: int) -> int:
1792 def fg_216color(red: int, green: int, blue: int) -> str:
1793 """Set foreground using 216 color mode"""
1794 r = _pixel_to_216color(red)
1795 g = _pixel_to_216color(green)
1796 b = _pixel_to_216color(blue)
1797 code = 16 + r * 36 + g * 6 + b
1798 return f"
\e[38;5;{code}m"
1801 def bg_216color(red: int, green: int, blue: int) -> str:
1802 """Set background using 216 color mode"""
1803 r = _pixel_to_216color(red)
1804 g = _pixel_to_216color(green)
1805 b = _pixel_to_216color(blue)
1806 code = 16 + r * 36 + g * 6 + b
1807 return f"
\e[48;5;{code}m"
1810 def fg_24bit(red: int, green: int, blue: int) -> str:
1811 """Set foreground using 24bit color mode"""
1812 return f"
\e[38;2;{red};{green};{blue}m"
1815 def bg_24bit(red: int, green: int, blue: int) -> str:
1816 """Set background using 24bit color mode"""
1817 return f"
\e[48;2;{red};{green};{blue}m"
1820 def _find_color_by_name(name: str) -> Tuple[int, int, int]:
1821 rgb = COLOR_NAMES_TO_RGB.get(name.lower(), None)
1823 name = guess_name(name)
1824 rgb = COLOR_NAMES_TO_RGB.get(name.lower(), None)
1825 assert rgb is not None
1829 @logging_utils.squelch_repeated_log_messages(1)
1831 name: Optional[str] = "",
1832 red: Optional[int] = None,
1833 green: Optional[int] = None,
1834 blue: Optional[int] = None,
1836 force_16color: bool = False,
1837 force_216color: bool = False,
1839 """Return the ANSI escape sequence to change the foreground color
1840 being printed. Target colors may be indicated by name or R/G/B.
1841 Result will use the 16 or 216 color scheme if force_16color or
1842 force_216color are passed (respectively). Otherwise the code will
1843 do what it thinks best.
1846 name: the name of the color to set
1847 red: the color to set's red component value
1848 green: the color to set's green component value
1849 blue: the color to set's blue component value
1850 force_16color: force fg to use 16 color mode
1851 force_216color: force fg to use 216 color mode
1854 String containing the ANSI escape sequence to set desired foreground
1856 >>> import string_utils as su
1857 >>> su.to_base64(fg('blue'))
1858 b'G1szODs1OzIxbQ==\\n'
1860 if name is not None and name == 'reset':
1863 if name is not None and string_utils.is_full_string(name):
1864 rgb = _find_color_by_name(name)
1870 force_16color=force_16color,
1871 force_216color=force_216color,
1880 if (is_16color(red) and is_16color(green) and is_16color(blue)) or force_16color:
1881 logger.debug("Using 16-color strategy")
1882 return fg_16color(red, green, blue)
1883 if (is_216color(red) and is_216color(green) and is_216color(blue)) or force_216color:
1884 logger.debug("Using 216-color strategy")
1885 return fg_216color(red, green, blue)
1886 logger.debug("Using 24-bit color strategy")
1887 return fg_24bit(red, green, blue)
1890 def _rgb_to_yiq(rgb: Tuple[int, int, int]) -> int:
1891 return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) // 1000
1894 def _contrast(rgb: Tuple[int, int, int]) -> Tuple[int, int, int]:
1895 if _rgb_to_yiq(rgb) < 128:
1896 return (0xFF, 0xFF, 0xFF)
1900 def pick_contrasting_color(
1901 name: Optional[str] = "",
1902 red: Optional[int] = None,
1903 green: Optional[int] = None,
1904 blue: Optional[int] = None,
1905 ) -> Tuple[int, int, int]:
1906 """This method will return a red, green, blue tuple representing a
1907 contrasting color given the red, green, blue of a background
1908 color or a color name of the background color.
1911 name: the name of the color to contrast
1912 red: the color to contrast's red component value
1913 green: the color to contrast's green component value
1914 blue: the color to contrast's blue component value
1917 An RGB tuple containing a contrasting color
1919 >>> pick_contrasting_color(None, 20, 20, 20)
1922 >>> pick_contrasting_color("white")
1926 if name is not None and string_utils.is_full_string(name):
1927 rgb = _find_color_by_name(name)
1929 r = red if red is not None else 0
1930 g = green if green is not None else 0
1931 b = blue if blue is not None else 0
1933 assert rgb is not None
1934 return _contrast(rgb)
1937 def guess_name(name: str) -> str:
1938 """Try to guess what color the user is talking about"""
1941 for possibility in COLOR_NAMES_TO_RGB:
1942 r = difflib.SequenceMatcher(None, name, possibility).ratio()
1943 if max_ratio is None or r > max_ratio:
1945 best_guess = possibility
1946 assert best_guess is not None
1947 logger.debug("Best guess at color name is %s", best_guess)
1951 @logging_utils.squelch_repeated_log_messages(1)
1953 name: Optional[str] = "",
1954 red: Optional[int] = None,
1955 green: Optional[int] = None,
1956 blue: Optional[int] = None,
1958 force_16color: bool = False,
1959 force_216color: bool = False,
1961 """Returns an ANSI color code for changing the current background
1965 name: the name of the color to set
1966 red: the color to set's red component value
1967 green: the color to set's green component value
1968 blue: the color to set's blue component value
1969 force_16color: force bg to use 16 color mode
1970 force_216color: force bg to use 216 color mode
1972 >>> import string_utils as su
1973 >>> su.to_base64(bg("red")) # b'\x1b[48;5;196m'
1974 b'G1s0ODs1OzE5Nm0=\\n'
1976 if name is not None and name == 'reset':
1979 if name is not None and string_utils.is_full_string(name):
1980 rgb = _find_color_by_name(name)
1986 force_16color=force_16color,
1987 force_216color=force_216color,
1995 if (is_16color(red) and is_16color(green) and is_16color(blue)) or force_16color:
1996 logger.debug("Using 16-color strategy")
1997 return bg_16color(red, green, blue)
1998 if (is_216color(red) and is_216color(green) and is_216color(blue)) or force_216color:
1999 logger.debug("Using 216-color strategy")
2000 return bg_216color(red, green, blue)
2001 logger.debug("Using 24-bit color strategy")
2002 return bg_24bit(red, green, blue)
2005 class StdoutInterceptor(io.TextIOBase, contextlib.AbstractContextManager):
2006 """An interceptor for data written to stdout. Use as a context."""
2010 self.saved_stdout: io.TextIO = None
2014 def write(self, s: str):
2017 def __enter__(self):
2018 self.saved_stdout = sys.stdout
2022 def __exit__(self, *args) -> Literal[False]:
2023 sys.stdout = self.saved_stdout
2028 class ProgrammableColorizer(StdoutInterceptor):
2029 """A colorizing interceptor; pass it re.Patterns -> methods that do
2030 something (usually add color to) the match.
2036 patterns: Iterable[Tuple[re.Pattern, Callable[[Any, re.Pattern], str]]],
2039 self.patterns = list(patterns)
2042 def write(self, s: str):
2043 for pattern in self.patterns:
2044 s = pattern[0].sub(pattern[1], s)
2048 if __name__ == '__main__':
2055 name = " ".join(sys.argv[1:])
2056 for possibility in COLOR_NAMES_TO_RGB:
2057 if name in possibility:
2060 _ = pick_contrasting_color(possibility)
2061 xf = fg(None, _[0], _[1], _[2])
2062 xb = bg(None, _[0], _[1], _[2])
2063 print(f'{f}{xb}{possibility}{reset()}\t\t\t' f'{b}{xf}{possibility}{reset()}')