§
    �’j\"  ã                   ó¢  — U d Z ddlZddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlmZmZmZ daeed	<   daeed
<   daeed<   dZeed<   dZdZ G d„ de¦  «        Z	 	 	 d0deeedf         deeedf         deeee         df         deeeef         fd„Zdee         dee         dee         fd„Zdee         defd„Z dedeee         ee         f         deee         ee         f         deee         ee         f         dee         deed f         d!ed"ed#eeeeeeegdf                  d$ed%ed&edeeeee         ee         f         fd'„Z!d(eeeef                  d)ee         d*ee         d+edeed f         deee"f         fd,„Z#ded)ee         d*ee         dee         d+ed-ed"ed.e"d#eeeeeeegdf                  deee"ef         fd/„Z$dS )1ze
Code related to text extraction.

Some parts are still in _page.py. In doubt, they will stay there.
é    N)ÚAnyÚCallableÚOptionalÚUnioné   )ÚFont)Úis_char_neutralÚis_char_rtl)ÚDictionaryObjectÚTextStringObjectÚencode_pdfdocencodingÚ ÚCUSTOM_RTL_MINÚCUSTOM_RTL_MAXÚCUSTOM_RTL_SPECIAL_CHARSé   Ú LAYOUT_NEW_BT_GROUP_SPACE_WIDTHSiÿÿ c                   ó   — e Zd ZdS )ÚOrientationNotFoundErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úMC:\Projects\DSCons\.venv\Lib\site-packages\pypdf\_text_extraction\__init__.pyr   r      s   € € € € € Ø€Dr   r   Ú_minÚ_maxÚspecialsÚreturnc                 ó"  — t          | t          ¦  «        r,t          | cxk    rt          k    rn nt	          | ¦  «        ndant          | t          ¦  «        r| at          |t          ¦  «        r,t          |cxk    rt          k    rn nt	          |¦  «        ndant          |t          ¦  «        r|at          |t          ¦  «        r|an4t          |t          ¦  «        rd 
                    d„ |D ¦   «         ¦  «        at
          t          t          fS )aê  
    Change the Right-To-Left and special characters custom parameters.

    Args:
        _min: The new minimum value for the range of custom characters that
            will be written right to left.
            If set to ``None``, the value will not be changed.
            If set to a valid integer, it will be converted to its corresponding character.
            The default value is "", which sets no additional range to be converted.
        _max: The new maximum value for the range of custom characters that will
            be written right to left.
            If set to ``None``, the value will not be changed.
            If set to a valid integer, it will be converted to its corresponding character.
            The default value is "", which sets no additional range to be converted.
        specials: The new list of special characters to be inserted in the
            current insertion order.
            If set to ``None``, the current value will not be changed.
            If set to a string, it will be converted to a list of ASCII codes.
            The default value is an empty list.

    Returns:
        A tuple containing the new values for ``CUSTOM_RTL_MIN``,
        ``CUSTOM_RTL_MAX``, and ``CUSTOM_RTL_SPECIAL_CHARS``.

    r   c              3   óh   K  — | ]-}t           |cxk    rt          k    ¯n nt          |¦  «        V — Œ.d S )N)ÚUNICODE_LOWER_LIMITÚUNICODE_UPPER_LIMITÚchr)Ú.0Úchars     r   ú	<genexpr>z!set_custom_rtl.<locals>.<genexpr>D   sT   è è € ð +
ð +
ØÕ.AÀTÐ.`Ð.`Ò.`Ð.`ÕM`Ò.`Ð.`Ð.`Ð.`Ð.`�C�‰IŒIÐ.`Ð.`Ð.`Ð.`ð+
ð +
r   )Ú
isinstanceÚintr"   r#   r$   r   Ústrr   r   ÚlistÚjoin)r   r   r   s      r   Úset_custom_rtlr-      s+  € õ> �$�ÑÔð Ý&9¸TÐ&XÐ&XÒ&XÐ&XÕEXÒ&XÐ&XÐ&XÐ&XÐ&X�˜T™œ˜Ð^`ˆˆÝ	�D�#Ñ	Ô	ð ØˆÝ�$�ÑÔð Ý&9¸TÐ&XÐ&XÒ&XÐ&XÕEXÒ&XÐ&XÐ&XÐ&XÐ&X�˜T™œ˜Ð^`ˆˆÝ	�D�#Ñ	Ô	ð ØˆÝ�(�CÑ Ô ð 
Ø#+Ð Ð Ý	�H�dÑ	#Ô	#ð 
Ø#%§7¢7ð +
ð +
Ø"*ð+
ñ +
ô +
ñ $
ô $
Ð õ �>Õ+CÐCÐCr   ÚmÚnc           	      óÂ  — | d         |d         z  | d         |d         z  z   | d         |d         z  | d         |d         z  z   | d         |d         z  | d         |d         z  z   | d         |d         z  | d         |d         z  z   | d         |d         z  | d         |d         z  z   |d         z   | d         |d         z  | d         |d         z  z   |d         z   gS )Nr   é   r   é   é   r   r   )r.   r/   s     r   Úmultr4   J   sÞ   € à	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ!Ø	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ!Ø	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ!Ø	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ!Ø	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ! A a¤DÑ(Ø	ˆ!Œˆq�Œt‰�a˜”d˜Q˜qœT‘kÑ! A a¤DÑ(ðð r   c                 óZ   — | d         dk    rdS | d         dk     rdS | d         dk    rdS dS )	Nr2   g�íµ ÷Æ°>r   g�íµ ÷Æ°¾é´   r1   éZ   é  r   )r.   s    r   Úorientr9   U   s=   € Øˆ„tˆd‚{€{ØˆqØˆ„tˆe‚|€|ØˆsØˆ„tˆa‚x€xØˆrØˆ3r   ÚtextÚ	cmtm_prevÚcmtm_matrixÚ	memo_cmtmÚfont_resourceÚorientations.ÚoutputÚ	font_sizeÚvisitor_textÚ
str_widthsÚ
spacewidthÚ
str_heightc                 ó¦  — |d         }|d         }|d         }|d         }|d         }|d         }t          ||¦  «        }t          ||¦  «        }t          |¦  «        }|d         |d         z
  }|d         |d         z
  }t          j        |d         dz  |d         dz  z   ¦  «        }t          j        |d         dz  |d         dz  z   ¦  «        }t          j        |d         dz  |d         dz  z   ¦  «        }|}||vrt          ‚|dv r|}|}n|dv r|}|}	 t          |¦  «        d	t          ||z  ||z  ¦  «        z  k    r.|| z   d
         dk    r|| dz   z  }|� || dz   ||||¦  «         d} n ||
