§
    ¡”j?  ã            	       ó*  — d dl mZmZmZmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZ erddlmZ ddlmZ ddlmZ  G d	„ d
¦  «        Z G d„ d¦  «        Zeeef         Zdddddeeeef                  fd„Zde
dddee         fd„Zdedddee         fd„ZdS )é    )ÚTYPE_CHECKINGÚOptionalÚUnionÚcasté   )Úlogger_warningé   )ÚArrayObjectÚDictionaryObjectÚIndirectObjectÚ	PdfObjectÚTextStringObjectÚis_null_or_none)Ú
PageObject)Ú	PdfReader)Ú	PdfWriterc                   óV   — e Zd ZdZdeddddfd„Zdeedf         fd„Zd	d
deddfd„Z	dS )ÚNamedReferenceLinkzGNamed reference link being preserved until we can resolve it correctly.Ú	referenceÚ
source_pdfr   ÚreturnNc                 ó"   — || _         || _        dS )z0reference: TextStringObject with named referenceN)Ú
_referenceÚ_source_pdf)Úselfr   r   s      úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pypdf/generic/_link.pyÚ__init__zNamedReferenceLink.__init__-   s   € à#ˆŒØ%ˆÔÐÐó    c                 óz   — | j         j                             t          | j        ¦  «        ¦  «        }|r|j        nd S ©N)r   Únamed_destinationsÚgetÚstrr   Úpage)r   Údestinations     r   Úfind_referenced_pagez'NamedReferenceLink.find_referenced_page2   s8   € ØÔ&Ô9×=Ò=½cÀ$Ä/Ñ>RÔ>RÑSÔSˆØ#.Ð8ˆ{ÔÐ°DÐ8r   Ú
target_pdfr   Únew_pagec                 óš   — t          | j        ¦  «        |j        vr/|                     t          | j        ¦  «        |j        ¦  «         dS dS )ú2target_pdf: PdfWriter which the new link went intoN)r#   r   r!   Úadd_named_destinationÚpage_number©r   r'   r(   s      r   Úpatch_referencez"NamedReferenceLink.patch_reference6   sN   € õ ˆtŒÑÔ zÔ'DÐDÐDØ×,Ò,­S°´Ñ-AÔ-AÀ8ÔCWÑXÔXÐXÐXÐXð EÐDr   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r&   r.   © r   r   r   r   *   s�   € € € € € ØQÐQð&Ð"2ð &Àð &ÐPTð &ð &ð &ð &ð
9 e¨N¸DÐ,@Ô&Að 9ð 9ð 9ð 9ðY¨+ð YÀð YÐTXð Yð Yð Yð Yð Yð Yr   r   c                   óB   — e Zd ZdZdeddfd„Zdefd„Zddd	eddfd
„ZdS )ÚDirectReferenceLinkzHDirect reference link being preserved until we can resolve it correctly.r   r   Nc                 ó   — || _         dS )zIreference: an ArrayObject whose first element is the Page indirect objectN©r   )r   r   s     r   r   zDirectReferenceLink.__init__@   s   € à#ˆŒˆˆr   c                 óB   — t          t          | j        d         ¦  «        S )Nr   )r   r   r   )r   s    r   r&   z(DirectReferenceLink.find_referenced_pageD   s   € Ý•N D¤O°AÔ$6Ñ7Ô7Ð7r   r'   r   r(   c                 ó   — || j         d<   dS )r*   r   Nr7   r-   s      r   r.   z#DirectReferenceLink.patch_referenceG   s   € à%ˆŒ˜ÑÐÐr   )	r/   r0   r1   r2   r
   r   r   r&   r.   r3   r   r   r5   r5   =   s�   € € € € € ØRÐRð$ +ð $°$ð $ð $ð $ð $ð8 nð 8ð 8ð 8ð 8ð&¨+ð &Àð &ÐTXð &ð &ð &ð &ð &ð &r   r5   r(   r   Úold_pager   c                 óÈ  ‡ ‡‡— ‰                       dt          ¦   «         ¦  «                             ¦   «         }‰                      dt          ¦   «         ¦  «                             ¦   «         }t          |¦  «        rt          ¦   «         }t          |¦  «        rt          ¦   «         }t	          |t          ¦  «        rt	          |t          ¦  «        st          d|› d|› d�t          ¦  «         g S ˆˆ fd„|D ¦   «         }ˆˆfd„|D ¦   «         }t          |¦  «        t          |¦  «        k    rt          d|› d|› �t          ¦  «         t          t          ||¦  «        ¦  «        S )	a!  Extracts links from two pages on the assumption that the two pages are
    the same. Produces one list of (new link, old link) tuples.

    Non-link annotations are ignored before pairing to avoid dropping valid
    links when one page includes additional non-link annotation entries.
    z/AnnotszExpected annotation arrays: ú z. Ignoring annotations.c                 ó8   •— g | ]}t          |‰¦  «        xŠ®‰‘ŒS r    ©Ú_build_link)Ú.0Ú
