+
    ÂHàj¥  ã                  ó&  € ^ RI Ht ^RIHt R R ltR R ltR R ltR	 R
 ltR R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR.R R lltR.R R lltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR/R, R- lltR+# )0é    )Úannotations)ÚImagec               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚimageúImage.ImageÚvalueÚintÚreturn© )Úformats   "Ú�/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/50f6b671e3f94b538e344231dfcb664f/venv/lib/python3.14/site-packages/PIL/ImageChops.pyÚ__annotate__r      s!   € ÷ -ñ -�Kð -¨ð -°ñ -ó    c                óF   € \         P                  ! RV P                  V4      # )z'Fill a channel with a given gray level.ÚL)r   ÚnewÚsize)r   r	   s   &&r   Úconstantr      s   € ô �9Š9�S˜%Ÿ*™* eÓ,Ð,r   c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   r   )r   s   "r   r   r      s   € ÷ ñ �[ð  [ñ r   c                ó"   € V P                  4       # )z:Copy a channel. Alias for :py:meth:`PIL.Image.Image.copy`.)Úcopy©r   s   &r   Ú	duplicater      s   € ð �:‰:‹<Ðr   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   #   s   € ÷ .ñ .�+ð . +ñ .r   c                ót   € V P                  4        V P                  V P                  P                  4       4      # )z6
Invert an image (channel). ::

    out = MAX - image
)ÚloadÚ_newÚimÚchop_invertr   s   &r   Úinvertr"   #   s)   € ð 
‡J�J„LØ�:‰:�e—h‘h×*Ñ*Ó,Ó-Ð-r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úimage1r   Úimage2r   r   )r   s   "r   r   r   .   s!   € ÷ 
:ñ 
:�Kð 
:¨ð 
:¸ñ 
:r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zƒ
Compares the two images, pixel by pixel, and returns a new image containing
the lighter values. ::

    out = max(image1, image2)
)r   r   r    Úchop_lighter©r%   r&   s   &&r   Úlighterr*   .   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   ;   s!   € ÷ 
9ñ 
9�;ð 
9¨ð 
9¸ñ 
9r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z‚
Compares the two images, pixel by pixel, and returns a new image containing
the darker values. ::

    out = min(image1, image2)
)r   r   r    Úchop_darkerr)   s   &&r   Údarkerr.   ;   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   H   ó!   € ÷ 
=ñ 
=�{ð 
=¨Kð 
=¸Kñ 
=r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zx
Returns the absolute value of the pixel-by-pixel difference between the two
images. ::

    out = abs(image1 - image2)
)r   r   r    Úchop_differencer)   s   &&r   Ú
differencer3   H   ó8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   U   s!   € ÷ ;ñ ;�[ð ;¨+ð ;¸+ñ ;r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zß
Superimposes two images on top of each other.

If you multiply an image with a solid black image, the result is black. If
you multiply with a solid white image, the image is unaffected. ::

    out = image1 * image2 / MAX
)r   r   r    Úchop_multiplyr)   s   &&r   Úmultiplyr8   U   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©yÓ9Ó:Ð:r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   d   s!   € ÷ 	9ñ 	9�;ð 	9¨ð 	9¸ñ 	9r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zt
Superimposes two inverted images on top of each other. ::

    out = MAX - ((MAX - image1) * (MAX - image2) / MAX)
)r   r   r    Úchop_screenr)   s   &&r   Úscreenr<   d   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   p   ó!   € ÷ =ñ =�{ð =¨Kð =¸Kñ =r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zM
Superimposes two images on top of each other using the Soft Light algorithm
)r   r   r    Úchop_soft_lightr)   s   &&r   Ú
soft_lightrA   p   ó8   € ð
 ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   z   r>   r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zM
Superimposes two images on top of each other using the Hard Light algorithm
)r   r   r    Úchop_hard_lightr)   s   &&r   Ú
hard_lightrF   z   rB   r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   „   s!   € ÷ :ñ :�Kð :¨ð :¸ñ :r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zJ
Superimposes two images on top of each other using the Overlay algorithm
)r   r   r    Úchop_overlayr)   s   &&r   ÚoverlayrJ   „   s8   € ð
 ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# ©r   r%   r   r&   ÚscaleÚfloatÚoffsetr   r   )r   s   "r   r   r   Ž   s;   € ÷ Eñ EØðEØ!,ðEØ5:ðEØJOðEàñEr   c                ó¬   € V P                  4        VP                  4        V P                  V P                  P                  VP                  W#4      4      # )z°
Adds two images, dividing the result by scale and adding the
offset. If omitted, scale defaults to 1.0, and offset to 0.0.

