+
     i$  c                  sJ  a  0 t $ ^ RIHt ^ RIt^ RIHt ^RIHt ]R R l4       t]R R l4       t	/ R	R
bRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRR bR!R"bR#R$bR%R&bR'R(bR)R*b/ R+R,bR-R.bR/R0bR1RbR2R3bR4R5bR6R7bR8R9bR:R9bR;R<bR=R>bR?R@bRARBbRCRDbRERFbRGRHbRIRJbC/ RKRLbRMRNbRORPbRQRPbRRRSbRTRUbRVRWbRXRYbRZR[bR\R[bR]R^bR_R`bRaRbbRcRdbReRfbRgRhbRiRjbC/ RkRlbRmRnbRoRpbRqRpbRrRsbRtRubRvRwbRxRybRzR{bR|R}bR~RbRRbRRbRRbRRbRRbRRbC/ RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbC/ RRfbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbC/ RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbC/ RRbRRbRRbRRbRRbRRbRRbRRbRER bERERbERERbERERbERERbER	ER
bERER
bERERbERERbCERERERERERERERERERERERERERERERERER ER!ER"ER#ER$ER%ER&ER'/Ct
ER(]ER)&   R# (*  i    )annotationsN)	lru_cache)Imagec               s     V ^8  d   QhRRRR/# )   colorstrreturnz0tuple[int, int, int] | tuple[int, int, int, int] Zformat   "5/usr/lib64/python3.14/site-packages/PIL/ImageColor.py__annotate__r      s     a a# aJ a    c           	     s   \        V 4      ^d8  d   Rp\        V4      hV P                  4       p \        P	                  V R4      pV'       d/   \        V\        4      '       d   V# \        V4      pV\        V &   V# \        P                  ! RV 4      '       dN   \        V ^,          ^,          ^4      \        V ^,          ^,          ^4      \        V ^,          ^,          ^4      3# \        P                  ! RV 4      '       dg   \        V ^,          ^,          ^4      \        V ^,          ^,          ^4      \        V ^,          ^,          ^4      \        V ^,          ^,          ^4      3# \        P                  ! RV 4      '       d9   \        V R,          ^4      \        V R,          ^4      \        V R,          ^4      3# \        P                  ! R	V 4      '       dK   \        V R,          ^4      \        V R,          ^4      \        V R,          ^4      \        V R
,          ^4      3# \        P                  ! RV 4      pV'       dN   \        VP                  ^4      4      \        VP                  ^4      4      \        VP                  ^4      4      3# \        P                  ! RV 4      pV'       d   \        \        VP                  ^4      4      ^,          R,          R,           4      \        \        VP                  ^4      4      ^,          R,          R,           4      \        \        VP                  ^4      4      ^,          R,          R,           4      3# \        P                  ! RV 4      pV'       d   ^ RIHp V! \        VP                  ^4      4      R,          \        VP                  ^4      4      R,          \        VP                  ^4      4      R,          4      p\        V^ ,          ^,          R,           4      \        V^,          ^,          R,           4      \        V^,          ^,          R,           4      3# \        P                  ! RV 4      pV'       d   ^ RIHp V! \        VP                  ^4      4      R,          \        VP                  ^4      4      R,          \        VP                  ^4      4      R,          4      p\        V^ ,          ^,          R,           4      \        V^,          ^,          R,           4      \        V^,          ^,          R,           4      3# \        P                  ! RV 4      pV'       dg   \        VP                  ^4      4      \        VP                  ^4      4      \        VP                  ^4      4      \        VP                  ^4      4      3# R\!        V 4       2p\        V4      h)z
 Convert a color string to an RGB or RGBA tuple. If the string cannot be
 parsed, this function raises a :py:exc:`ValueError` exception.

.. versionadded:: 1.1.4

:param color: A color string
:return: ``(red, green, blue[, alpha])``
zcolor specifier is too longNz#[a-f0-9]{3}$z#[a-f0-9]{4}$z#[a-f0-9]{6}$:i      N:r      N:r      Nz#[a-f0-9]{8}$:r   i	   Nz+rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$z.rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$g      Y@g      ?z?hsl\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$)
hls_to_rgbg     v@zBhs[bv]\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$)
hsv_to_rgbz8rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$zunknown color specifier: )lenZ
ValueErrorZlowercolormapZgetZ
isinstanceZtuplegetrgbreZmatchintZgroupcolorsysr   Zfloatr   Zrepr)r   ZmsgrgbZ	rgb_tupleZmr   Z
rgb_floatsr   s   &       r
   r   r      sP    5zC+oKKME
