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