§
    ¥”jB#  ã                   ó²   — d dl Z d dlZd dlmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZ  G d„ de¦  «        Z G d„ d	e¦  «        Zd
ededededee         f
d„ZdS )é    N)ÚListÚOptional)Ú
PdfContent)Úrd)Ú	BaseImagec                   óV   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zdd„Zd„ Zd„ ZdS )ÚPdfStreamQRImagezc
    Quick-and-dirty implementation of the Image interface required
    by the qrcode package.
    ÚPDF)r
   )r   r   r   c                 ó   — g S ©N© )ÚselfÚkwargss     úc/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko/pdf_utils/qr.pyÚ	new_imagezPdfStreamQRImage.new_image   s   € Øˆ	ó    c                 ó>   — | j                              ||f¦  «         d S r   )Ú_imgÚappend©r   ÚrowÚcols      r   ÚdrawrectzPdfStreamQRImage.drawrect   s"   € ØŒ	×Ò˜#˜s˜Ñ$Ô$Ð$Ð$Ð$r   c                 ó:   — |                      d||fz  ¦  «         d S )Ns   %g %g 1 1 re)r   ©r   Úcommand_streamr   r   s       r   Úappend_single_rectz#PdfStreamQRImage.append_single_rect   s%   € Ø×Ò˜o°°c°
Ñ:Ñ;Ô;Ð;Ð;Ð;r   c                 ó,   — d| j         z  d| j         z  z   S )Ns   %g %g %g rg
s   %g %g %g RG)Úqr_color©r   s    r   Úformat_qr_colorz PdfStreamQRImage.format_qr_color   s    € Ø  4¤=Ñ0Ø˜Tœ]Ñ*ñ
ð 	
r   c                 ó6  — t          | j        | j        z  ¦  «        }t          | j        | j        z  ¦  «        }t          | j        ¦  «        › dt          | j        ¦  «         › d|› d||z   › d�}d|                      ¦   «         |                     d¦  «        fz  S )Nú 0 0 ú ú cms   %s
%sÚascii)r   ÚborderÚbox_sizeÚwidthr!   Úencode)r   ÚbrdÚydiffÚcms       r   Úsetup_drawing_areaz#PdfStreamQRImage.setup_drawing_area#   s™   € õ �”˜tœ}Ñ,Ñ-Ô-ˆÝ�4”: ¤Ñ-Ñ.Ô.ˆÝ�4”=Ñ!Ô!ÐSÐS­¨D¬MÑ):Ô):Ð(:ÐSÐS¸SÐSÐSÀ3ÈÁ;ÐSÐSÐSˆØ˜D×0Ò0Ñ2Ô2°B·I²I¸gÑ4FÔ4FÐGÑGÐGr   c                 óÈ   — |                       ¦   «         g}| j        D ]\  }}|                      |||¦  «         Œ|                     d¦  «         d                     |¦  «        S )Nó   fó   
)r.   r   r   r   Újoinr   s       r   Úrender_command_streamz&PdfStreamQRImage.render_command_stream+   sl   € Ø×1Ò1Ñ3Ô3Ð4ˆØœ	ð 	>ð 	>‰HˆC�à×#Ò# N°C¸Ñ=Ô=Ð=Ð=Ø×Ò˜dÑ#Ô#Ð#Ø�zŠz˜.Ñ)Ô)Ð)r   Nc                 ó   — t           ‚r   ©ÚNotImplementedError©r   ÚstreamÚkinds      r   ÚsavezPdfStreamQRImage.save3   ó   € Ý!Ð!r   c                 ó   — t           ‚r   r5   r    s    r   ÚprocesszPdfStreamQRImage.process6   r;   r   c                 ó.   — |                       ||¦  «        S r   )r   )r   r   r   ÚactiveÚcontexts        r   Údrawrect_contextz!PdfStreamQRImage.drawrect_context9   s   € Ø�}Š}˜S #Ñ&Ô&Ð&r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   Úallowed_kindsr   r   r   r   r!   r.   r3   r:   r=   rA   r   r   r   r	   r	      s¾   € € € € € ðð ð
 €DØ€MØ€Hðð ð ð%ð %ð %ð<ð <ð <ð