,,ud
#C
c5!!J3K	# 
xx''58a<$c%(Q,&;SqAr=RRR	xx''a1b!a1b!a1b!a1b!	
 	
 
xx''5:r"Cc
B$7U3Z9LLL	xx''c
Bc
Bc
Bc
B	
 	
 	?GA1771:AGGAJQWWQZ@@
BEJAQWWQZ3&%/#56QWWQZ3&%/#56QWWQZ3&%/#56
 	
 	JE	A 	'!''!*%!''!*%!''!*%

 
1#c)*
1#c)*
1#c)*
 	
 	Mu	A 	'!''!*%!''!*%!''!*%

 
1#c)*
1#c)*
1#c)*
 	
 	LeTA1771:AGGAJQWWQZ#aggaj/QQ%d5k]
3C
S/r   c               s$    V ^8  d   QhRRRRRR/# )r   r   r   moder   zint | tuple[int, ...]r   r   r	   r
   r   r      s"     $ $C $s $'< $r   c                s.   \        V 4      ^r2\        V4      ^8X  d   V^,          pVR,          pVR8X  dc   ^ RIHp Vw  rVpV! V^,          V^,          V^,          4      w  rp
\	        V^,          4      \	        V	^,          4      \	        V
^,          4      3# \
        P                  ! V4      R8X  dL   Vw  rVpVR,          VR,          ,           VR,          ,           R,           ^,	          pVR
,          R	8X  d   W3# V# VR
,          R	8X  d
   W#3,           # V# )a  
Same as :py:func:`~PIL.ImageColor.getrgb` for most modes. However, if
``mode`` is HSV, converts the RGB value to a HSV value, or if ``mode`` is
not color or a palette image, converts the RGB value to a grayscale value.
If the string cannot be parsed, this function raises a :py:exc:`ValueError`
exception.

.. versionadded:: 1.1.4

:param color: A color string
:param mode: Convert result to this mode
:return: ``graylevel, (graylevel, alpha) or (red, green, blue[, alpha])``
:Nr   NZHSV)
rgb_to_hsvZLiL  iF  i/  i   ZAi)r   r   r   r   r   r   Zgetmodebase)r   r   r   Zalphar   ZrZgZbZhZsZvZ	graylevels   &&          r
   getcolorr      s      
