Ë
    o]jì/  ã                   ó‚   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ d	d
lmZ  G d„ dej                  «      Zy)zPDF stream.é    )ÚcontextmanagerNé   )ÚLOGGER)ÚMatrix)Úffi)Úget_pango_font_keyé   )ÚFontc                   ó,  ‡ — e Zd ZdZˆ fd„Zd„ Zed„ «       Zˆ fd„Zˆ fd„Z	dˆ fd„	Z
ˆ fd„Zˆ fd	„Zdd
„Zˆ fd„Zˆ fd„Zdˆ fd„	Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	 dd„Zed„ «       Zeˆ fd„«       Zeˆ fd„«       Zed„ «       Zed„ «       Zed„ «       Zˆ xZ S ) ÚStreamz&PDF stream object with extra features.c                 ó²  •— t        ‰
| �  |i |	¤Ž || _        || _        || _        || _        || _        || _        || _        d x| _	        | _
        d x| _        | _        d x| _        | _        d x| _        | _        t#        «       g| _        t'        j(                  d«      | _        t'        j(                  d«      | _        t'        j(                  d«      | _        y )Nzunsigned int *zPangoRectangle *)ÚsuperÚ__init__Úpage_rectangleÚ_fontsÚ
_resourcesÚ_imagesÚ_tagsÚ_color_profilesÚ_output_intentÚ_current_colorÚ_current_color_strokeÚ_current_alphaÚ_current_alpha_strokeÚ_current_fontÚ_current_font_sizeÚ	_old_fontÚ_old_font_sizer   Ú
_ctm_stackr   ÚnewÚlengthÚink_rectÚlogical_rect)ÚselfÚfontsr   Ú	resourcesÚimagesÚtagsÚcolor_profilesÚoutput_intentÚargsÚkwargsÚ	__class__s             €úL/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/pdf/stream.pyr   zStream.__init__   sÉ   ø€ ä‰Ñ˜$Ð) &Ò)Ø,ˆÔØˆŒØ#ˆŒØˆŒØˆŒ
Ø-ˆÔØ+ˆÔØ;?Ð?ˆÔ˜dÔ8Ø;?Ð?ˆÔ˜dÔ8Ø7;Ð;ˆÔ˜TÔ4Ø/3Ð3ˆŒ˜Ô,Ü!›8˜*ˆŒô —g‘gÐ.Ó/ˆŒÜŸ™Ð 2Ó3ˆŒÜŸG™GÐ$6Ó7ˆÕó    c                 óH  — d|vr| j                   |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j
                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   t        d	i |¤ŽS )