ð 
ð 
ð
Hð Hð Hð*ð *ð *ð"ð "ð "ð "ð"ð "ð "ð'ð 'ð 'ð 'ð 'r   r	   c                   ó†   ‡ — e Zd ZdZddœdee         fˆ fd„Zdd„Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ fd„Zˆ xZS )ÚPdfFancyQRImagegš™™™™™É?N)Úcenter_imagerI   c                ó\   •—  t          ¦   «         j        |||fi |¤Ž || _        || _        d S r   )ÚsuperÚ__init__Ú_versionÚ_centerpiece)	r   r'   r)   r(   ÚversionrI   Ú_argsr   Ú	__class__s	           €r   rL   zPdfFancyQRImage.__init__@   s=   ø€ ð 	�‰ŒÔ˜ ¨Ð;Ð;°FÐ;Ð;Ð;ØˆŒØ(ˆÔÐÐr   c                 ó   — t           ‚r   r5   r7   s      r   r:   zPdfFancyQRImage.saveN   r;   r   c                 ó   — t           ‚r   r5   r    s    r   r=   zPdfFancyQRImage.processQ   r;   r   c                 ó€   — |                       ||¦  «        rd S |                     t          ||dd¦  «        ¦  «         d S )NgÍÌÌÌÌÌì?g333333Ó?)Úis_position_patternÚextendÚrounded_squarer   s       r   r   z"PdfFancyQRImage.append_single_rectT   sG   € Ø×#Ò# C¨Ñ-Ô-ð 	ØˆFØ×Ò�n¨S°#°s¸CÑ@Ô@ÑAÔAÐAÐAÐAr   c                 ój   — |dk     r|dk     p'|| j         dz
  k    o|dk     p|dk     o|| j         dz
  k    S )Né   é   )r)   r   s      r   Úis_major_position_patternz)PdfFancyQRImage.is_major_position_patternY   sO   € à�1ŠWÐ ˜˜qšð 4Ø�t”z A‘~Ò%Ð2¨3°ª7ð4à�a’Ð2˜S 4¤:°¡>Ò1ð	
r   c              #   óÂ   K  — t           j                             | j        ¦  «        }t	          j        ||¦  «        D ]"\  }}|                      ||¦  «        rŒ||fV — Œ#d S r   )ÚqrcodeÚutilÚpattern_positionrM   Ú	itertoolsÚproductr[   )r   Úadj_ptnsÚprÚpcs       r   Ú_enumerate_alignment_patternsz-PdfFancyQRImage._enumerate_alignment_patterns`   ss   è è € Ý”;×/Ò/°´Ñ>Ô>ˆÝÔ'¨°(Ñ;Ô;ð 	ð 	‰FˆB�ð ×-Ò-¨b°"Ñ5Ô5ð ØØ�b�&ˆLˆLˆLˆLð	ð 	r   c                 ó’   ‡‡— |                       ‰‰¦  «        rdS t          ˆˆfd„|                      ¦   «         D ¦   «         ¦  «        S )NTc              3   óv   •K  — | ]3\  }}t          ‰|z
  ¦  «        d k    ot          ‰|z
  ¦  «        d k    V — Œ4dS )é   N)Úabs)Ú.0rc   rd   r   r   s      €€r   ú	<genexpr>z6PdfFancyQRImage.is_position_pattern.<locals>.<genexpr>m   s^   øè è € ð 
ð 
á��Bõ ��b‘‰MŒM˜QÒÐ5¥3 s¨R¡x¡=¤=°AÒ#5ð
ð 
ð 
ð 
ð 
ð 
r   )r[   Úanyre   r   s    ``r   rU   z#PdfFancyQRImage.is_position_patterni   sj   øø€ Ø×)Ò)¨#¨sÑ3Ô3ð 	Ø�4åð 
ð 
ð 
ð 
ð 
à×<Ò<Ñ>Ô>ð
ñ 
ô 
ñ 
ô 
ð 	
r   c           	      ó|  — dg}| j         }|                     t          dddd¦  «        ¦  «         |                     t          d|dz
  dd¦  «        ¦  «         |                     t          |dz
  ddd¦  «        ¦  «         |                      ¦   «         D ]0\  }}|                     t          |dz
  |dz
  dd¦  «        ¦  «         Œ1|                     d	¦  «         |                     t          ddd