3x1}A"gu}'aQWa#gq3w7a1s7|SS\3q3w<77			4	 C	'a YU*QX5>2E	8s?##	bSX~Jr   Z	alicebluez#f0f8ffZantiquewhitez#faebd7Zaquaz#00ffffZ
aquamarinez#7fffd4Zazurez#f0ffffZbeigez#f5f5dcZbisquez#ffe4c4Zblackz#000000Zblanchedalmondz#ffebcdZbluez#0000ffZ
bluevioletz#8a2be2Zbrownz#a52a2aZ	burlywoodz#deb887Z	cadetbluez#5f9ea0Z
chartreusez#7fff00Z	chocolatez#d2691eZcoralz#ff7f50Zcornflowerbluez#6495edZcornsilkz#fff8dcZcrimsonz#dc143cZcyanZdarkbluez#00008bZdarkcyanz#008b8bZdarkgoldenrodz#b8860bZdarkgrayz#a9a9a9ZdarkgreyZ	darkgreenz#006400Z	darkkhakiz#bdb76bZdarkmagentaz#8b008bZdarkolivegreenz#556b2fZ
darkorangez#ff8c00Z
darkorchidz#9932ccZdarkredz#8b0000Z
darksalmonz#e9967aZdarkseagreenz#8fbc8fZdarkslatebluez#483d8bZdarkslategrayz#2f4f4fZdarkslategreyZdarkturquoisez#00ced1Z
darkvioletz#9400d3Zdeeppinkz#ff1493Zdeepskybluez#00bfffZdimgrayz#696969ZdimgreyZ
dodgerbluez#1e90ffZ	firebrickz#b22222Zfloralwhitez#fffaf0Zforestgreenz#228b22Zfuchsiaz#ff00ffZ	gainsboroz#dcdcdcZ
ghostwhitez#f8f8ffZgoldz#ffd700Z	goldenrodz#daa520Zgrayz#808080ZgreyZgreenz#008000Zgreenyellowz#adff2fZhoneydewz#f0fff0Zhotpinkz#ff69b4Z	indianredz#cd5c5cZindigoz#4b0082Zivoryz#fffff0Zkhakiz#f0e68cZlavenderz#e6e6faZlavenderblushz#fff0f5Z	lawngreenz#7cfc00Zlemonchiffonz#fffacdZ	lightbluez#add8e6Z
lightcoralz#f08080Z	lightcyanz#e0ffffZlightgoldenrodyellowz#fafad2Z
lightgreenz#90ee90Z	lightgrayz#d3d3d3Z	lightgreyZ	lightpinkz#ffb6c1Zlightsalmonz#ffa07aZlightseagreenz#20b2aaZlightskybluez#87cefaZlightslategrayz#778899ZlightslategreyZlightsteelbluez#b0c4deZlightyellowz#ffffe0Zlimez#00ff00Z	limegreenz#32cd32Zlinenz#faf0e6ZmagentaZmaroonz#800000Zmediumaquamarinez#66cdaaZ
mediumbluez#0000cdZmediumorchidz#ba55d3Zmediumpurplez#9370dbZmediumseagreenz#3cb371Zmediumslatebluez#7b68eeZmediumspringgreenz#00fa9aZmediumturquoisez#48d1ccZmediumvioletredz#c71585Zmidnightbluez#191970Z	mintcreamz#f5fffaZ	mistyrosez#ffe4e1Zmoccasinz#ffe4b5Znavajowhitez#ffdeadZnavyz#000080Zoldlacez#fdf5e6Zolivez#808000Z	olivedrabz#6b8e23Zorangez#ffa500Z	orangeredz#ff4500Zorchidz#da70d6Zpalegoldenrodz#eee8aaZ	palegreenz#98fb98Zpaleturquoisez#afeeeeZpalevioletredz#db7093Z
papayawhipz#ffefd5Z	peachpuffz#ffdab9Zperuz#cd853fZpinkz#ffc0cbZplumz#dda0ddZ
powderbluez#b0e0e6Zpurplez#800080Zrebeccapurplez#663399Zredz#ff0000Z	rosybrownz#bc8f8fZ	royalbluez#4169e1Zsaddlebrownz#8b4513Zsalmonz#fa8072Z
sandybrownz#f4a460Zseagreenz#2e8b57Zseashellz#fff5eeZsiennaz#a0522dZsilverz#c0c0c0Zskybluez#87ceebZ	slatebluez#6a5acdZ	slategrayz#708090Z	slategreyZsnowz#fffafaZspringgreenz#00ff7fZ	steelbluez#4682b4Ztanz#d2b48cZtealz#008080Zthistlez#d8bfd8Ztomatoz#ff6347Z	turquoisez#40e0d0Zvioletz#ee82eeZwheatz#f5deb3Zwhitez#ffffffZ
whitesmokez#f5f5f5Zyellowz#ffff00Zyellowgreenz#9acd32z%dict[str, str | tuple[int, int, int]]r   )__conditional_annotations__Z
__future__r    r   Z	functoolsr   Z r   r   r   r   Z__annotations__)r   s   @r
   <module>r      sZ  & # " 	   a aH $ $NX3 	X3
 IX3 IX3 )X3 YX3 YX3 iX3 YX3 iX3 IX3 )X3 YX3  !X3" #X3$ )%X3& 'X3( Y)X3* i+X3, 	-X3. y/X30 I1X32 	3X34 	5X36 Y7X38 	9X3: 	;X3< =X3> ?X3@ 9AX3B iCX3D )EX3F )GX3H yIX3J )KX3L IMX3N YOX3P YQX3R YSX3T YUX3V )WX3X 	YX3Z 9[X3\ y]X3^ y_X3` )aX3b cX3d 9eX3f 9gX3h yiX3j kX3l )mX3n IoX3p qX3r IsX3t IuX3v YwX3x 9yX3z 	{X3| y}X3~ X3@ iAX3B YCX3D YEX3F 	GX3H YIX3J KX3L IMX3N OX3P )QX3R SX3T IUX3V )WX3X YX3Z [X3\ ]X3^ 9_X3` YaX3b IcX3d ieX3f igX3h iiX3j 9kX3l ImX3n oX3p YqX3r ysX3t iuX3v 	wX3x )yX3z I{X3| I}X3~ iX3@ yAX3B CX3D yEX3F yGX3H IIX3J KX3L MX3N 	OX3P 9QX3R ISX3T yUX3V YWX3X YX3Z i[X3\ ]X3^ i_X3` YaX3b cX3d YeX3f YgX3h )iX3j kX3l ImX3n IoX3p IqX3r )sX3t iuX3v YwX3x 
9yX3z {X3| }X3~ 9X3@ iAX3B )CX3D 	EX3F 	GX3H iIX3J iKX3L yMX3N OX3P QX3R SX3T IUX3V 9WX3X 	9
IyiiYY)i9oX3
/ Xr   