::

    out = ((image1 + image2) / scale + offset)
)r   r   r    Úchop_add©r%   r&   rM   rO   s   &&&&r   ÚaddrS   Ž   s:   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)°UÓCÓDÐDr   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# rL   r   )r   s   "r   r   r   Ÿ   s;   € ÷ Jñ JØðJØ!,ðJØ5:ðJØJOðJàñJr   c                ó¬   € V P                  4        VP                  4        V P                  V P                  P                  VP                  W#4      4      # )zµ
Subtracts two images, dividing the result by scale and adding the offset.
If omitted, scale defaults to 1.0, and offset to 0.0.

::

    out = ((image1 - image2) / scale + offset)
)r   r   r    Úchop_subtractrR   s   &&&&r   ÚsubtractrW   Ÿ   s:   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©y¸%ÓHÓIÐIr   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   °   r0   r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zVAdd two images, without clipping the result.

::

    out = ((image1 + image2) % MAX)
)r   r   r    Úchop_add_modulor)   s   &&r   Ú
add_modulor[   °   r4   r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   ½   s&   € ÷ 
Bñ 
B˜Kð 
B°ð 
BÀñ 
Br   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z[Subtract two images, without clipping the result.

::

    out = ((image1 - image2) % MAX)
)r   r   r    Úchop_subtract_modulor)   s   &&r   Úsubtract_modulor_   ½   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×5Ñ5°f·i±iÓ@ÓAÐAr   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   Ê   s!   € ÷ 6ñ 6˜ð 6¨[ð 6¸[ñ 6r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )a(  Logical AND between two images.

Both of the images must have mode "1". If you would like to perform a
logical AND on an image with a mode other than "1", try
:py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask
as the second image. ::

    out = ((image1 and image2) % MAX)
)r   r   r    Úchop_andr)   s   &&r   Úlogical_andrc   Ê   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   Ú   s!   € ÷ 
5ñ 
5�{ð 
5¨Kð 
5¸Kñ 
5r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zpLogical OR between two images.

Both of the images must have mode "1". ::

    out = ((image1 or image2) % MAX)
)r   r   r    Úchop_orr)   s   &&r   Ú
logical_orrg   Ú   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×(Ñ(¨¯©Ó3Ó4Ð4r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   ç   s!   € ÷ 
6ñ 
6˜ð 
6¨[ð 
6¸[ñ 
6r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z}Logical XOR between two images.

Both of the images must have mode "1". ::

    out = ((bool(image1) != bool(image2)) % MAX)
)r   r   r    Úchop_xorr)   s   &&r   Úlogical_xorrk   ç   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r%   r   r&   ÚalpharN   r   r   )r   s   "r   r   r   ô   s(   € ÷ .ñ .�+ð . {ð .¸5ð .À[ñ .r   c                ó0   € \         P                  ! WV4      # )zXBlend images using constant transparency weight.

Alias for :py:func:`PIL.Image.blend`.
)r   Úblend)r%   r&   rm   s   &&&r   ro   ro   ô   s   € ô �;Š;�v uÓ-Ð-r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r%   r   r&   Úmaskr   r   )r   s   "r   r   r   ý   s,   € ÷ 1ñ 1Øð1Ø!,ð1Ø4?ð1àñ1r   c                ó0   € \         P                  ! WV4      # )zUCreate composite using transparency mask.

Alias for :py:func:`PIL.Image.composite`.
)r   Ú	composite)r%   r&   rq   s   &&&r   rs   rs   ý   s   € ô �?Š?˜6¨4Ó0Ð0r   Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   Úxoffsetr
   Úyoffsetz
int | Noner   r   )r   s   "r   r   r     s(   € ÷ 9ñ 9�+ð 9¨ð 9°jð 9ÈKñ 9r   c                ó‚   € Vf   TpV P                  4        V P                  V P                  P                  W4      4      # )aX  Returns a copy of the image where data has been offset by the given
distances. Data wraps around the edges. If ``yoffset`` is omitted, it
is assumed to be equal to ``xoffset``.

:param image: Input image.
:param xoffset: The horizontal distance.
:param yoffset: The vertical distance.  If omitted, both
    distances are set to the same value.
)r   r   r    rO   )r   ru   rv   s   &&&r   rO   rO     s3   € ð ‚ØˆØ	‡J�J„LØ�:‰:�e—h‘h—o‘o gÓ7Ó8Ð8r   )g      ð?r   )N)Ú
__future__r   Ú r   r   r   r"   r*   r.   r3   r8   r<   rA   rF   rJ   rS   rW   r[   r_   rc   rg   rk   ro   rs   rO   r   r   r   Ú<module>rz      s~   ðõ$ #å õ-õõ.õ
:õ
9õ
=õ;õ	9õ=õ=õ:÷E÷"Jõ"
=õ
Bõ6õ 
5õ
6õ.õ1÷9ñ 9r   