d¦  «        ¦  «         |                     t          d|dz
  dz   d
d¦  «        ¦  «         |                     t          |dz
  dz   dd
d¦  «        ¦  «         |                      ¦   «         D ]*\  }}|                     t          ||dd¦  «        ¦  «         Œ+|                     d¦  «         d                     |¦  «        S )Ns   q
1 0 0 1 0.5 0.5 cm
0.7 wr   é   é   rY   rh   é   gffffffæ?s   S
Qé   g333333ã?gš™™™™™¹?r0   r1   )r)   rV   rW   re   r   r2   )r   r   Úszrc   rd   s        r   Údraw_position_patternsz&PdfFancyQRImage.draw_position_patternsr   sÇ  € ð :Ð:ˆØŒZˆØ×Ò�n¨Q°°1°aÑ8Ô8Ñ9Ô9Ð9Ø×Ò�n¨Q°°Q±¸¸1Ñ=Ô=Ñ>Ô>Ð>Ø×Ò�n¨R°!©V°Q¸¸1Ñ=Ô=Ñ>Ô>Ð>Ø×8Ò8Ñ:Ô:ð 	Jð 	J‰FˆB�Ø×!Ò!¥.°°a±¸¸a¹ÀÀCÑ"HÔ"HÑIÔIÐIÐIØ×Ò˜gÑ&Ô&Ð&ð 	×Ò�n¨Q°°1°cÑ:Ô:Ñ;Ô;Ð;Ø×Ò�n¨Q°°Q±¸±
¸A¸sÑCÔCÑDÔDÐDØ×Ò�n¨R°!©V°a©Z¸¸A¸sÑCÔCÑDÔDÐDà×8Ò8Ñ:Ô:ð 	Bð 	B‰FˆB�Ø×!Ò!¥.°°R¸¸CÑ"@Ô"@ÑAÔAÐAÐAØ×Ò˜dÑ#Ô#Ð#Ø�zŠz˜.Ñ)Ô)Ð)r   c                 óî  — |                       ¦   «         \  }}}| j        j        j        }| j        j        j        }ddg}|                     t          |||| j        |z  ¦  «        ¦  «         |                     d¦  «         t          ||z  ¦  «        }t          ||z  ¦  «        }d}	t          d|	z
  |z  dz  ¦  «        }
t          d|	z
  |z  dz  ¦  «        }|                     ||	z  › d| |	z  › d||
|z  z   › d||z   ||z  z
  › d	� 
                    d
¦  «        ¦  «         |                     | j                             ¦   «         ¦  «         |                     d¦  «         d                     |¦  «        S )Nó   qó   0.2 ws   S
Q
qg333333ë?ro   rh   r#   r$   r%   r&   ó   Qr1   )Ú_measure_out_centerpiecerN   Úboxr)   ÚheightrV   rW   Úcenterpiece_corner_radiusr   r   r*   Úrenderr2   )r   Úc_xÚc_yÚc_szÚc_wÚc_hÚcenterpiece_commandsÚx_scaleÚy_scaleÚshrinkÚx_shiftÚy_shifts               r   Údraw_centerpiecez PdfFancyQRImage.draw_centerpiece‰   s¶  € Ø×6Ò6Ñ8Ô8‰ˆˆS�$àÔÔ#Ô)ˆØÔÔ#Ô*ˆð !% hÐ/ÐØ×#Ò#ÝØ�S˜$ Ô >ÀÑ Eñô ñ	
ô 	
ð 	
ð
 	×#Ò# JÑ/Ô/Ð/õ �T˜C‘Z‘.”.ˆÝ�T˜C‘Z‘.”.ˆð
 ˆÝ�a˜&‘j CÑ'¨!Ñ+Ñ,Ô,ˆÝ�a˜&‘j CÑ'¨!Ñ+Ñ,Ô,ˆØ×#Ò#Ø˜Ñð ð  w h°Ñ&7ð ð Ø�W˜wÑ&Ñ&ðð Ø),¨t©°gÀÑ6GÑ)Gðð ð ç’&˜‘/”/ñ	
