ó
    Eñi�  ã                  óÔ   • S r SSKJr  SSKJrJrJrJr  SSKJ	r	  Sr
\
(       a  SSKJr  SSKJr  S	r SS
 jrSS jrSS jrSS jrSS jr\\\\\/r  " S S5      r " S S\5      rg)z·
Stuff to translate curve segments to palette values (derived from
the corresponding code in GIMP, written by Federico Mena Quintero.
See the GIMP distribution for more information.)
é    )Úannotations)ÚlogÚpiÚsinÚsqrté   )Úo8F)ÚCallable)ÚIOg»½×Ùß|Û=c                óp   • X::  a  U [         :  a  gSU-  U -  $ X-
  nSU -
  n U [         :  a  gSSU-  U -  -   $ )Ng        ç      à?ç      ð?)ÚEPSILON©ÚmiddleÚposs     ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/GimpGradientFile.pyÚlinearr   %   sP   € Ø
ƒ}Ø”GÓØà˜‘9˜vÑ%Ð%à‰lˆØ�v‘ˆØ”GÓØà˜˜s™ VÑ+Ñ+Ð+ó    c                óR   • U[        S5      [        [        U [        5      5      -  -  $ )Nr   )r   Úmaxr   r   s     r   Úcurvedr   4   s"   € Ø”3�s“8œc¤# f¬gÓ"6Ó7Ñ7Ñ8Ð8r   c                óZ   • [        [        * S-  [        [        X5      -  -   5      S-   S-  $ )Ng       @r   )r   r   r   r   s     r   Úsiner   8   s,   € Ü”"��s‘œb¤6¨&Ó#6Ñ6Ñ6Ó7¸#Ñ=ÀÑDÐDr   c                ó<   • [        S[        X5      S-
  S-  -
  5      $ ©Nr   é   ©r   r   r   s     r   Úsphere_increasingr   <   s!   € Ü�”v˜fÓ*¨SÑ0°QÑ6Ñ6Ó7Ð7r   c                ó<   • S[        S[        X5      S-  -
  5      -
  $ r   r   r   s     r   Úsphere_decreasingr!   @   s!   € Ø”�cœF 6Ó/°1Ñ4Ñ4Ó5Ñ5Ð5r   c                  ó2   • \ rS rSr% SrS\S'   SSS jjrSrg)	ÚGradientFileéH   Nzblist[tuple[float, float, float, list[float], list[float], Callable[[float, float], float]]] | NoneÚgradientc           	     óÚ  • U R                   c   e/ nSnU R                   U   u  pEpgp‰[        U5       GH#  n
X¡S-
  -  nX[:  a  US-  nU R                   U   u  pEpgp‰X[:  a  M  XT-
  nU[        :  a
  U	" SS5      nOU	" Xd-
  U-  X´-
  U-  5      n[        [	        SUS   US   -
  U-  US   -   -  S-   5      5      n[        [	        SUS   US   -
  U-  US   -   -  S-   5      5      n[        [	        SUS   US   -
  U-  US   -   -  S-   5      5      n[        [	        SUS   US   -
  U-  US   -   -  S-   5      5      nUR                  Xï-   U-   U-   5        GM&     SR                  U5      S4$ )	Nr   r   r   éÿ   r   é   r   ÚRGBA)r%   Úranger   r	   ÚintÚappendÚjoin)ÚselfÚentriesÚpaletteÚixÚx0Úx1ÚxmÚrgb0Úrgb1ÚsegmentÚiÚxÚwÚscaleÚrÚgÚbÚas                     r   Ú
getpaletteÚGradientFile.getpaletteW   s©  € Ø�}‰}Ñ(Ð(Ð(ØˆàˆØ*.¯-©-¸Ñ*;Ñ'ˆ�˜$ä�w—ˆAØ˜q‘[Ñ!ˆAà“&Ø�a‘�Ø26·-±-ÀÑ2CÑ/�˜ $ð •&ð ‘ˆAà”7‹{Ù  SÓ)‘á ¡¨A¡°±¸!©|Ó<�ô ”3�s˜t A™w¨¨a©Ñ0°EÑ9¸DÀ¹GÑCÑDÀsÑJÓKÓLˆAÜ”3�s˜t A™w¨¨a©Ñ0°EÑ9¸DÀ¹GÑCÑDÀsÑJÓKÓLˆAÜ”3�s˜t A™w¨¨a©Ñ0°EÑ9¸DÀ¹GÑCÑDÀsÑJÓKÓLˆAÜ”3�s˜t A™w¨¨a©Ñ0°EÑ9¸DÀ¹GÑCÑDÀsÑJÓKÓLˆAð �N‰N˜1™5 1™9 q™=×)ñ+  ð. �x‰x˜Ó  &Ð(Ð(r   © )é   )r/   r+   Úreturnztuple[bytes, str])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r%   Ú__annotations__r@   Ú__static_attributes__rB   r   r   r#   r#   H   s    ‡ ð 	ð ð
	ó÷)ñ )r   r#   c                  ó"   • \ rS rSrSrSS jrSrg)ÚGimpGradientFileéx   z(File handler for GIMP's gradient format.c           	     ó�  • UR                  5       R                  S5      (       d  Sn[        U5      eUR                  5       nUR                  S5      (       a  UR                  5       R                  5       n[	        U5      n/ U l        [        U5       H«  nUR                  5       R                  5       nUS S  Vs/ s H  n[        U5      PM     nnUS   US   p©US   nUSS	 nUS	S n[        [	        US   5         n[	        US
   5      nUS:w  a  Sn[        U5      eU R
                  R                  XšX¼XÞ45        M­     g s  snf )Ns   GIMP Gradientznot a GIMP gradient files   Name: é   r   r   r   r(   é   é   zcannot handle HSV colour space)ÚreadlineÚ
startswithÚSyntaxErrorÚstripr+   r%   r*   ÚsplitÚfloatÚSEGMENTSÚOSErrorr,   )r.   ÚfpÚmsgÚlineÚcountr8   Úsr9   r:   r2   r3   r4   r5   r6   r7   Úcspaces                   r   Ú__init__ÚGimpGradientFile.__init__{   s)  € Ø�{‰{‹}×'Ñ'Ð(8×9Ñ9Ø,ˆCÜ˜cÓ"Ð"à�{‰{‹}ˆð �?‰?˜9×%Ñ%Ø—;‘;“=×&Ñ&Ó(ˆDä�D“	ˆàˆŒä�u–ˆAØ—‘“×#Ñ#Ó%ˆAØ#$ S b¡6Ó*¢6˜a”�q–¡6ˆAÐ*à�q‘T˜1˜Q™4�Ø�1‘ˆBØ�Q�q�6ˆDØ�Q�r�7ˆDäœs 1 R¡5›zÑ*ˆGÜ˜˜2™“ZˆFà˜‹{Ø6�Ü˜c“lÐ"à�M‰M× Ñ  "¨"°DÐ!BÖCò! ùâ*s   Â;E)r%   N)rZ   z	IO[bytes]rD   ÚNone)rE   rF   rG   rH   Ú__doc__r`   rJ   rB   r   r   rL   rL   x   s   † Ù2÷Dr   rL   N)r   rW   r   rW   rD   rW   )rc   Ú
__future__r   Úmathr   r   r   r   Ú_binaryr	   ÚTYPE_CHECKINGÚcollections.abcr
   Útypingr   r   r   r   r   r   r!   rX   r#   rL   rB   r   r   Ú<module>rj      sx   ðñ õ #ç #Ó #å à€ÞÝ(Ýà
€Ø ô,ô9ôEô8ô6ð �F˜DÐ"3Ð5FÐG€Ø ÷-)ñ -)ô`"D�|õ "Dr   