Nr%   r   r&   r'   r(   r)   r*   Úcompress© )	r   r   r   r   r   r   r   r1   r   )r$   r,   s     r.   ÚclonezStream.clone%   sÆ   € Ø˜&Ñ Ø"Ÿk™kˆF�7‰OØ 6Ñ)Ø'+×':Ñ':ˆFÐ#Ñ$Ø˜fÑ$Ø"&§/¡/ˆF�;ÑØ˜6Ñ!Ø#Ÿ|™|ˆF�8ÑØ˜ÑØ!ŸZ™ZˆF�6‰NØ 6Ñ)Ø'+×';Ñ';ˆFÐ#Ñ$Ø &Ñ(Ø&*×&9Ñ&9ˆF�?Ñ#Ø˜VÑ#Ø!%§¡ˆF�:ÑÜÑ˜ÑÐr/   c                 ó    — | j                   d   S ©Néÿÿÿÿ)r   ©r$   s    r.   Úctmz
Stream.ctm8   s   € à�‰˜rÑ"Ð"r/   c                 ól   •— t         ‰| �  «        | j                  j                  | j                  «       y ©N)r   Ú
push_stater   Úappendr8   ©r$   r-   s    €r.   r;   zStream.push_state<   s$   ø€ Ü‰ÑÔØ�‰×Ñ˜tŸx™xÕ(r/   c                 ó*  •— | j                   r-| j                   d   dk(  r| j                   j                  «        nt        ‰| �  «        d x| _        | _        d x| _        | _        d | _        | j                  j                  «        | j                  sJ ‚y )Nr6   ó   q)
ÚstreamÚpopr   Ú	pop_stater   r   r   r   r   r   r=   s    €r.   rB   zStream.pop_state@   sv   ø€ Ø�;Š;˜4Ÿ;™; r™?¨dÒ2Ø�K‰K�O‰OÕä‰GÑÔØ;?Ð?ˆÔ˜dÔ8Ø;?Ð?ˆÔ˜dÔ8Ø!ˆÔØ�‰×ÑÔØ�ŠÐ‰r/   c                 ó‚   •— t         ‰| �  ||||||«       t        ||||||«      | j                  z  | j                  d<   y r5   )r   Ú
set_matrixr   r8   r   )r$   ÚaÚbÚcÚdÚeÚfr-   s          €r.   Ú	transformzStream.transformK   s@   ø€ Ü‰Ñ˜1˜a  A q¨!Ô,Ü$ Q¨¨1¨a°°AÓ6¸¿¹ÑAˆ�‰˜Òr/   c                 ó¶   •— | j                   r>| j                   d   dk(  r,| j                  | _        | j                   j                  «        y t        ‰| �  «        y )Nr6   s   ET)r@   r   r   rA   r   Ú
begin_textr=   s    €r.   rM   zStream.begin_textO   s>   ø€ Ø�;Š;˜4Ÿ;™; r™?¨eÒ3Ø!%§¡ˆDÔØ�K‰K�O‰OÕä‰GÑÕ r/   c                 óT   •— | j                   d c| _        | _         t        ‰| �  «        y r:   )r   r   r   Úend_textr=   s    €r.   rO   zStream.end_textV   s%   ø€ Ø-1×-?Ñ-?ÀÐ*ˆŒ˜Ô*Ü‰ÑÕr/   c                 óB  — |�^ }}| j                  ||«       |r4|j                  g|¢­| j                  k(  ry |j                  g|¢­| _        n3|j                  g|¢­| j                  k(  ry |j                  g|¢­| _        |j                  dv r. | j                  g |j                  d«      j                  ¢|‘­Ž  y |j                  dv rG| j                  d|«       |j                  d«      j                  \  }}}| j                  d ||||«       y |j                  dv rG| j                  d|«       |j                  d«      j                  \  }}}| j                  d ||||«       y |j                  dk(  r:| j                  d	|«       |j                  \  }}	}
}| j                  d |||	|
|«       y |j                  j                  d
«      r`| j                  j                  |j                  «      r;| j                  |j                  |«        | j                  d |g|j                  ¢­Ž  y t        j                  d|j                  «       t        |«      dkD  r|d d }n-t        |«      dk(  rg |¢d‘­}nt        |«      dk(  r	g |¢d‘d‘­} | j                  g |¢|‘­Ž  y )N)ÚsrgbÚhslÚhwbrQ   )zxyz-d65ÚoklabÚoklchzlab-d65Úlab)zxyz-d50rV   Úlchzlab-d50údevice-cmykÚ
DeviceCMYKz--z,Unsupported color space %s, use sRGB insteadé   r   r   r	   )Ú	set_alphaÚspacer   r   Úset_color_rgbÚtoÚcoordinatesÚset_color_spaceÚset_color_specialÚ
startswithr   Úgetr   ÚwarningÚlen)r$   ÚcolorÚstrokeÚchannelsÚalphaÚ	lightnessrE   rF   rG   ÚmÚyÚks               r.   Ú	set_colorzStream.set_colorZ   sd  € Ø Ñˆ�5Ø�‰�u˜fÔ%áØ—‘Ð'˜hÑ'¨4×+EÑ+EÒEØà.3¯k©kÐ-E¸HÑ-E�Õ*à—‘Ð'˜hÑ'¨4×+>Ñ+>Ò>Øà',§{¡{Ð&>°XÑ&>�Ô#à�;‰;Ð0Ñ0ØˆD×ÑÐE §¡¨Ó 0× <Ñ <ÐE¸fÔEØ�[‰[Ð9Ñ9Ø× Ñ  ¨FÔ3Ø#Ÿh™h u›o×9Ñ9‰OˆI�q˜!Ø×"Ñ" 4¨°¸A¸qÕAØ�[‰[Ð5Ñ5Ø× Ñ  ¨FÔ3Ø#Ÿh™h u›o×9Ñ9‰OˆI�q˜!Ø×"Ñ" 4¨°¸A¸qÕAØ�[‰[˜MÒ)Ø× Ñ  ¨vÔ6Ø×*Ñ*‰JˆAˆq�!�QØ×"Ñ" 4¨°°A°q¸!Õ<Ø�[‰[×#Ñ# DÔ)¨d×.BÑ.B×.FÑ.FÀuÇ{Á{Ô.SØ× Ñ  §¡¨fÔ5Ø"ˆD×"Ñ" 4¨ÐD°%×2CÑ2CÔDä�N‰NÐIÈ5Ï;É;ÔWÜ�8‹}˜qÒ Ø# B Q˜<‘Ü�X“ !Ò#Ø'˜H˜< a™<‘Ü�X“ !Ò#Ø*˜H˜? a˜?¨™?�ØˆD×ÑÐ1 Ð1¨&Ô1r/   c                 ó\   •— ||f| j                   k(  ry ||f| _         t        ‰| �	  ||«       y r:   )r   r   Úset_font_size)r$   ÚfontÚsizer-   s      €r.   rp   zStream.set_font_size„   s3   ø€ Ø�$ˆ<˜4×-Ñ-Ò-ØØ" D˜\ˆÔÜ‰Ñ˜d DÕ)r/   c                 ó~   •— dt        | j                  d   «      › �}|| j                  d   |<   t        ‰| �  |«       y )NÚsÚ	ExtGState)re   r   r   Ú	set_state)r$   ÚstateÚkeyr-   s      €r.   rv   zStream.set_stateŠ   s>   ø€ Ø”#�d—o‘o kÑ2Ó3Ð4Ð5ˆØ,1ˆ�‰˜Ñ$ SÑ)Ü‰Ñ˜#Õr/   c                 ó¤  •— |€| }|rbd|› �}|| j                   k7  rN|| _         || j                  d   vr't        j                  d|i«      | j                  d   |<   t        ‰| �  |«       |rdd|› �}|| j                  k7  rO|| _        || j                  d   vr't        j                  d|i«      | j                  d   |<   t        ‰| �  |«       y y y )NÚAru   ÚCArE   Úca)r   r   ÚpydyfÚ
Dictionaryr   rv   r   )r$   ri   rg   Úfillrx   r-   s        €r.   r[   zStream.set_alpha�   sã   ø€ Øˆ<Ø�:ˆDáØ�e�W�+ˆCØ�d×0Ñ0Ò0Ø-0�Ô*Ø˜dŸo™o¨kÑ:Ñ:Ü8=×8HÑ8HÈ$ÐPUÈÓ8W�D—O‘O KÑ0°Ñ5Ü‘Ñ! #Ô&áØ�e�W�+ˆCØ�d×)Ñ)Ò)Ø&)�Ô#Ø˜dŸo™o¨kÑ:Ñ:Ü8=×8HÑ8HÈ$ÐPUÈÓ8W�D—O‘O KÑ0°Ñ5Ü‘Ñ! #Õ&ð	 *ð r/   c           	      óÔ   — | j                  ||||«      }t        j                  dt        j                  dd|j                  «       › �|dœ«      dddœ«      }| j	                  |«       |S )Nú
/ExtGStatez/Maskú/)ÚTypeÚSÚGr	   Úfalse)rƒ   ÚSMaskr|   ÚAIS)Ú	add_groupr}   r~   Ú
capitalizerv   )r$   Úxrl   ÚwidthÚheightÚmodeÚalpha_streamÚalpha_states           r.   Úset_alpha_statezStream.set_alpha_state£   su   € Ø—~‘~ a¨¨E°6Ó:ˆÜ×&Ñ&Ø Ü×%Ñ%ØØ˜Ÿ™Ó*Ð+Ð,Ø!ñ'ó ð
 Øñ	(
ó 	ˆð 	�‰�{Ô#ØÐr/   c                 óX   — | j                  t        j                  dd|› �dœ«      «       y )Nr�   r‚   )rƒ   ÚBM)rv   r}   r~   )r$   rŽ   s     r.   Úset_blend_modezStream.set_blend_mode²   s,   € Ø�‰”u×'Ñ'Ø Ø�d�V�*ñ)
ó õ 	r/   c                 ó’   — t        |«      \  }}}|| j                  vrt        |||«      | j                  |<   | j                  |   |fS r:   )r   r   r
   )r$   Ú
pango_fontrx   ÚdescriptionÚ	font_sizes        r.   Úadd_fontzStream.add_font¸   sJ   € Ü&8¸Ó&DÑ#ˆˆ[˜)Ø�d—k‘kÑ!Ü# J°¸YÓGˆD�K‰K˜ÑØ�{‰{˜3Ñ Ð*Ð*r/   c                 ó@  — t        j                  t        j                  «       t        j                  «       t        j                  «       t        j                  «       | j                  d   d dœ«      }t        j                  ddt        j                  ||||z   ||z   f«      |t        j                  dddd| j                  › �d	œ«      d
œ«      }| j                  ||¬«      }dt        | j                  d   «      › �|_        || j                  d   |j                  <   |S )NÚ
ColorSpace©ru   ÚXObjectÚPatternÚShadingr›   r
   z/XObjectz/Formz/Groupz/TransparencyÚtruer‚   )rƒ   r„   ÚIÚCS)rƒ   ÚSubtypeÚBBoxÚ	ResourcesÚGroup©r&   Úextrar‹   r�   )r}   r~   r   ÚArrayÚ_default_color_spacer3   re   Úid)r$   r‹   rl   rŒ   r�   r&   r¨   Úgroups           r.   r‰   zStream.add_group¾   s  € Ü×$Ñ$Ü×)Ñ)Ó+Ü×'Ñ'Ó)Ü×'Ñ'Ó)Ü×'Ñ'Ó)ØŸ/™/¨,Ñ7Øñ&
ó ˆ	ô × Ñ ØØÜ—K‘K  A q¨5¡y°!°f±*Ð =Ó>Ø"Ü×%Ñ%Ø Ø$ØØ˜$×3Ñ3Ð4Ð5ñ	'ó ñ"
ó ˆð —
‘
 Y°e�
Ó<ˆØ”s˜4Ÿ?™?¨9Ñ5Ó6Ð7Ð8ˆŒØ/4ˆ�‰˜	Ñ" 5§8¡8Ñ,Øˆr/   c                 óê   — d|j                   › t        |«      › �}d | j                  d   |<   || j                  v r#| j                  |   d   j	                  |«       |S |||hd dœ| j                  |<   |S )NÚir�   Ú
dpi_ratios)ÚimageÚinterpolater¯   Úx_object)r«   Úintr   r   Úadd)r$   r°   r±   ÚratioÚ
image_names        r.   Ú	add_imagezStream.add_imageØ   s…   € Ø˜Ÿ™˜
¤3 {Ó#3Ð"4Ð5ˆ
Ø15ˆ�‰˜	Ñ" :Ñ.Ø˜Ÿ™Ñ%à�L‰L˜Ñ$ \Ñ2×6Ñ6°uÔ=ØÐð Ø&Ø ˜'Øñ	$
ˆ�‰�ZÑ ð Ðr/   c                 ó8  — t        j                  t        j                  «       t        j                  «       t        j                  «       t        j                  «       | j                  d   d dœ«      }t        j                  ddt        j                  ||||z   ||z   g«      ||ddt        j                  |j                  «      |dœ	«      }	| j                  ||	¬«      }
dt        | j                  d   «      › �|
_        |
| j                  d   |
j                  <   |
S )	Nr›   rœ   z/Patternr	   )	rƒ   ÚPatternTyper¤   ÚXStepÚYStepÚ
TilingTypeÚ	PaintTyper   r¥   r§   Úprž   )r}   r~   r   r©   Úvaluesr3   re   r«   )r$   r‹   rl   rŒ   r�   Úrepeat_widthÚrepeat_heightÚmatrixr&   r¨   Úpatterns              r.   Úadd_patternzStream.add_patternè   sü   € Ü×$Ñ$Ü×)Ñ)Ó+Ü×'Ñ'Ó)Ü×'Ñ'Ó)Ü×'Ñ'Ó)ØŸ/™/¨,Ñ7Øñ&
ó ˆ	ô × Ñ ØØÜ—K‘K  A q¨5¡y°!°f±*Ð =Ó>Ø!Ø"ØØÜ—k‘k &§-¡-Ó0Ø"ñ
"
ó 
ˆð —*‘* y¸�*Ó>ˆØœ˜TŸ_™_¨YÑ7Ó8Ð9Ð:ˆŒ
Ø18ˆ�‰˜	Ñ" 7§:¡:Ñ.Øˆr/   c                 óV  — t        j                  |d|xs | j                  › �t        j                  |«      t        j                  |«      |dœ«      }|rt        j                  d«      |d<   dt	        | j
                  d   «      › �|_        || j
                  d   |j                  <   |S )Nr‚   )ÚShadingTyper›   ÚDomainÚCoordsÚFunction)ó   truerÊ   ÚExtendrt   rŸ   )r}   r~   rª   r©   re   r   r«   )r$   Úshading_typeÚdomainÚcoordsÚextendÚfunctionÚcolor_spaceÚshadings           r.   Úadd_shadingzStream.add_shading  s�   € ä×"Ñ"Ø'Ø˜kÒF¨T×-FÑ-FÐGÐHÜ—k‘k &Ó)Ü—k‘k &Ó)Ø ñ$
ó ˆñ Ü %§¡Ð,>Ó ?ˆG�HÑØœ˜TŸ_™_¨YÑ7Ó8Ð9Ð:ˆŒ
Ø18ˆ�‰˜	Ñ" 7§:¡:Ñ.Øˆr/   c              #   ó€   K  — | j                  «        	 d–— | j                  «        y# | j                  «        w xY w­w)zDSave and restore stream context when used with the ``with`` keyword.N)r;   rB   r7   s    r.   ÚstackedzStream.stacked  s.   è ø€ ð 	�‰Ôð	Ûà�N‰NÕøˆD�N‰NÕüs   ‚>”) ˜>©;»>c              #   óf  •K  — | j                   �`d }t        | j                   «      }|| j                   vsJ ‚||dœ| j                   |<   t        j                  d|i«      }t        ‰| �  ||«       	 d –— | j                   �t        ‰| �  «        y y # | j                   �t        ‰| �  «        w w xY w­w)N)ÚtagÚmcidÚMCID)r   re   r}   r~   r   Úbegin_marked_contentÚend_marked_content)r$   Úboxr×   Úproperty_listrØ   r-   s        €r.   ÚmarkedzStream.marked  s¦   øè ø€ à�:‰:Ð!Ø ˆMÜ�t—z‘z“?ˆDØ˜dŸj™jÑ(Ð(Ð(Ø&)°4Ñ8ˆD�J‰J�s‰OÜ!×,Ñ,¨f°d¨^Ó<ˆMÜ‰GÑ(¨¨mÔ<ð	-Ûà�z‰zÐ%Ü‘Ñ*Õ,ð &øˆt�z‰zÐ%Ü‘Ñ*Õ,ð &üs   ƒA-B1Á1B Á5B1ÂB.Â.B1c              #   óÄ   •K  — | j                   �t        ‰| �	  d«       	 d –— | j                   �t        ‰| �  «        y y # | j                   �t        ‰| �  «        w w xY w­w)NÚArtifact)r   r   rÚ   rÛ   r=   s    €r.   ÚartifactzStream.artifact(  sZ   øè ø€ à�:‰:Ð!Ü‰GÑ(¨Ô4ð	-Ûà�z‰zÐ%Ü‘Ñ*Õ,ð &øˆt�z‰zÐ%Ü‘Ñ*Õ,ð &üs   ƒA  A  ¤A Á AÁA c                 óª   — t        j                  dt        j                  | «      t        j                  |«      t        j                  |«      |dœ«      S )Nr   )ÚFunctionTyperÇ   ÚC0ÚC1ÚN©r}   r~   r©   )rÍ   Úc0Úc1Úns       r.   Úcreate_interpolation_functionz$Stream.create_interpolation_function2  sB   € ä×ÑØÜ—k‘k &Ó)Ü—+‘+˜b“/Ü—+‘+˜b“/Øñ!
ó ð 	r/   c           	      óÐ   — t        j                  dt        j                  | «      t        j                  |«      t        j                  |«      t        j                  |«      dœ«      S )NrZ   )rã   rÇ   ÚEncodeÚBoundsÚ	Functionsrç   )rÍ   ÚencodeÚboundsÚsub_functionss       r.   Úcreate_stitching_functionz Stream.create_stitching_function<  sM   € ä×ÑØÜ—k‘k &Ó)Ü—k‘k &Ó)Ü—k‘k &Ó)ÜŸ™ ]Ó3ñ!
ó ð 	r/   c                 óÞ   — | j                   | j                  v r| j                   S | j                   dk(  ryd| j                  v ry| j                  rt        t        | j                  «      «      S y)NrX   rY   Ú	DeviceRGB)r   r   ÚnextÚiterr7   s    r.   rª   zStream._default_color_spaceF  sf   € à×Ñ $×"6Ñ"6Ñ6Ø×&Ñ&Ð&Ø× Ñ  MÒ1ØØ˜d×2Ñ2Ñ2ØØ×!Ò!Üœ˜T×1Ñ1Ó2Ó3Ð3àr/   )r	   r   r   r	   r   r   )F)FN)Ú
luminosityr:   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r3   Úpropertyr8   r;   rB   rK   rM   rO   rn   rp   rv   r[   r‘   r”   r™   r‰   r·   rÄ   rÓ   r   rÕ   rÞ   rá   Ústaticmethodrë   ró   rª   Ú__classcell__)r-   s   @r.   r   r      só   ø„ Ù0ô8ò* ð& ñ#ó ð#ô)ô	õBô!ôó(2ôT*ôõ
'ó(òò+òò4ò ð4 !%óð ñó ðð ó-ó ð-ð ó-ó ð-ð ñó ðð ñó ðð ñ
ó ô
r/   r   )rü   Ú
contextlibr   r}   Úloggerr   rÂ   r   Útext.ffir   Ú
text.fontsr   r%   r
   r   r2   r/   r.   ú<module>r     s/   ðÙ å %ã å Ý Ý Ý +Ý ôCˆU�\‰\õ Cr/   