ô 	
ð 	
ð 	×#Ò# DÔ$5×$<Ò$<Ñ$>Ô$>Ñ?Ô?Ð?Ø×#Ò# DÑ)Ô)Ð)Ø�zŠzÐ.Ñ/Ô/Ð/r   c                 ó¢   — d| j         z  }| j         |z
  dz  }| j         |z
  dz  }t          |¦  «        t          |¦  «        t          |¦  «        fS )NgìQ¸…ëÑ?rh   )r)   r   )r   r   r}   r~   s       r   rx   z(PdfFancyQRImage._measure_out_centerpiece®   sQ   € ð �d”jÑ ˆØŒz˜DÑ  AÑ%ˆØŒz˜DÑ  AÑ%ˆÝ�#‰wŒw�˜3™œ¥ D¡¤Ð)Ð)r   c                 ó  •— t          ¦   «                              ¦   «         }|g}| j        �Ít          | j        ¦  «        }|                     d¦  «         |                     d¦  «         |                     d|› d|› d|› d|› d�	                     d¦  «        ¦  «         |                      ¦   «         \  }}}|                     t          |||| j
        |z  ¦  «        ¦  «         |                     d¦  «         d	                     |¦  «        S )
Nru   rv   z0 0 m 0 z l r$   z 0 l hr&   s   W nr1   )rK   r.   rN   r   r)   r   r*   rx   rV   rW   r{   r2   )r   Úbasic_setupÚcommandsÚwr}   r~   r   rQ   s          €r   r.   z"PdfFancyQRImage.setup_drawing_area¶   s  ø€ Ý‘g”g×0Ò0Ñ2Ô2ˆØ�=ˆØÔÐ(õ �4”:‘”ˆAà�OŠO˜DÑ!Ô!Ð!Ø�OŠO˜HÑ%Ô%Ð%Ø�OŠOØ4˜1Ð4Ð4 Ð4Ð4 QÐ4Ð4¨1Ð4Ð4Ð4×;Ò;¸GÑDÔDñô ð ð "×:Ò:Ñ<Ô<‰NˆC��dØ�OŠOÝØ˜˜d DÔ$BÀTÑ$Iñô ñô ð ð
 �OŠO˜FÑ#Ô#Ð#Ø�zŠz˜(Ñ#Ô#Ð#r   c                 ó  •— t          ¦   «                              ¦   «         |                      ¦   «         g}| j        r<|                     d¦  «         |                     |                      ¦   «         ¦  «         d                     |¦  «        S )Nrw   r1   )rK   r3   rs   rN   r   rˆ   r2   )r   ÚpartsrQ   s     €r   r3   z%PdfFancyQRImage.render_command_streamÐ   sv   ø€ Ý‘”×.Ò.Ñ0Ô0°$×2MÒ2MÑ2OÔ2OÐPˆØÔð 	2Ø�LŠL˜ÑÔÐØ�LŠL˜×.Ò.Ñ0Ô0Ñ1Ô1Ð1à�zŠz˜%Ñ Ô Ð r   r   )rB   rC   rD   r{   r   r   rL   r:   r=   r   r[   re   rU   rs   rˆ   rx   r.   r3   Ú__classcell__)rQ   s   @r   rH   rH   =   s#  ø€ € € € € Ø #Ðð .2ð)ð )ð )ð ˜zÔ*ð)ð )ð )ð )ð )ð )ð"ð "ð "ð "ð"ð "ð "ðBð Bð Bð

ð 
ð 
ðð ð ð
ð 
ð 
ð*ð *ð *ð.#0ð #0ð #0ðJ*ð *ð *ð$ð $ð $ð $ð $ð4!ð !ð !ð !ð !ð !ð !ð !ð !r   rH   Úx_posÚy_posrr   ÚradÚreturnc                 ó  ‡ ‡‡‡‡— dt          j        d¦  «        dz
  z  dz  |z  }g Šˆˆ ˆfd„Šdt          fˆˆfd„Šˆfd„} ||d	d