|	z   |z  k    r|| z   d
         dk    r| dz  } n# t          $ r Y nw xY w|                     ¦   «         }|                     ¦   «         }| |||fS )Nr   r1   r3   r   r   r2   )r   r6   )r7   r8   gš™™™™™é?éÿÿÿÿú
r   ú )	r4   r9   ÚmathÚsqrtr   ÚabsÚminÚ	ExceptionÚcopy)r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   Úcm_prevÚtm_prevÚ	cm_matrixÚ	tm_matrixÚmemo_cmÚmemo_tmÚm_prevr.   ÚorientationÚdelta_xÚdelta_yÚscale_prev_xÚscale_prev_yÚscale_yÚmoved_heightÚmoved_widths                               r   Úcrlf_space_checkr_   _   s>  € ð ˜Œl€GØ˜Œl€GØ˜A”€IØ˜A”€IØ˜Œl€GØ˜Œl€Gå�'˜7Ñ#Ô#€FÝˆY˜	Ñ"Ô"€AÝ˜‘)”)€KØ�Œd�V˜A”YÑ€GØ�Œd�V˜A”YÑ€Gå”9˜W QœZ¨™]¨W°Q¬Z¸©]Ñ:Ñ;Ô;€LÝ”9˜W QœZ¨™]¨W°Q¬Z¸©]Ñ:Ñ;Ô;€LÝŒi˜	 !œ a™¨)°A¬,¸©/Ñ9Ñ:Ô:€GØ€Gà˜,Ð&Ð&Ý&Ð&Ø�hÐÐØ%ˆØ$ˆˆØ	˜	Ð	!Ð	!ØˆØˆðÝˆ|ÑÔ˜s¥S¨°lÑ)BÀIÐPWÑDWÑ%XÔ%XÑXÒXÐXØ˜‘˜rÔ" dÒ*Ð*Ø˜$ ™+Ñ%�ØÐ+Ø �LØ˜t™ØØØ%Ø!ñô ð ð �øà˜Z¨*Ñ4¸ÑDÒDÐDØ˜$‘ Ô# sÒ*Ð*à�C‰KˆDøøÝð ð ð Øˆðøøøà�nŠnÑÔ€GØ�nŠnÑÔ€GØ�˜ 'Ð)Ð)s   ÄA8F Æ
F"Æ!F"ÚoperandsrR   rS   Úfontc                 ó<  ‡— d}d}t          ||¦  «        }t          |¦  «        }||v rñt          | ¦  «        dk    rÞt          | d         t          ¦  «        r| d         }d}n¸d}t          | d         t          ¦  «        rt          | d         ¦  «        n| d         }	t          ‰j        t          ¦  «        rC	 |	                     ‰j        d¦  «        }nG# t          $ r |	                     dd¦  «        }Y n%w xY wd 	                    ˆfd„|	D ¦   «         ¦  «        }||fS )Nr   Fr   TÚsurrogatepassÚcharmapc                 ó€   •— g | ]:}|‰j         v r‰j         |         n!t          |f¦  «                             ¦   «         ‘Œ;S r   )ÚencodingÚbytesÚdecode)r%   Úxra   s     €r   ú
<listcomp>z%get_text_operands.<locals>.<listcomp>À   sF   ø€ ÐbÐbÐbÐZ[¨¨d¬mÐ);Ð);�T”] 1Ô%Ð%ÅÈÀtÁÄ×ASÒASÑAUÔAUÐbÐbÐbr   )
r4   r9   Úlenr(   r*   r   rf   rh   rN   r,   )
r`   rR   rS   ra   r?   ÚtÚis_str_operandsr.   rW   Útts
      `      r   Úget_text_operandsro       sE  ø€ ð €AØ€OÝˆY˜	Ñ"Ô"€AÝ˜‘)”)€KØ�lÐ"Ð"¥s¨8¡}¤}°qÒ'8Ð'8Ý�h˜q”k¥3Ñ'Ô'ð 	Ø˜”ˆAØ"ˆOˆOàˆAõ ˜h qœk­3Ñ/Ô/ð!Õ% h¨q¤kÑ2Ô2Ð2à˜a”[ð õ
 ˜$œ-­Ñ-Ô-ð ð>ØŸ	š	 $¤-°ÑAÔA�A�AøÝ ð >ð >ð >ð Ÿ	š	 )¨_Ñ=Ô=�A�A�Að	>øøøð —G’GØbÐbÐbÐbÐ_aÐbÑbÔbñô �ð ˆÐÐs   Â7C Ã C6Ã5C6Útext_operandsÚrtl_dirc	                 óÐ  — d}	|D ]Ý}