annotationÚlinkr(   s     €€r   ú
<listcomp>z!extract_links.<locals>.<listcomp>b   ó8   ø€ ð ð ð àÝ 
¨HÑ5Ô5Ð5ˆDÐBð 	àBÐBÐBr   c                 ó8   •— g | ]}t          |‰¦  «        xŠ®‰‘ŒS r    r>   )r@   rA   rB   r:   s     €€r   rC   z!extract_links.<locals>.<listcomp>g   rD   r   zAnnotation sizes differ: z vs. )
r"   r
   Ú
get_objectr   Ú
isinstancer   r/   ÚlenÚlistÚzip)r(   r:   Únew_annotationsÚold_annotationsÚ	new_linksÚ	old_linksrB   s   ``    @r   Úextract_linksrO   O   sŠ  øøø€ ð —l’l 9­k©m¬mÑ<Ô<×GÒGÑIÔI€OØ—l’l 9­k©m¬mÑ<Ô<×GÒGÑIÔI€OÝ�Ñ'Ô'ð (Ý%™-œ-ˆÝ�Ñ'Ô'ð (Ý%™-œ-ˆÝ�o¥{Ñ3Ô3ð ½:ÀoÕWbÑ;cÔ;cð ÝØe¨?ÐeÐe¸_ÐeÐeÐeÝñ	
ô 	
ð 	
ð ˆ	ðð ð ð ð à)ðñ ô €Ið
ð ð ð ð à)ðñ ô €Iõ ˆ9�~„~�˜Y™œÒ'Ð'ÝØC¨	ÐCÐC¸	ÐCÐCÝñ	
ô 	
ð 	
õ
 •�I˜yÑ)Ô)Ñ*Ô*Ð*r   Úindirect_objectr$   c                 ó¾  — t          d|j        ¦  «        }t          t          |                      ¦   «         ¦  «        }t	          |t          ¦  «        r|                     d¦  «        dk    rd S d|v rRt          t          |d         ¦  «        }|                     d¦  «        dk    rd S d|vrd S t          |d         |¦  «        S d|v rt          |d         |¦  «        S d S )	Nr   z/Subtypez/Linkz/Az/Sz/GoToz/Dz/Dest)r   Úpdfr   rF   rG   r"   Ú_create_link)rP   r$   ÚsrcrB   Úactions        r   r?   r?   v   sÜ   € Ý
ˆ{˜DœHÑ
%Ô
%€CÝÕ  /×"<Ò"<Ñ">Ô">Ñ?Ô?€DÝ�tÕ-Ñ.Ô.ð °4·8²8¸JÑ3GÔ3GÈ7Ò3RÐ3RØˆtàˆt€|€|ÝÕ&¨¨T¬
Ñ3Ô3ˆØ�:Š:�dÑÔ˜wÒ&Ð&Ø�4à�vÐÐØ�4Ý˜F 4œL¨#Ñ.Ô.Ð.à�$€€Ý˜D œM¨3Ñ/Ô/Ð/àˆ4r   r   r   r   c                 ó˜   — t          | t          ¦  «        rt          | |¦  «        S t          | t          ¦  «        rt	          | ¦  «        S d S r    )rG   r   r   r
   r5   )r   r   s     r   rS   rS   ‹   sJ   € Ý�)Õ-Ñ.Ô.ð 9Ý! )¨ZÑ8Ô8Ð8Ý�)�[Ñ)Ô)ð .Ý" 9Ñ-Ô-Ð-Øˆ4r   N)Útypingr   r   r   r   Ú_utilsr   Ú r
   r   r   r   r   r   Ú_pager   Ú_readerr   Ú_writerr   r   r5   ÚReferenceLinkrI   ÚtuplerO   r?   rS   r3   r   r   ú<module>r_      s¸  ðð> 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à #Ð #Ð #Ð #Ð #Ð #Ø iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iàð $Ø"Ð"Ð"Ð"Ð"Ð"Ø#Ð#Ð#Ð#Ð#Ð#Ø#Ð#Ð#Ð#Ð#Ð#ðYð Yð Yð Yð Yñ Yô Yð Yð&&ð &ð &ð &ð &ñ &ô &ð &ð Ð(Ð*=Ð=Ô>€ð$+˜Lð $+°Lð $+ÀTÈ%ÐP]Ð_lÐPlÔJmÔEnð $+ð $+ð $+ð $+ðN ð °|ð ÈÐQ^ÔH_ð ð ð ð ð*˜Ið °;ð À8ÈMÔCZð ð ð ð ð ð r   