¦  «          |||z
  d	d¦  «          ‰||z
  d	f||f||fgd¦  «          ||||z
  d¦  «          ‰|||z
  f||z
  |f||z
  |fgd¦  «          |||d¦  «          ‰||fd	||z
  fd	||z
  fgd¦  «          |d	|d¦  «          ‰d	|f|d	f|d	fgd¦  «         ‰                     d¦  «         ‰S )a  
    Add a subpath of a square with rounded corners at the given position.
    Doesn't include any painting or clipping operations.

    The path is drawn counterclockwise.

    :param x_pos:
        The x-coordinate of the enveloping square's lower left corner.
    :param y_pos:
        The y-coordinate of the enveloping square's lower left corner.
    :param sz:
        The side length of the enveloping square.
    :param rad:
        The corner radius.

    :return:
        A list of graphics operators.
    rp   rh   ro   rq   c                 ó¬   •— t          ‰| z   ¦  «        }t          ‰|z   ¦  «        }‰                     |› d|› d�                     d¦  «        ¦  «         d S )Nr$   r&   )r   r   r*   )ÚxÚyÚpxÚpyÚresultr‘   r’   s       €€€r   Úfmtzrounded_square.<locals>.fmtó   sS   ø€ Ý�˜‘	‰]Œ]ˆÝ�˜‘	‰]Œ]ˆØ�Š˜�m�m˜b�m�m�m×*Ò*¨7Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   Úopcc                 ó€   •— | D ]\  }} ‰||¦  «         Œ‰                      |                     d¦  «        ¦  «         d S )Nr&   )r   r*   )Úptsr�   r—   r˜   rœ   r›   s       €€r   Úopzrounded_square.<locals>.opø   sK   ø€ Øð 	ð 	‰DˆAˆqØˆC��1‰IŒIˆIˆIØ�Š�c—j’j Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*r   c                 ó&   •—  ‰| |fg|¦  «         d S r   r   )r—   r˜   r�   r    s      €r   Úuopzrounded_square.<locals>.uopý   s!   ø€ Ø
ˆˆQ�ˆFˆ8�SÑÔÐÐÐr   r   ÚmÚlÚcó   h)ÚmathÚsqrtÚstrr   )	r‘   r’   rr   r“   Úc_offr¢   rœ   r    r›   s	   ``    @@@r   rW   rW   Ù   sÈ  øøøøø€ ð, •$”)˜A‘,”, Ñ"Ñ# aÑ'¨3Ñ.€Eà€Fð5ð 5ð 5ð 5ð 5ð 5ð 5ð
+•Sð +ð +ð +ð +ð +ð +ð +ð
ð ð ð ð ð €CˆˆQ�ÑÔÐØ€CˆˆS‰�!�SÑÔÐØ€Bˆˆe‰�Qˆ˜"˜e˜ r¨3 iÐ0°#Ñ6Ô6Ð6Ø€CˆˆB�‰H�cÑÔÐØ€BˆˆR�%‰ZÐ˜2 ™: rÐ*¨R°#©X°r¨NÐ;¸SÑAÔAÐAØ€CˆˆR�ÑÔÐØ€Bˆ�ˆ�a˜˜e™�_ q¨"¨s©( mÐ4°cÑ:Ô:Ð:Ø€Cˆˆ3�ÑÔÐØ€BˆˆEˆ
�U˜A�J  a Ð)¨3Ñ/Ô/Ð/Ø
‡M‚M�$ÑÔÐØ€Mr   )r`   r§   Útypingr   r   Úqrcode.utilr]   Úpyhanko.pdf_utils.contentr   Úpyhanko.pdf_utils.miscr   Úqrcode.image.baser   r	   rH   ÚfloatÚbytesrW   r   r   r   ú<module>r²      s  ðØ Ð Ð Ð Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð/'ð /'ð /'ð /'ð /'�yñ /'ô /'ð /'ðdY!ð Y!ð Y!ð Y!ð Y!Ð&ñ Y!ô Y!ð Y!ðx1Øð1Øð1Ø$)ð1Ø05ð1à	ˆ%„[ð1ð 1ð 1ð 1ð 1ð 1r   