|	|
|j         k    r|j        n|                     |
¦  «        z  }	|j                             |
|
¦  «        }t          |¦  «        dk    rwt          |t          ¦  «        r|r|| z   n| |z   } Œ|t          |t          t          ¦  «        r|sd}|� || ||||¦  «         d} || z   } Œ´|rd}|� || ||||¦  «         d} | |z   } ŒÑ|r|| z   n| |z   } ŒÞ| ||	fS )Ng        r1   Tr   F)Ú
space_charÚspace_widthÚget_text_widthÚcharacter_mapÚgetrk   r	   r   r
   r   r   )r:   rR   rS   r>   ra   rp   rA   rq   rB   ÚwidthsÚraw_characterri   s               r   Úget_display_strrz   Å   sT  € ð €FØ&ð 5ð 5ˆØ m°t´Ò&FÐ&F�$Ô"Ð"ÈD×L_ÒL_Ð`mÑLnÔLnÑnˆØÔ×"Ò" =°-Ñ@Ô@ˆåˆq‰6Œ6�QŠ;ˆ;õ   Õ#;Ñ<Ô<ð ð $+Ð8�q˜4‘x�x°°q±��õ ˜A�~­~Ñ>Ô>ð ð ð Ø"�GØ#Ð/Ø$˜ T¨9°iÀÐPYÑZÔZÐZØ�DØ˜4‘x��ð ð Ø#�GØ#Ð/Ø$˜ T¨9°iÀÐPYÑZÔZÐZØ�DØ˜a‘x��ð  'Ð4�1�t‘8�8¨D°1©HˆDˆDØ�˜&Ð Ð r   )r   r   N)%Ú__doc__rJ   Útypingr   r   r   r   Ú_fontr   Ú_utilsr	   r
   Úgenericr   r   r   r   r*   Ú__annotations__r   r   r   r)   r"   r#   rN   r   r+   Útupler-   Úfloatr4   r9   r_   Úboolro   rz   r   r   r   ú<module>r„      s  ððð ð ð €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oà€�Ð Ð Ñ Ø€�Ð Ð Ñ Ø "Ð ˜#Ð "Ð "Ñ "Ø()Ð   #Ð )Ð )Ñ )ØÐ ØÐ ð	ð 	ð 	ð 	ð 	˜yñ 	ô 	ð 	ð
 #%Ø"$Ø,0ð-Dð -DØ
��S˜$�Ô
ð-Dà
��S˜$�Ô
ð-Dð �C˜˜cœ DÐ(Ô)ð-Dð ˆ3��Sˆ=Ôð	-Dð -Dð -Dð -Dð`ˆD�ŒKð ˜D œKð ¨D°¬Kð ð ð ð ðˆd�5Œkð ˜cð ð ð ð ð>*Ø
ð>*à�T˜%”[ $ u¤+Ð-Ô.ð>*ð �t˜E”{ D¨¤KÐ/Ô0ð>*ð �T˜%”[ $ u¤+Ð-Ô.ð	>*ð
 Ð,Ô-ð>*ð ˜˜S˜”/ð>*ð ð>*ð ð>*ð ˜8 S¨#¨s°C¸Ð$=¸tÐ$CÔDÔEð>*ð ð>*ð ð>*ð ð>*ð ˆ3��T˜%”[ $ u¤+Ð-Ô.ð>*ð >*ð >*ð >*ðB" Ø�5˜Ð.Ð.Ô/Ô0ð" à�EŒ{ð" ð �EŒ{ð" ð ð	" ð
 ˜˜S˜”/ð" ð ˆ3�ˆ9Ôð" ð " ð " ð " ðJ,!Ø
ð,!à�EŒ{ð,!ð �EŒ{ð,!ð Ð,Ô-ð	,!ð
 ð,!ð ð,!ð ð,!ð ð,!ð ˜8 S¨#¨s°C¸Ð$=¸tÐ$CÔDÔEð,!ð ˆ3��eÐÔð,!ð ,!ð ,!ð ,!ð ,!ð ,!r   