Ë
    ¨Œjîö  ã                   ó  — d Z dZddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZ dd	lmZmZmZ dd
lmZmZmZmZmZmZmZmZ ddlm Z m!Z!m"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,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZA ddlmBZBmCZC ejˆ                  dk\  rddlmEZE nddlFmEZE  ejŽ                  eH«      ZI ej”                  d«      ZK G d„ deLe   e7«      ZM G d„ deNeef   e7«      ZO G d„ deO«      ZPded dfd!„ZQ G d"„ d#eO«      ZR G d$„ d%eR«      ZS G d&„ d'eR«      ZT G d(„ d)eS«      ZU	 d2d*ed+ee   d,edeVeLeV   eNeWeVf   f   d ee7eWeVeUf   fd-„ZX G d.„ d/eP«      ZY G d0„ d1eP«      ZZy)3zMathieu Fenniakzbiziqe@mathieu.fenniak.neté    N)ÚIterableÚSequence)ÚBytesIO)Úceil)ÚAnyÚCallableÚOptionalÚUnionÚcasté   )ÚPdfReaderProtocolÚPdfWriterProtocolÚXmpInformationProtocol)ÚWHITESPACESÚ
StreamTypeÚdeprecation_no_replacementÚlogger_warningÚread_non_whitespaceÚread_until_regexÚread_until_whitespaceÚskip_over_comment)ÚCheckboxRadioButtonAttributesÚFieldDictionaryAttributesÚOutlineFontFlag)ÚFilterTypes)ÚStreamAttributes)ÚTypArguments)ÚTypFitArguments)ÚSTREAM_TRUNCATED_PREMATURELYÚPdfReadErrorÚPdfStreamErroré   )
ÚBooleanObjectÚByteStringObjectÚFloatObjectÚIndirectObjectÚ
NameObjectÚ
NullObjectÚNumberObjectÚ	PdfObjectÚTextStringObjectÚis_null_or_none)ÚFit)Úextract_inline_A85Úextract_inline_AHxÚextract_inline_DCTÚextract_inline_defaultÚextract_inline_RL)Úread_hex_string_from_streamÚread_string_from_stream)é   é   )ÚSelfs   [+-]?(\d+)\s+(\d+)\s+R[^a-zA-Z]c                   ó"  — e Zd Zdedd fd„Z	 	 ddededeeee	e
f         dd fd„Zde
fd„Zdee   fd„Zd	edee   fd
„Zd	edd fd„Zd	edefd„Zd	edefd„Z	 ddedede	ef   ddfd„Ze	 ddedee   dede	ee	   ee
e	f   f   dd fd„«       Zy)ÚArrayObjectÚpdf_destÚreturnc                 óÚ   — t        d| j                  t        «       |d«      «      }| D ]@  }t        |d«      r!|j	                  |j                  |«      «       Œ0|j	                  |«       ŒB |S )Nr9   FÚ	replicate)r   Ú_reference_cloner9   ÚhasattrÚappendr=   )Úselfr:   ÚarrÚdatas       úh/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pypdf/generic/_data_structures.pyr=   zArrayObject.replicated   sc   € ô ØØ×!Ñ!¤+£-°¸5ÓAó
ˆó ˆDÜ�t˜[Ô)Ø—
‘
˜4Ÿ>™>¨(Ó3Õ4à—
‘
˜4Õ ð	 ð
 ˆ
ó    Úforce_duplicateÚignore_fieldsc                 óØ  — 	 | j                   j                  |k(  r|s| S t        d| j	                  t        «       ||«      «      }| D ]’  }t        |t        «      r@|j	                  |j                  |||«      ||«      }|j                  |j                   «       ŒSt        |d«      r#|j                  |j                  |||«      «       Œ‚|j                  |«       Œ” |S # t        $ r Y ŒÉw xY w)úClone object into pdf_dest.r9   Úclone)Úindirect_referenceÚpdfÚ	Exceptionr   r>   r9   Ú
isinstanceÚStreamObjectrJ   r@   r?   )rA   r:   rF   rG   rB   rC   Údups          rD   rJ   zArrayObject.clones   sß   € ð	Ø×&Ñ&×*Ñ*¨hÒ6¹Ø�ô ØØ×!Ñ!¤+£-°¸?ÓKó
ˆó ˆDÜ˜$¤Ô-Ø×+Ñ+Ø—J‘J˜x¨¸-ÓHØØ#ó�ð
 —
‘
˜3×1Ñ1Õ2Ü˜˜wÔ'Ø—
‘
˜4Ÿ:™: h°ÀÓOÕPà—
‘
˜4Õ ð ð ˆ
øô% ò 	Ùð	ús   ‚C Ã	C)Ã(C)c                 óP   — t        | j                  t        d„ | D «       «      f«      S )úq
        Used to detect modified object.

        Returns:
            Hash considering type and value.

        c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N©Úhash_bin)Ú.0Úxs     rD   Ú	<genexpr>z'ArrayObject.hash_bin.<locals>.<genexpr>™   s   è ø€ Ð*FÁ¸A¨1¯:©:¯<Áùs   ‚)ÚhashÚ	__class__Útuple©rA   s    rD   rV   zArrayObject.hash_bin‘   s#   € ô �T—^‘^¤UÑ*FÁÓ*FÓ%FÐGÓHÐHrE   c                 ó   — t        | «      S )z:Emulate DictionaryObject.items for a list (index, object).)Ú	enumerater]   s    rD   ÚitemszArrayObject.items›   s   € ä˜‹ÐrE   Úlstc                 ó  — t        |t        t        t        f«      r	 |S t        |t        «      r|g}|S t        |t
        «      r$|d   dk(  rt        |«      g}|S t        |«      g}|S t        |t        «      rt        |«      g}|S |g}|S )Nr   Ú/)
rN   Úlistr\   Úsetr*   Ústrr'   r+   Úbytesr$   ©rA   ra   s     rD   Ú_to_lstzArrayObject._to_lstŸ   s¥   € ä�cœD¤%¬Ð-Ô.Øð ˆ
ô ˜œYÔ'Ø�%ˆCð ˆ
ô ˜œSÔ!Ø�1‰v˜Š}Ü! #“Ð'�ð ˆ
ô (¨Ó,Ð-�ð
 ˆ
ô	 ˜œUÔ#Ü# CÓ(Ð)ˆCð ˆ
ð �%ˆCØˆ
rE   c                 ó\   — t        | «      }|j                  | j                  |«      «       |S )aÇ  
        Allow extension by adding list or add one element only

        Args:
            lst: any list, tuples are extended the list.
            other types(numbers,...) will be appended.
            if str is passed it will be converted into TextStringObject
            or NameObject (if starting with "/")
            if bytes is passed it will be converted into ByteStringObject

        Returns:
            ArrayObject with all elements

        )r9   Úextendri   )rA   ra   Útemps      rD   Ú__add__zArrayObject.__add__°   s(   € ô ˜4Ó ˆØ�‰�D—L‘L Ó%Ô&ØˆrE   c                 óF   — | j                  | j                  |«      «       | S )aŒ  
         Allow extension by adding list or add one element only

        Args:
            lst: any list, tuples are extended the list.
            other types(numbers,...) will be appended.
            if str is passed it will be converted into TextStringObject
            or NameObject (if starting with "/")
            if bytes is passed it will be converted into ByteStringObject

        )rk   ri   rh   s     rD   Ú__iadd__zArrayObject.__iadd__Ã   s   € ð 	�‰�D—L‘L Ó%Ô&ØˆrE   c                 óz   — | j                  |«      D ]  }	 | j                  |«      }| |= Œ | S # t        $ r Y Œ'w xY w)zAllow to remove items)ri   ÚindexÚ
ValueError)rA   ra   rX   rq   s       rD   Ú__isub__zArrayObject.__isub__Ò   sI   € à—‘˜cÖ"ˆAðØŸ
™
 1›�Ø˜‘Kð #ð ˆøô ò Ùðús   –.®	:¹:NÚstreamÚencryption_keyc                 ó¶   — |�t        dd«       |j                  d«       | D ]$  }|j                  d«       |j                  |«       Œ& |j                  d«       y )Nú/the encryption_key parameter of write_to_streamú5.0.0ó   [ó    s    ])r   ÚwriteÚwrite_to_stream)rA   rt   ru   rC   s       rD   r|   zArrayObject.write_to_streamÜ   sW   € ð Ð%Ü&ØAÀ7ôð 	�‰�TÔÛˆDØ�L‰L˜ÔØ× Ñ  Õ(ð ð 	�‰�UÕrE   rL   Úforced_encodingc                 óê  — t        «       }| j                  d«      }|dk7  rt        d«      ‚	 | j                  d«      }|j                  «       r"| j                  d«      }|j                  «       rŒ"|dk(  r	 |S |dk(  r| j	                  dd«       t        | «       Œo| j	                  dd«       | j                  d«      }|dk(  r	 |S | j	                  dd«       |j                  t        | ||«      «       ŒÈ)Nr"   ry   zCould not read arrayrE   ó   %éÿÿÿÿó   ])r9   Úreadr    ÚisspaceÚseekr   r@   Úread_object)rt   rL   r}   rB   ÚtmpÚtokÚ
peek_aheads          rD   Úread_from_streamzArrayObject.read_from_streamé   sæ   € ô ‹mˆØ�k‰k˜!‹nˆØ�$Š;ÜÐ5Ó6Ð6Øà—+‘+˜a“.ˆCØ—+‘+”-Ø—k‘k !“n�ð —+‘+•-à�cŠzØð ˆ
ð �dŠ{Ø—‘˜B Ô"Ü! &Ô)ØØ�K‰K˜˜AÔàŸ™ Q›ˆJØ˜TÒ!Øð ˆ
ð �K‰K˜˜AÔà�J‰J”{ 6¨3°Ó@ÔAð% rE   ©F© rT   )Ú__name__Ú
__module__Ú__qualname__r   r=   Úboolr	   r   r
   rf   ÚintrJ   rV   r   r   r`   rd   ri   rm   r7   ro   rs   r   rg   r|   Ústaticmethodr   Údictr‰   r‹   rE   rD   r9   r9   c   s[  „ ðà#ðð 
óð$ !&Ø=?ñ	à#ðð ðð   ¨¨s°C¨x©Ñ 9Ñ:ð	ð
 
óð<I˜#ó Ið�x ‘}ó ð˜3ð  4¨¡9ó ð"˜3ð  =ó ð&˜Cð  Dó ð˜Cð  Dó ð MQñØ ðØ27¸¸cÀ5Ð8HÑ2Iðà	óð ð HLñØðàÐ'Ñ(ðð ˜t S¨$¨s©)°T¸#¸s¸(±^ÐCÑDðð 
ò	ó ñrE   r9   c                   ó’  — e Zd Zdedd fd„Z	 	 ddededeeee	e
f         dd fd„Zdd dededeeee	e
f         deee
e
f      dd	fd
„Zde
fd„Zdedefd„Zdde	dedefd„Zdededefd„Zddedee   defd„Zdedefd„Zedee   fd„«       Z	 ddeded	e	ef   dd	fd„Ze	 ddedee   ded	e	ee	   e e
e	f   f   dd fd„«       Z!y	)ÚDictionaryObjectr:   r;   c                 óî   — t        d| j                  | j                  «       |d«      «      }| j                  «       D ]6  \  }}t	        |d«      r|j                  |«      n|||j                  |«      <   Œ8 |S )Nr”   Fr=   )r   r>   r[   r`   r?   r=   )rA   r:   Úd__ÚkÚvs        rD   r=   zDictionaryObject.replicate
  sq   € ô ØØ×!Ñ! $§.¡.Ó"2°H¸eÓDó
ˆð —J‘J–L‰DˆAˆqä)0°°KÔ)@�—‘˜HÔ%Àað �—‘˜HÓ%Ò&ð !ð ˆ
rE   rF   rG   c                 ó4  — 	 | j                   j                  |k(  r|s| S t        «       }t	        d| j                  | j                  «       ||«      «      }|€g }t        |j                  «       «      dk(  r|j                  | ||||«       |S # t        $ r Y Œww xY w)rI   r”   r   )
rK   rL   rM   re   r   r>   r[   ÚlenÚkeysÚ_clone©rA   r:   rF   rG   Úvisitedr–   s         rD   rJ   zDictionaryObject.clone  s�   € ð	Ø×&Ñ&×*Ñ*¨hÒ6¹Ø�ô ),«ˆÜØØ×!Ñ! $§.¡.Ó"2°H¸oÓNó
ˆð Ð ØˆMÜˆs�x‰x‹z‹?˜aÒØ�J‰J�t˜X ¸ÀwÔOØˆ
øô ò 	Ùð	ús   ‚B Â	BÂBÚsrcrž   Nc           
      ó&  ‡‡— ‰€J ‚t        ‰«      Šd}|t        ‰«      k  rQt        ‰|   t        «      r*t	        t        ‰|   «      dk  r‰|= ‰|= Œ>‰|xx   dz  cc<   |dz  }|t        ‰«      k  rŒQt        ˆˆfd„dD «       «      �rÆt        ‰«      ŠdD �]µ  }|D �]¬  }g }	|‰v sŒ|| vsŒt        ‰j                  |«      t        «      sŒ0t        ‰|   t        «      sŒD‰j                  dd«      �Zt	        t        ‰|   «      j                  dd«      �7‰j                  dd«      t	        t        ‰|   «      j                  dd«      k(  sŒ°t	        d‰|   «      }
| }|
�Ët	        d|
j                  |
j                  «       ||«      «      }|j                  �H|j                  j                  }|j                  j                  }||f|v rd}
n_|j                  ||f«       |	j!                  |
|f«       |€J ‚|j                  |t#        |«      <   |}	 |
‰k(  rd}
nt	        d|
|   «      }
|
�ŒË|	D ]  \  }}|j'                  |||‰|«       Œ �Œ¯ �Œ¸ ‰j)                  «       D ]Ÿ  \  }}|‰vsŒt        |t*        «      rSt-        |d	«      sd|_        |j/                  ||‰«      }|j                  €J ‚|j                  | |j/                  |«      <   Œn|| vsŒst-        |d
«      r|j/                  ||‰«      n|| t#        |«      <   Œ¡ y# t$        $ r d}
Y Œèw xY w)z°
        Update the object from src.

        Args:
            src: "DictionaryObject":
            pdf_dest:
            force_duplicate:
            ignore_fields:

        Nr   r"   c              3   óˆ  •K  — | ]¹  }|‰vxr¯ |‰v xr© t        ‰j                  |«      t        «      xrˆ t        ‰|   t        «      xrs ‰j	                  d d«      du xs] t        t        ‰|   «      j	                  d d«      du xs6 ‰j	                  d d«      t        t        ‰|   «      j	                  d d«      k(  –— Œ» y­w)ú/TypeN)rN   Úraw_getr&   r”   Úgetr   )rW   ÚfieldrG   rŸ   s     €€rD   rY   z*DictionaryObject._clone.<locals>.<genexpr>P  sØ   øè ø€ ð 
ñ 8�ð ˜Ð&ò 	Ø˜�ò	ä˜3Ÿ;™; uÓ-¬~Ó>ò	ô ˜3˜u™:Ô'7Ó8ò	ð
 —‘˜ Ó&¨$Ð.ò IÜÔ(¨#¨e©*Ó5×9Ñ9¸'À4ÓHÈDÐPòIà—7‘7˜7 DÓ)ÜÔ(¨#¨e©*Ó5×9Ñ9¸'À4ÓHñIó	ñ 8ùs   ƒB?C)ú/Nextú/Prevú/Nú/V))r¦   r§   )r¨   r©   r¢   r”   rK   rJ   )rd   rš   rN   r�   r   Úanyr£   r&   r”   r¤   r>   r[   rK   ÚidnumÚ
generationÚaddr@   r'   rM   rœ   r`   rO   r?   rJ   )rA   rŸ   r:   rF   rG   rž   rX   ra   r—   ÚobjsÚcur_objÚprev_objÚclonr«   r¬   ÚsÚcr˜   Úvvs    `  `              rD   rœ   zDictionaryObject._clone0  sL  ù€ ð( Ð(Ð(Ð(Ü˜]Ó+ˆØˆØ”#�mÓ$Ò$Ü˜-¨Ñ*¬CÔ0Üœ˜]¨1Ñ-Ó.°!Ò3Ø% aÐ(Ø% aÐ(ØØ˜aÓ  AÑ%Ó Ø�‰FˆAð ”#�mÓ$Ó$ô ô 
ñ 8ó
õ 
ô ! Ó/ˆMÜ9�Ü�AØ�Dà˜SšØ TšMÜ& s§{¡{°1£~´~ÕFÜ& s¨1¡vÔ/?Õ@ð  ŸG™G G¨TÓ2Ð:Ü#Ô$4°c¸!±fÓ=×AÑAÀ'È4ÓPÐXØ"Ÿw™w w°Ó5Ü#Ô$4°c¸!±fÓ=×AÑAÀ'È4ÓPó Qô ?CØ.°°A±ó?˜ð @D˜Ø%Ð1Ü#'Ø 2Ø '× 8Ñ 8Ø$+×$5Ñ$5Ó$7¸À?ó!"ó$˜Dð  $×6Ñ6ÐBØ(,×(?Ñ(?×(EÑ(E Ø-1×-DÑ-D×-OÑ-O 
Ø$)¨:Ð#6¸'Ñ#AØ.2 GØ$)Ø '§¡¨U°JÐ,?Ô @Ø ŸK™K¨°$¨Ô8Ø#+Ð#7Ð7Ð#7Ø6:×6MÑ6M˜H¤Z°£]Ñ3Ø'+˜Hð/Ø#*¨c¢>Ø.2¡Gä.2Ð3EÀwÈqÁzÓ.R Gð/ &Ñ1ó4 %)™D˜A˜qØŸH™HØ ! 8¨_¸mÈWõò %)ò] ð :ðh —I‘I–K‰DˆAˆqØ˜Ò%Ü˜a¤Ô.Ü" 1Ð&:Ô;Ø/3˜Ô,ØŸ™ ¨?¸MÓJ�BØ×0Ñ0Ð<Ð<Ð<Ø.0×.CÑ.C�D˜Ÿ™ Ó*Ò+Ø˜d’]ô # 1 gÔ.ð Ÿ™ ¨/¸=ÔIàð œ A›Ò'ñ  øô $-ò /Ø*.¢ð/ús   ÈLÌLÌLc                 ól   — t        | j                  t        d„ | j                  «       D «       «      f«      S )rR   c              3   óF   K  — | ]  \  }}||j                  «       f–— Œ y ­wrT   rU   )rW   r—   r˜   s      rD   rY   z,DictionaryObject.hash_bin.<locals>.<genexpr>ª  s    è ø€ Ð#OÁ,¹$¸!¸Q Q¨¯
©
«Ô$5Á,ùs   ‚!)rZ   r[   r\   r`   r]   s    rD   rV   zDictionaryObject.hash_bin¡  s.   € ô Ø�^‰^œUÑ#OÀ$Ç*Á*Ä,Ó#OÓPÐQó
ð 	
rE   Úkeyc                 ó.   — t         j                  | |«      S rT   )r’   Ú__getitem__©rA   r·   s     rD   r£   zDictionaryObject.raw_get­  s   € Ü×Ñ  cÓ*Ð*rE   Údefaultc                 ó°   — || v r| |   S 	 d| vr|S t        d«      ‚# t         $ r0 t        d| d   j                  «       «      j                  ||«      cY S w xY w)a>  
        Returns the value of a key or from the parent if not found.
        If not found returns default.

        Args:
            key: string identifying the field to return

            default: default value to return

        Returns:
            Current key or inherited one, otherwise default value.

        ú/ParentzNot presentr”   )ÚKeyErrorr   Ú
get_objectÚget_inherited)rA   r·   r»   s      rD   rÀ   zDictionaryObject.get_inherited°  sn   € ð �$‰;Ø˜‘9Ðð	Ø Ñ$Ø�Ü˜=Ó)Ð)øÜò 	ÜÐ*¨D°©O×,FÑ,FÓ,HÓI×WÑWØ�Wóò ð	ús   ‹ ‘ œ6AÁAÚvaluec                 óœ   — t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚t        j	                  | ||«      S ©NzKey must be a PdfObjectzValue must be a PdfObject)rN   r*   rr   r’   Ú__setitem__©rA   r·   rÁ   s      rD   rÄ   zDictionaryObject.__setitem__É  sC   € Ü˜#œyÔ)ÜÐ6Ó7Ð7Ü˜%¤Ô+ÜÐ8Ó9Ð9Ü×Ñ  c¨5Ó1Ð1rE   c                 óœ   — t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚t        j	                  | ||«      S rÃ   )rN   r*   rr   r’   Ú
setdefaultrÅ   s      rD   rÇ   zDictionaryObject.setdefaultÐ  sA   € Ü˜#œyÔ)ÜÐ6Ó7Ð7Ü˜%¤Ô+ÜÐ8Ó9Ð9Ü�‰˜t S¨%Ó0Ð0rE   c                 óJ   — t         j                  | |«      j                  «       S rT   )r’   r¹   r¿   rº   s     rD   r¹   zDictionaryObject.__getitem__×  s   € Ü×Ñ  cÓ*×5Ñ5Ó7Ð7rE   c                 óŒ   — ddl m} | j                  dd«      }t        |«      ry|€J d«       ‚|j	                  «       } ||«      S )u¦  
        Retrieve XMP (Extensible Metadata Platform) data relevant to this
        object, if available.

        See Table 347 â€” Additional entries in a metadata stream dictionary.

        Returns:
          Returns a :class:`~pypdf.xmp.XmpInformation` instance
          that can be used to access XMP metadata from the document. Can also
          return None if no metadata was found on the document root.

        r   )ÚXmpInformationz	/MetadataNÚmypy)ÚxmprÊ   r¤   r,   r¿   )rA   rÊ   Úmetadatas      rD   Úxmp_metadatazDictionaryObject.xmp_metadataÚ  sL   € õ 	)à—8‘8˜K¨Ó.ˆÜ˜8Ô$ØØÐ#Ð+ VÓ+Ð#Ø×&Ñ&Ó(ˆÙ˜hÓ'Ð'rE   rt   ru   c                 ó\  — |�t        dd«       |j                  d«       | j                  «       D ]i  \  }}t        |«      dkD  r|d   dk(  r	|d   dk(  rŒ%|j	                  ||«       |j                  d«       |j	                  |«       |j                  d	«       Œk |j                  d
«       y )Nrw   rx   ó   <<
r   r"   Ú%r€   rz   ó   
ó   >>)r   r{   r`   rš   r|   )rA   rt   ru   r·   rÁ   s        rD   r|   z DictionaryObject.write_to_streamñ  sŸ   € ð Ð%Ü&ØAÀ7ôð 	�‰�WÔØŸ*™*ž,‰JˆC�Ü�3‹x˜!Š|  A¡¨#¢°#°b±'¸S².ØØ×Ñ ¨Ô7Ø�L‰L˜ÔØ×!Ñ! &Ô)Ø�L‰L˜Õð 'ð 	�‰�UÕrE   rL   r}   c           
      óº
  ‡— dt         dt         dt        t            dt        dt         f
d„Šdt        dt        dt        fˆfd„}| j                  d	«      }|d
k7  r&t        dt        | j                  «       «      › d�«      ‚i }	 t        | «      }|dk(  rŒ|dk(  r| j                  dd«       t        | «       Œ5|st        t        «      ‚|dk(  r| j                  d«       nÛ| j                  dd«       	 	 t        | |«      }t        |t         «      rnªt        |t"        «      st        d|›�«      ‚	 t        | «      }| j                  dd«       t        | ||«      }	|j3                  |«      s|	||<   nHdt        | j                  «       «      › d|› �}|�|j$                  rt        |«      ‚t'        |t*        «       �Œ7| j                  «       }t        | «      }|dk(  �r| j                  d«      dk(  �rj| j                  d«      }|dk(  r| j                  d«      }|dk(  rŒ|dvrt        d«      ‚|dk(  r&| j                  d«      dk7  r| j                  dd«       t4        j6                  |vr_|�|j$                  rt        d«      ‚t'        d| j                  «       › �t*        «       t9        d«      |t#        t4        j6                  «      <   |t4        j6                     }t        |t:        «      r<| j                  «       }|€J d«       ‚|j=                  |«      }| j                  |d «       |€d}| j                  «       }|d kD  r| j                  |«      |d!<   n"t?        | tA        jB                  d"«      «      |d!<   t        | «      }| j                  d#«      }||z   d"k7  rÑ| j                  «       }| j                  d$d«       | j                  d%«      }|d"k(  r|d!   d d |d!<   n�|�;|j$                  s/| j                  |d «        || |«      |d!<   | j                  «       }nP| j                  |d «       t        d&t        | j                  «       «      › d'|›d(|›d)�«      ‚| j                  |d «       d!|v rtD        jG                  |«      S t/        «       }
|
j1                  |«       |
S # t        $ r8}|�|j$                  r‚ t'        |j)                  «       t*        «       Y d }~�Œ\d }~ww xY w# t,        $ rl}|�%|j$                  rt        |j)                  «       «      ‚t'        |j)                  «       t*        «       t/        «       }
|
j1                  |«       |
cY d }~S d }~ww xY w)*NÚpÚp1Úrem_gensrL   r;   c                 óÔ   — |}|D ]L  }|j                   |   }	 |j                  «       D �cg c]  }| |cxk  r|k  sŒn n|‘Œ }}|rt        |g|¢­Ž }ŒN |S c c}w # t        $ r Y Œaw xY wrT   )ÚxrefÚvaluesÚminrr   )	rÕ   rÖ   r×   rL   ÚoutÚgenÚlocrX   rÚ   s	            rD   Úget_next_obj_posz;DictionaryObject.read_from_stream.<locals>.get_next_obj_pos  s}   € ð ˆCÛ�Ø—h‘h˜s‘m�ðØ),¯©¬ÓE© A¸¸Q¼À"¾ša¨�FÐEÙÜ! #Ð/¨Ò/˜øð  ð ˆJùò Føô "ò Ùðús'   ˜AªA»AÁAÁAÁ	A'Á&A'rt   c                 óN  •—  ‰| j                  «       dt        |j                  «      |«      dz
  }| j                  «       }| j                  || j                  «       z
  «      }|j	                  d«      }|dk  rt        d|› d�«      ‚| j                  ||z   dz   «       |d |dz
   S )Nl        r"   ó	   endstreamr   z6Unable to find 'endstream' marker for obj starting at Ú.é	   )Útellrd   rÙ   r‚   Úfindr    r„   )rt   rL   ÚeonÚcurrÚrwrÕ   rß   s         €rD   Úread_unsized_from_streamzCDictionaryObject.read_from_stream.<locals>.read_unsized_from_stream  s¢   ø€ ñ # 6§;¡;£=°%¼¸c¿h¹h»ÈÓMÐPQÑQˆCØ—;‘;“=ˆDØ—‘˜S 6§;¡;£=Ñ0Ó1ˆBØ—‘˜Ó%ˆAØ�1ŠuÜ"ØLÈTÈFÐRSÐTóð ð �K‰K˜˜q™ 1™Ô%Ø�g˜˜A™�;ÐrE   r   ó   <<zDictionary read error at byte z: stream must begin with '<<'ó    r   r€   r"   ó   >z)Expecting a NameObject for key but found z+Multiple definitions in dictionary at byte z	 for key ó   sé   s   treamrz   )rÒ   ó   z)Stream data must be followed by a newlinerï   rÒ   zStream length not definedzStream length not defined @pos=rË   r   Ú__streamdata__rá   é   iöÿÿÿrã   z7Unable to find 'endstream' marker after stream at byte z (nd='z', end='z').)$r�   rd   r   r   rg   r‚   r    Úhexrä   r   r„   r   r!   r   r…   rN   r(   r'   Ústrictr   Ú__repr__rŒ   rM   r”   Úupdater¤   ÚSAÚLENGTHr)   r&   r¿   r   ÚreÚcompilerO   Úinitialize_from_dictionary)rt   rL   r}   ré   r†   rC   r‡   r·   ÚexcrÁ   ÚretvalÚmsgÚposr²   ÚeolÚlengthÚtÚpstartÚeÚndstreamÚendrß   s                        @rD   r‰   z!DictionaryObject.read_from_stream  s  ø€ ð	Üð	Üð	Ü'+¬C¡yð	Ü7Hð	äó	ð	Üð	Ü%6ð	äõ	ð �k‰k˜!‹nˆØ�%Š<ÜØ0´°V·[±[³]Ó1CÐ0Dð E.ð .óð ð  "ˆØÜ% fÓ-ˆCØ�gŠ~ØØ�dŠ{Ø—‘˜B Ô"Ü! &Ô)ØÙÜ$Ô%AÓBÐBà�dŠ{Ø—‘˜A”ØØ�K‰K˜˜AÔððÜ% f¨cÓ2�CÜ! #¤zÔ2ØÜ% c¬:Ô6Ü*ØGÈÀwÐOóð ð 7ô *¨&Ó1�Ø—‘˜B Ô"Ü# F¨C°ÓA�ð —8‘8˜C”=Ø!��S’	ð BÜ˜6Ÿ;™;›=Ó)Ð*¨)°C°5ð:ð ð �? s§z¢zÜ& sÓ+Ð+Ü˜s¤HÔ-ñe ðh �k‰k‹mˆÜ Ó'ˆØ�‹9˜Ÿ™ Q›¨8Ó3Ø—+‘+˜a“.ˆCð ˜’+Ø—k‘k !“n�ð ˜“+à˜.Ñ(Ü$Ð%PÓQÐQØ�eŠ| §¡¨A£°%Ò 7Ø—‘˜B Ô"ä�y‰y Ñ$Ø�? s§z¢zÜ(Ð)DÓEÐEÜØ5°f·k±k³m°_ÐEÄxôô /;¸2Ó.>�”Z¤§	¡	Ó*Ñ+Øœ"Ÿ)™)‘_ˆFÜ˜&¤.Ô1Ø—K‘K“M�Ø�Ð.¨Ó.�ØŸ™¨Ó/�Ø—‘˜A˜qÔ!Øˆ~Ø�Ø—[‘[“]ˆFØ˜ŠzØ)/¯©°VÓ)<�Ð%Ò&ä)9ØœBŸJ™J |Ó4ó*�Ð%Ñ&ô $ FÓ+ˆAØ—{‘{ 1“~ˆHØ�H‘ Ò-ð —k‘k“m�Ø—‘˜C Ô#Ø—k‘k !“n�Ø˜,Ò&à-1Ð2BÑ-CÀCÀRÐ-H�DÐ)Ò*Ø�_¨S¯ZªZØ—K‘K ¨Ô*Ù-EÀfÈcÓ-R�DÐ)Ñ*Ø Ÿ+™+›-‘Cà—K‘K  QÔ'Ü&ØQÜ˜vŸ{™{›}Ó-Ð.¨f°X°LÀÈÈÈsðTóð ð
 �K‰K˜˜QÔØ˜tÑ#Ü×:Ñ:¸4Ó@Ð@Ü!Ó#ˆØ�‰�dÔØˆøô} $ò Ø�¨3¯:ª:ØÜ" 3§<¡<£>´8Ô<Ýûð	ûô ò Ø�? s§z¢zÜ& s§|¡|£~Ó6Ð6Ü˜sŸ|™|›~¬xÔ8Ü)Ó+�Ø—‘˜dÔ#Ø•ûðúsI   Ã2R! ÄR! Ä-+S% Ò!	S"Ò*-SÓS% ÓS"Ó"S% Ó%	UÓ.A!UÕUÕUrŠ   rT   )"rŒ   r�   rŽ   r   r=   r�   r	   r   r
   rf   r�   rJ   re   r\   rœ   rV   r   r£   rÀ   rÄ   rÇ   r*   r¹   Úpropertyr   rÎ   r   rg   r|   r‘   r   rd   r’   r‰   r‹   rE   rD   r”   r”   	  sþ  „ ðà#ðð 
óð" !&Ø=?ñ	à#ðð ðð   ¨¨s°C¨x©Ñ 9Ñ:ð	ð
 
óð0oàðoð $ðoð ð	oð
   ¨¨s°C¨x©Ñ 9Ñ:ðoð �U˜3 ˜8‘_Ñ%ðoð 
óoðb

˜#ó 

ð+˜3ð + 3ó +ñ ð ¨sð ¸có ð22˜sð 2¨3ð 2°3ó 2ñ1˜cð 1¨(°3©-ð 1À3ó 1ð8˜sð 8 yó 8ð ð(˜hÐ'=Ñ>ò (ó ð(ð. MQñØ ðØ27¸¸cÀ5Ð8HÑ2Iðà	óð" ð HLñ_Øð_àÐ'Ñ(ð_ð ˜t S¨$¨s©)°T¸#¸s¸(±^ÐCÑDð_ð 
ò	_ó ñ_rE   r”   c                   ó  — e Zd Zddee   ddfd„Zdefd„Zdefd„Z	de
e   fd„Zded	eddfd
„Zdeded f   deddfd„Zdeded f   deddfd„Z	 ddeded	edeedef      def
d„Zdededededdf
d„Zdeddfd„Zdd„Zdd„Zy)Ú
TreeObjectNÚdctr;   c                 óV   — t         j                  | «       |r| j                  |«       y y rT   )r”   Ú__init__rõ   )rA   r	  s     rD   r  zTreeObject.__init__¦  s$   € Ü×!Ñ! $Ô'ÙØ�K‰K˜Õð rE   c                 ó
   — d| v S )Nú/Firstr‹   r]   s    rD   Úhas_childrenzTreeObject.has_children«  s   € Ø˜4ÐÐrE   c                 ó"   — | j                  «       S rT   )Úchildrenr]   s    rD   Ú__iter__zTreeObject.__iter__®  s   € Ø�}‰}‹ÐrE   c              #   ó  K  — | j                  «       sy | t        d«         }|j                  «       }	 |–— || t        d«         k(  ry |j                  t        d«      «      }t	        |«      ry |j                  «       }ŒM­w)Nr  ú/Lastr¦   )r  r'   r¿   r¤   r,   )rA   Ú	child_refÚchilds      rD   r  zTreeObject.children±  s€   è ø€ Ø× Ñ Ô"Øàœ HÓ-Ñ.ˆ	Ø×$Ñ$Ó&ˆØØŠKØ˜œZ¨Ó0Ñ1Ò1ØØŸ	™	¤*¨WÓ"5Ó6ˆIÜ˜yÔ)ØØ×(Ñ(Ó*ˆEð ùs   ‚A>B r  rL   c                 ó*   — | j                  |d |«       y rT   )Úinsert_child)rA   r  rL   s      rD   Ú	add_childzTreeObject.add_childÀ  s   € Ø×Ñ˜%  sÕ+rE   ÚparentÚnc                 ó,  — t        |«      ry |€J d«       ‚t        d|j                  «       «      }d|v rat        t	        dt        t
        |t        d«         «      |z   «      «      |t        d«      <   | j                  |j                  dd «      |«       y y )NrË   r  ú/Countr   r½   )	r,   r   r¿   r)   Úmaxr�   r'   Úinc_parent_counter_defaultr¤   )rA   r  r  s      rD   r  z%TreeObject.inc_parent_counter_defaultÃ  s“   € ô ˜6Ô"ØØÐ!Ð) 6Ó)Ð!Ü�l F×$5Ñ$5Ó$7Ó8ˆØ�vÑÜ+7Ü�A”tœC ¬
°8Ó(<Ñ!=Ó>ÀÑBÓCó,ˆF”:˜hÓ'Ñ(ð ×+Ñ+¨F¯J©J°yÀ$Ó,GÈÕKð	 rE   c                 óx  — t        |«      ry |€J d«       ‚t        d|j                  «       «      }|j                  dd«      dk(  }t        t        |j                  dd«      «      }|dk  rt        |«      }t        ||z   |rdndz  «      |t        d«      <   |sy | j                  |j                  d	d «      |«       y )
NrË   r  z
/%is_open%Tr  r   r"   r€   r½   )	r,   r   r¿   r¤   r�   Úabsr)   r'   Úinc_parent_counter_outline)rA   r  r  Úopnr³   s        rD   r!  z%TreeObject.inc_parent_counter_outlineÐ  s³   € ô ˜6Ô"ØØÐ!Ð) 6Ó)Ð!Ü�l F×$5Ñ$5Ó$7Ó8ˆà�j‰j˜ tÓ,°Ñ4ˆÜ”�f—j‘j ¨1Ó-Ó.ˆØˆqŠ5Ü�A“ˆAÜ'3°Q¸±UÁC¹qÈRÑ4PÓ'QˆŒz˜(Ó#Ñ$ÙØØ×'Ñ'¨¯
©
°9¸dÓ(CÀQÕGrE   ÚbeforeÚinc_parent_counter.c                 óì  — |€| j                   }|j                  «       }|j                  }d| vrt|| t        d«      <   t	        d«      | t        d«      <   || t        d«      <   | j                  |t        d«      <    || |j                  dd«      «       d|v r|d= d|v r|d= |S t        d	| d   «      }|j                  |k7  rœd|v rt        d
|d   «      }nxt        d
|«      |t        d«      <   |j                  |t        d«      <   | j                  |t        d«      <   d|v r|d= || t        d«      <    || |j                  dd«      «       |S |j                  |k7  rŒœ	 t        |d   t        «      sJ ‚||d   t        d«      <   |d   |t        d«      <   ||t        d«      <   ||t        d«      <   | j                  |t        d«      <    || |j                  dd«      «       |S # t        $ r |d= Y Œ]w xY w)Nr  r   r  r  r½   r"   r¦   r§   r”   r  )
r  r¿   rK   r'   r)   r¤   r   rN   r”   rM   )rA   r  r#  rL   r$  Ú	child_objÚprevs          rD   r  zTreeObject.insert_childá  s   € ð Ð%Ø!%×!@Ñ!@ÐØ×$Ñ$Ó&ˆ	Ø×(Ñ(ˆð ˜4ÑØ).ˆD”˜HÓ%Ñ&Ü)5°a«ˆD”˜HÓ%Ñ&Ø(-ˆD”˜GÓ$Ñ%Ø/3×/FÑ/FˆI”j Ó+Ñ,Ù˜t Y§]¡]°8¸QÓ%?Ô@Ø˜)Ñ#Ø˜gÐ&Ø˜)Ñ#Ø˜gÐ&ØˆLÜÐ&¨¨W©Ó6ˆà×%Ñ%¨Ò/Ø˜$‰Ü˜L¨$¨w©-Ó8‘ä,0°¸uÓ,E�”Z Ó(Ñ)Ø15×1HÑ1H�	œ* WÓ-Ñ.Ø37×3JÑ3J�	œ* YÓ/Ñ0Ø˜iÑ'Ø! 'Ð*Ø,1�”Z Ó(Ñ)Ù" 4¨¯©°xÀÓ)CÔDØ�ð ×%Ñ%¨Ó/ð	#Ü˜d 7™mÔ-=Ô>Ð>Ð>Ø16ˆD�‰Mœ* WÓ-Ñ.Ø-1°'©]ˆI”j Ó)Ñ*ð *.ˆ	”*˜WÓ%Ñ&Ø$)ˆŒZ˜Ó Ñ!Ø+/×+BÑ+Bˆ	”*˜YÓ'Ñ(Ù˜4 §¡¨x¸Ó!;Ô<Øˆøô ò 	#Ø˜'Ò"ð	#ús   Å7G$ Ç$G3Ç2G3r'  Úprev_refÚcurÚlastc                 óL  — |j                  t        d«      d«      }|€‘|rQ|j                  «       }|t        d«      = || t        d«      <   t        | t        d«         dz
  «      | t        d«      <   yt        d«      | t        d«      <   | t        d«      = t        d«      | v r| t        d«      = yy|r-|j                  «       }||t        d«      <   ||t        d«      <   n!||k(  sJ ‚|t        d«      = || t        d«      <   t        | t        d«         dz
  «      | t        d«      <   y)	z¨
        Adjust the pointers of the linked list and tree node count.

        Args:
            prev:
            prev_ref:
            cur:
            last:

        r¦   Nr§   r  r  r"   r   r  )r¤   r'   r¿   r)   )rA   r'  r(  r)  r*  Únext_refÚnext_objs          rD   Ú_remove_node_from_treez!TreeObject._remove_node_from_tree  s1  € ð —7‘7œ: gÓ.°Ó5ˆØˆ<Ùà#×.Ñ.Ó0�ØœZ¨Ó0Ð1Ø-5�”Z Ó)Ñ*Ü-9Øœ HÓ-Ñ.°Ñ2ó.�”Z Ó)Ò*ô .:¸!«_�”Z Ó)Ñ*Øœ HÓ-Ð.Ü˜gÓ&¨$Ñ.ØœZ¨Ó0Ñ1ð /ñ à#×.Ñ.Ó0�Ø08�œ GÓ,Ñ-Ø,4�”Z Ó(Ò)ð ˜d’{Ð"�{Øœ GÓ,Ð-Ø,4�”Z Ó(Ñ)Ü)5°d¼:ÀhÓ;OÑ6PÐSTÑ6TÓ)UˆD”˜HÓ%Ò&rE   c                 ó  — |j                  «       }|j                  }t        d«      |vrt        d«      ‚|t        d«         | k7  rt        d«      ‚d}d }d }| t        d«         }|j                  «       }| t        d«         }|j                  «       }	|�S||k(  r| j	                  ||||	«       d}n7|}|}t        d«      |v r|t        d«         }|j                  «       }nd }d }|�ŒS|st        d	«      ‚t        |«       y )
Nr½   ú/Removed child does not appear to be a tree itemz*Removed child is not a member of this treeFr  r  Tr¦   z"Removal couldn't find item in tree)r¿   rK   r'   rr   r.  Ú_reset_node_tree_relationship)
rA   r  r&  Úfoundr(  r'  Úcur_refr)  Úlast_refr*  s
             rD   Úremove_childzTreeObject.remove_child>  s$  € Ø×$Ñ$Ó&ˆ	Ø×,Ñ,ˆä�iÓ ¨	Ñ1ÜÐNÓOÐOØ”Z 	Ó*Ñ+¨tÒ3ÜÐIÓJÐJàˆØˆØˆØ!%¤j°Ó&:Ñ!;ˆØ(/×(:Ñ(:Ó(<ˆØœ
 7Ó+Ñ,ˆØ×"Ñ"Ó$ˆØˆoØ�iÒØ×+Ñ+¨D°(¸CÀÔFØ�Øð ˆHØˆDÜ˜'Ó" cÑ)Øœj¨Ó1Ñ2�Ø×(Ñ(Ó*‘à�Ø�ð ‰oñ  ÜÐAÓBÐBä% iÕ0rE   c                 óp   — t        d«      | vrt        d«      ‚t        d| d   «      j                  | «       y)z)Remove the object from the tree it is in.r½   r0  r  N)r'   rr   r   r5  r]   s    rD   Úremove_from_treezTreeObject.remove_from_treec  s4   € ä�iÓ ¨Ñ,ÜÐNÓOÐOÜˆ\˜4 	™?Ó+×8Ñ8¸Õ>rE   c                 óà   — | D ]  }|j                  «       }t        |«       Œ t        d«      | v r| t        d«      = t        d«      | v r| t        d«      = t        d«      | v r| t        d«      = y y )Nr  r  r  )r¿   r1  r'   )rA   r  r&  s      rD   Ú
empty_treezTreeObject.empty_treei  sw   € ÛˆEØ×(Ñ(Ó*ˆIÜ)¨)Õ4ð ô �hÓ 4Ñ'Ø”Z Ó)Ð*Ü�hÓ 4Ñ'Ø”Z Ó)Ð*Ü�gÓ $Ñ&Ø”Z Ó(Ñ)ð 'rE   rT   ©r;   N)rŒ   r�   rŽ   r	   r”   r  r�   r  r   r  r   r  r   r  r
   r&   r�   r  r!  r   r  r.  r5  r7  r9  r‹   rE   rD   r  r  ¥  sT  „ ñ˜HÐ%5Ñ6ð À$ó ð
 ˜dó  ð˜#ó ð+˜( 3™-ó +ð,˜sð ,Ð):ð ,¸tó ,ðLØ˜D .°,Ð>Ñ?ðLØDGðLà	óLðHØ˜D .°,Ð>Ñ?ðHØDGðHà	óHð, <@ñ0àð0ð ð0ð ð	0ð
 % X¨c°3¨hÑ%7Ñ8ð0ð 
ó0ðd)VØð)VØ#&ð)VØ-0ð)VØ8;ð)Và	ó)VðV#1 #ð #1¨$ó #1óJ?ô
*rE   r  r&  r;   c                 ó‚   — | t        d«      = t        d«      | v r| t        d«      = t        d«      | v r| t        d«      = yy)zœ
    Call this after a node has been removed from a tree.

    This resets the nodes attributes in respect to that tree.

    Args:
        child_obj:

    r½   r¦   r§   N)r'   )r&  s    rD   r1  r1  v  sJ   € ð 	”*˜YÓ'Ð(Ü�'Ó˜iÑ'Ø”j Ó)Ð*Ü�'Ó˜iÑ'Ø”j Ó)Ñ*ð (rE   c                   ó  ‡ — e Zd Zdd„Zdedd fd„Zdedededee	e
eef         d	eeeef      ddfˆ fd
„Zdefˆ fd„Zdefd„Zdeddfd„Zdefˆ fd„Z	 ddede
deef   ddfd„Zedeeef   de
d   fd„«       Zddeddfd„Zdefd„Zˆ xZS )rO   r;   Nc                 ó    — d| _         d | _        y ©NrE   )Ú_dataÚdecoded_selfr]   s    rD   r  zStreamObject.__init__ˆ  s   € ØˆŒ
Ø;?ˆÕrE   r:   c                 óœ  — t        d| j                  | j                  «       |d«      «      }| j                  |_        	 | j                  }|€d | _        n t        d|j                  |«      «      | _        | j                  «       D ]6  \  }}t        |d«      r|j                  |«      n|||j                  |«      <   Œ8 |S # t        $ r Y ŒVw xY w)NrO   FÚDecodedStreamObjectr=   )	r   r>   r[   r?  r@  r=   rM   r`   r?   ©rA   r:   r–   r@  r—   r˜   s         rD   r=   zStreamObject.replicateŒ  sÍ   € ô ØØ×!Ñ! $§.¡.Ó"2°H¸eÓDó
ˆð —J‘JˆŒ	ð		Ø×,Ñ,ˆLØÐ#Ø$(�Õ!ä$(Ø)¨<×+AÑ+AÀ(Ó+Kó%�Ô!ð
 —J‘J–L‰DˆAˆqä)0°°KÔ)@�—‘˜HÔ%Àað �—‘˜HÓ%Ò&ð !ð ˆ
øô ò 	Ùð	ús   ¾6B? Â?	CÃ
CrŸ   rF   rG   rž   c                 ó  •— t        d|«      j                  | _        	 t        d|«      j                  }|€d| _        n"t        d|j                  |||«      «      | _        t
        ‰| �  |||||«       y# t        $ r Y Œw xY w)úœ
        Update the object from src.

        Args:
            src:
            pdf_dest:
            force_duplicate:
            ignore_fields:

        rO   NrB  )r   r?  r@  rJ   rM   Úsuperrœ   )rA   rŸ   r:   rF   rG   rž   r@  r[   s          €rD   rœ   zStreamObject._clone¥  sŠ   ø€ ô$ ˜.¨#Ó.×4Ñ4ˆŒ
ð
	Ü °Ó4×AÑAˆLØÐ#Ø$(�Õ!ä$(Ø)Ø ×&Ñ& x°À-ÓPó%�Ô!ô 	‰‰�s˜H o°}ÀgÕNøô ò 	Ùð	ús   žAA4 Á4	B Á?B c                 óJ   •— t        t        ‰| �	  «       | j                  f«      S )rR   )rZ   rF  rV   r?  )rA   r[   s    €rD   rV   zStreamObject.hash_binÅ  s!   ø€ ô ”U‘WÑ%Ó'¨¯©Ð4Ó5Ð5rE   c                 ó   — | j                   S rT   ©r?  r]   s    rD   Úget_datazStreamObject.get_dataÐ  s   € Ø�z‰zÐrE   rC   c                 ó   — || _         y rT   rI  )rA   rC   s     rD   Úset_datazStreamObject.set_dataÓ  s	   € Øˆ�
rE   c                 óJ   •— t         ‰| �  «       }|| j                  «       z  }|S rT   )rF  Úhash_value_datarJ  ©rA   rC   r[   s     €rD   rN  zStreamObject.hash_value_dataÖ  s%   ø€ Ü‰wÑ&Ó(ˆØ�—‘“ÑˆØˆrE   rt   ru   c                 óX  — |�t        dd«       t        t        | j                  «      «      | t	        t
        j                  «      <   t        j                  | |«       | t
        j                  = |j                  d«       |j                  | j                  «       |j                  d«       y )Nrw   rx   s   
stream
s
   
endstream)
r   r)   rš   r?  r'   rö   r÷   r”   r|   r{   )rA   rt   ru   s      rD   r|   zStreamObject.write_to_streamÛ  s|   € ð Ð%Ü&ØAÀ7ôô '3´3°t·z±z³?Ó&CˆŒZœŸ	™	Ó"Ñ#Ü×(Ñ(¨¨vÔ6Ø”—‘ˆOØ�‰�]Ô#Ø�‰�T—Z‘ZÔ Ø�‰�^Õ$rE   )ÚEncodedStreamObjectrB  c                 óÖ   — t         j                  | v rt        «       }n
t        «       }| d   |_        | d= t         j
                  | v r| t         j
                  = |j                  | «       |S )Nrð   )rö   ÚFILTERrQ  rB  r?  r÷   rõ   )rC   rü   s     rD   rú   z'StreamObject.initialize_from_dictionaryé  s^   € ô
 �9‰9˜ÑÜ(Ó*‰Fä(Ó*ˆFØÐ,Ñ-ˆŒØÐ!Ð"Ü�9‰9˜ÑØ”R—Y‘Y�Ø�‰�dÔØˆrE   ÚlevelrQ  c           	      ó¸  — ddl m} t        j                  | v ræ| t        j                     }t	        |t
        «      rct        t        t        j                  «      g|¢«      }	 t        t        «       g| j                  t        j                  t        «       «      ¢«      }n{t        t        t        j                  «      |g«      }t        t        «       | j                  t        j                  t        «       «      g«      }nt        t        j                  «      }d }t        «       }|j                  | «       ||t        t        j                  «      <   |�||t        t        j                  «      <   |j                  | j                   |«      |_        |S # t        $ r> t        t        «       | j                  t        j                  t        «       «      g«      }Y Œ¾w xY w)Nr   ©ÚFlateDecode)ÚfiltersrW  rö   rS  rN   r9   r'   ÚFTÚFLATE_DECODEr(   r¤   ÚDECODE_PARMSÚ	TypeErrorrQ  rõ   Úencoder?  )rA   rT  rW  ÚfÚparamsrü   s         rD   Úflate_encodezStreamObject.flate_encodeù  sW  € Ý)ä�9‰9˜ÑØ”R—Y‘Y‘ˆAÜ˜!œ[Ô)Ü¤¬B¯O©OÓ!<Ð A¸qÐ AÓB�ðÜ(Ü#›ÐQ¨¯©´·±Ä+Ã-Ó(PÐQó‘Fô  ¤¬B¯O©OÓ!<¸aÐ @ÓA�Ü$Ü“\ 4§8¡8¬B¯O©O¼Z»\Ó#JÐKó‘ô œ2Ÿ?™?Ó+ˆAØˆFÜ$Ó&ˆØ�‰�dÔØ()ˆŒzœ"Ÿ)™)Ó$Ñ%ØÐØ28ˆF”:œbŸo™oÓ.Ñ/Ø"×)Ñ)¨$¯*©*°eÓ<ˆŒØˆøô' !ò ä(Ü#› t§x¡x´·±ÄÃÓ'OÐPó’Fðús   Á"<F ÆAGÇGc                 óÞ   — ddl m} | j                  dd«      dk7  r 	 | j                  › d�}t        |t        «        || «      \  }}}|€y|S # t        $ r | j                  «       › d�}Y Œ?w xY w)	aB  
        Try to decode the stream object as an image

        Returns:
            a PIL image if proper decoding has been found
        Raises:
            Exception: Errors during decoding will be reported.
                It is recommended to catch exceptions to prevent
                stops in your program.

        r   )Ú_xobj_to_imagez/SubtypeÚ z/Imagez does not seem to be an Imagez$ object does not seem to be an ImageN)rX  rb  r¤   rK   ÚAttributeErrorrô   r   rŒ   )rA   rb  rý   Ú	extensionÚ_Úimgs         rD   Údecode_as_imagezStreamObject.decode_as_image  s†   € õ 	-à�8‰8�J Ó# xÒ/ðOØ×0Ñ0Ð1Ð1NÐO�ô ˜3¤Ô)Ù*¨4Ó0Ñˆ	�1�cØÐØØˆ
øô "ò OØŸ™›Ð)Ð)MÐN’ðOús   �A ÁA,Á+A,r:  rT   )r€   )rŒ   r�   rŽ   r  r   r=   r”   r�   r	   r   r
   rf   r�   re   r\   rœ   rV   rg   rJ  rL  rN  r   r|   r‘   r’   r   rú   r`  rh  Ú__classcell__©r[   s   @rD   rO   rO   ‡  s@  ø„ ó@ðà#ðð 
óð2OàðOð $ðOð ð	Oð
   ¨¨s°C¨x©Ñ 9Ñ:ðOð �U˜3 ˜8‘_Ñ%ðOð 
õOð@	6˜#õ 	6ð˜%ó ð˜Uð  tó ð õ ð MQñ%Ø ð%Ø27¸¸cÀ5Ð8HÑ2Ið%à	ó%ð ðØ�3˜�8‰nðà	Ð;Ñ	<òó ðñ #ð Ð/Dó ð@ ÷ rE   rO   c                   ó   — e Zd Zy)rB  N)rŒ   r�   rŽ   r‹   rE   rD   rB  rB  3  s   „ ØrE   rB  c                   ó<   ‡ — e Zd Zdd„Zdefd„Zdeddfˆ fd„Zˆ xZS )rQ  r;   Nc                 ó   — d | _         y rT   )r@  r]   s    rD   r  zEncodedStreamObject.__init__8  s
   € Ø;?ˆÕrE   c                 óh  — ddl m} | j                  �| j                  j                  «       S t	        «       }|j                   || «      «       | j                  «       D ]<  \  }}|t        j                  t        j                  t        j                  fvsŒ8|||<   Œ> || _        |j                  «       S )Nr   )Údecode_stream_data)rX  ro  r@  rJ  rB  rL  r`   rö   r÷   rS  r[  )rA   ro  Údecodedr·   rÁ   s        rD   rJ  zEncodedStreamObject.get_data<  s•   € Ý0à×ÑÐ(à×$Ñ$×-Ñ-Ó/Ð/ô &Ó'ˆØ×ÑÑ+¨DÓ1Ô2ØŸ*™*ž,‰JˆC�Øœ2Ÿ9™9¤b§i¡i´·±ÐAÒAØ$�˜’ð 'ð $ˆÔØ×ÑÓ!Ð!rE   rC   c                 ó°  •— ddl m} | j                  t        j                  d«      t
        j                  t
        j                  gfv r„t        |t        «      st        d«      ‚| j                  €| j                  «        | j                  €J d«       ‚| j                  j                  |«       t        ‰| �1  |j                  |«      «       y t        d«      ‚)Nr   rV  rc  zData must be bytesrË   zJStreams encoded with a filter different from FlateDecode are not supported)rX  rW  r¤   rö   rS  rY  rZ  rN   rg   r\  r@  rJ  rL  rF  r]  r    )rA   rC   rW  r[   s      €rD   rL  zEncodedStreamObject.set_dataM  s«   ø€ Ý)à�8‰8”B—I‘I˜rÓ"¤r§¡¼¿¹Ð8IÐ&JÑJÜ˜d¤EÔ*ÜÐ 4Ó5Ð5Ø× Ñ Ð(Ø—‘”Ø×$Ñ$Ð0Ð8°&Ó8Ð0Ø×Ñ×&Ñ& tÔ,Ü‰GÑ˜[×/Ñ/°Ó5Õ6äØ\óð rE   r:  )rŒ   r�   rŽ   r  rg   rJ  rL  ri  rj  s   @rD   rQ  rQ  7  s-   ø„ ó@ð"˜%ó "ð"˜Uð  t÷ ñ rE   rQ  c                   óÂ  ‡ — e Zd ZdZ	 ddedededeee   ee	ef   f   ddfˆ fd„Z
dedd fd	„Z	 	 dded
edeeeee	f         dd fd„Zdeded
edeeeee	f         deee	e	f      ddfˆ fd„Zdeddfd„Zdedeeef   fd„Zdefd„Zdeddfˆ fd„Zedeeeef      fd„«       Zej:                  deeeef      ddfd„«       Zdd„Z	 ddededeef   ddfˆ fd„Zˆ xZ S )ÚContentStreama¥  
    In order to be fast, this data structure can contain either:

    * raw data in ._data
    * parsed stream operations in ._operations.

    At any time, ContentStream object can either have both of those fields defined,
    or one field defined and the other set to None.

    These fields are "rebuilt" lazily, when accessed:

    * when .get_data() is called, if ._data is None, it is rebuilt from ._operations.
    * when .operations is called, if ._operations is None, it is rebuilt from ._data.

    Conversely, these fields can be invalidated:

    * when .set_data() is called, ._operations is set to None.
    * when .operations is set, ._data is set to None.
    Nrt   rL   r}   r;   c                 óJ  •— || _         g | _        |€t        ‰| �  d«       || _        y |j	                  «       }t        |t        «      r±d}|D ]Š  }|j	                  «       }t        |t        «      rŒ$t        |t        «      s(t        dt        |«      j                  › d�t        «       n||j                  «       z  }t        |«      dk(  s	|d   dk7  sŒ†|dz  }ŒŒ t        ‰| �  t        |«      «       || _        y |j                  «       }|€J ‚t        ‰| �  |«       || _        y )NrE   zExpected StreamObject, got z instead. Data might be wrong.r   r€   rÒ   )rL   Ú_operationsrF  rL  r¿   rN   r9   r(   rO   r   ÚtyperŒ   rJ  rš   rg   r}   )	rA   rt   rL   r}   rC   r²   Ú
s_resolvedÚstream_datar[   s	           €rD   r  zContentStream.__init__s  s#  ø€ ð ˆŒØ46ˆÔð ˆ>Ü‰GÑ˜SÔ!ð2  /ˆÕð/ ×&Ñ&Ó(ˆFÜ˜&¤+Ô.Ø�Û�AØ!"§¡£�JÜ! *¬jÔ9Ø Ü% j´,Ô?ô 'Ø9¼$¸zÓ:J×:SÑ:SÐ9TÐTrÐsÜ$õð
  
× 3Ñ 3Ó 5Ñ5˜Ü˜4“y A’~¨¨b©°UÓ):Ø ™™ð  ô ‘Ñ ¤ t£Ô-ð
  /ˆÕð %Ÿo™oÓ/�Ø"Ð.Ð.Ð.Ü‘Ñ  Ô-Ø.ˆÕrE   r:   c           	      ó   — t        d| j                  | j                  d d «      |d«      «      }| j                  |_        	 | j                  }|€d | _        n t        d|j                  |«      «      | _        | j                  «       D ]6  \  }}t        |d«      r|j                  |«      n|||j                  |«      <   Œ8 |S # t        $ r Y ŒVw xY w)Nrs  FrB  r=   )r   r>   r[   r?  r@  r=   rM   r`   r?   rL  rL   rd   ru  r}   rC  s         rD   r=   zContentStream.replicateš  sÑ   € ô ØØ×!Ñ! $§.¡.°°tÓ"<¸hÈÓNó
ˆð —J‘JˆŒ	ð		Ø×,Ñ,ˆLØÐ#Ø$(�Õ!ä$(Ø)¨<×+AÑ+AÀ(Ó+Kó%�Ô!ð
 —J‘J–L‰DˆAˆqä)0°°KÔ)@�—‘˜HÔ%Àað �—‘˜HÓ%Ò&ð !ð ˆ
øô ò 	Ùð	ús   Á 6C Ã	CÃCrF   rG   c           	      ó   — 	 | j                   j                  |k(  r|s| S t        «       }t	        d| j                  | j                  dd«      ||«      «      }|€g }|j                  | ||||«       |S # t        $ r Y Œ]w xY w)zÂ
        Clone object into pdf_dest.

        Args:
            pdf_dest:
            force_duplicate:
            ignore_fields:

        Returns:
            The cloned ContentStream

        rs  N)rK   rL   rM   re   r   r>   r[   rœ   r�   s         rD   rJ   zContentStream.clone¸  s’   € ð$	Ø×&Ñ&×*Ñ*¨hÒ6¹Ø�ô ),«ˆÜØØ×!Ñ!Ø—‘˜t TÓ*¨H°oóó
ˆð Ð ØˆMØ�
‰
�4˜ ?°MÀ7ÔKØˆ
øô ò 	Ùð	ús   ‚A1 Á1	A=Á<A=rŸ   rž   c                 ó´   •— t        d|«      }t        ‰| �	  |j                  «       || _        t        |j                  «      | _        |j                  | _        y)rE  rs  N)r   rF  rL  r?  rL   rd   ru  r}   )rA   rŸ   r:   rF   rG   rž   Úsrc_csr[   s          €rD   rœ   zContentStream._cloneÜ  sJ   ø€ ô$ �o sÓ+ˆÜ‰Ñ˜Ÿ™Ô&ØˆŒÜ × 2Ñ 2Ó3ˆÔØ%×5Ñ5ˆÕrE   c                 ó  — |j                  dd«       g }	 t        |«      }|dv ry |j                  dd«       |j                  «       s|dv rut        |t        j
                  «      }|dk(  r6|g k(  sJ ‚| j                  |«      }| j                  j                  |df«       nf| j                  j                  ||f«       g }nF|dk(  r|d	vr=|j                  d«      }|d	vrŒn&|j                  t        |d | j                  «      «       Œò)
Nr   )rE   r   r€   r"   )ó   'ó   "ó   BIó   INLINE IMAGEr   )rï   rÒ   rE   )r„   r   Úisalphar   r'   Údelimiter_patternÚ_read_inline_imageru  r@   r‚   r…   r}   )rA   rt   ÚoperandsÚpeekÚoperatorÚiis         rD   Ú_parse_content_streamz#ContentStream._parse_content_streamö  s  € à�‰�A�qÔØ57ˆØÜ& vÓ.ˆDØ�xÑØØ�K‰K˜˜AÔØ�|‰|Œ~ ¨Ñ!5Ü+¨F´J×4PÑ4PÓQ�Ø˜uÒ$ð $ rš>Ð)˜>Ø×0Ñ0°Ó8�BØ×$Ñ$×+Ñ+¨R°Ð,AÕBà×$Ñ$×+Ñ+¨X°xÐ,@ÔAØ!‘HØ˜’ð Ð"5Ñ5Ø!Ÿ;™; q›>�Dð Ð"5Ó5ð —‘¤¨F°D¸$×:NÑ:NÓ OÔPð3 rE   c           	      óP  — t        «       }	 t        |«      }|j                  dd«       |dk(  rnOt        || j                  «      }t        |«      }|j                  dd«       t        || j                  «      }|||<   Œr|j                  d«      }|d d dk(  sJ ‚|j                  d|j                  dd	«      «      }|j                  «       }t        |t        «      r|d
   }d|v sd|v rt        |«      }	�nd|v sd|v rt        |«      }	�nd|v sd|v rt        |«      }	nîd|v sd|v rt        |«      }	nÚ|d	k(  rÊ|j                  dd«      }
t        |
t        «      r|
d
   }
d|
v rd}n7d|
v rd}n0|j                  d|
dv rdnd«      }|d
kD  r|dz  }nt        |«      }	d}|d
kD  rB|j                  t        t!        t"        |d   «      |z  «      t!        t"        |d   «      z  «      }	t        |«      }|j                  dd«       nt        |«      }	|j                  d«      }|j                  dd«       |d d dk7  s|dd t$        vra|j                  |d
«       t        |«      }	|j                  d«      }|j                  dd«       |d d dk7  s|dd t$        vrt'        d|›�«      ‚|	d œS )!Nr€   r"   ó   Ir5   r   s   IDú/Fz/Filterznot setr   ÚAHxÚASCIIHexDecodeÚA85ÚASCII85DecodeÚRLÚRunLengthDecodeÚDCTÚ	DCTDecodez/CSrc  ÚRGBÚCMYKé   z/BPC>   ú/Gú/Iú/Indexedú/DeviceGrayrñ   g       @z/Wz/Hó   EIzHCould not extract inline image, even using fallback. Expected 'EI', got )ÚsettingsrC   )r”   r   r„   r…   rL   r‚   r¤   rä   rN   rd   r/   r.   r2   r0   r1   r   r   r�   r   r!   )rA   rt   r�  r‡   r·   rÁ   r†   ÚfiltrÚsavposrC   ÚcsÚlcsÚbitsÚeis                 rD   r„  z ContentStream._read_inline_image  sÂ  € ô $Ó%ˆØÜ% fÓ-ˆCØ�K‰K˜˜AÔØ�dŠ{àÜ˜f d§h¡hÓ/ˆCÜ% fÓ-ˆCØ�K‰K˜˜AÔÜ ¨¯©Ó1ˆEØ!ˆH�S‰Mð ð �k‰k˜!‹nˆØ�2�Aˆw˜%ÒÐÐØ—‘˜T 8§<¡<°	¸9Ó#EÓFˆØ—‘“ˆÜ�eœTÔ"Ø˜!‘HˆEØ�E‰>Ð-°Ñ6Ü% fÓ-ŠDØ�e‰^˜°%Ñ7Ü% fÓ-ŠDØ�U‰]Ð/°5Ñ8Ü$ VÓ,‰DØ�e‰^˜{¨eÑ3Ü% fÓ-‰DØ�iÒØ—‘˜e RÓ(ˆBÜ˜"œdÔ#Ø˜‘U�Ø˜‰{Ø‘Ø˜2‘Ø‘à—|‘|ØØÐFÑF‘AÈBó�ð ˜!’8Ø ™*‘Cä1°&Ó9�DØ�CØ�QŠwØ—{‘{Üœœc 8¨D¡>Ó2°SÑ8Ó9¼DÄÀhÈtÁnÓ<UÑUó�ô % VÓ,ˆBØ�K‰K˜˜AÕä)¨&Ó1ˆDà�[‰[˜‹^ˆØ�‰�B˜ÔØˆbˆqˆ6�UŠ?˜b  1˜g¬[Ñ8à�K‰K˜ Ô"Ü)¨&Ó1ˆDØ—‘˜Q“ˆBØ�K‰K˜˜AÔØ�"�1ˆv˜Š " Q q '´Ñ"<ô %Ø^Ð_aÐ^dÐeóð ð %¨dÑ3Ð3rE   c                 óJ  — | j                   �st        «       }| j                  D ]Ý  \  }}|dk(  rˆ|j                  d«       t        «       }|d   j	                  |«       |j                  |j                  «       dd «       |j                  d«       |j                  |d   «       |j                  d«       n:|D ]$  }|j	                  |«       |j                  d	«       Œ& |j                  |«       |j                  d
«       Œß |j                  «       | _         | j                   S )Nr�  r€  r�  r   éþÿÿÿs   ID rC   rœ  rz   rÒ   )r?  r   ru  r{   r|   Úgetvalue)rA   Únew_datar…  r‡  Ú	dict_textÚops         rD   rJ  zContentStream.get_dataa  sò   € Ø�z‹zÜ“yˆHØ&*×&6Ô&6Ñ"�˜(Ø˜Ò.Ø—N‘N 5Ô)Ü '£	�IØ˜ZÑ(×8Ñ8¸ÔCØ—N‘N 9×#5Ñ#5Ó#7¸¸"Ð#=Ô>Ø—N‘N 6Ô*Ø—N‘N 8¨FÑ#3Ô4Ø—N‘N 5Õ)ã&˜Ø×*Ñ*¨8Ô4Ø Ÿ™ tÕ,ð 'ð —N‘N 8Ô,Ø—‘˜uÕ%ð '7ð "×*Ñ*Ó,ˆDŒJØ�z‰zÐrE   rC   c                 ó2   •— t         ‰| �  |«       g | _        y rT   )rF  rL  ru  rO  s     €rD   rL  zContentStream.set_dataw  s   ø€ Ü‰Ñ˜ÔØˆÕrE   c                 ó    — | j                   s7| j                  r+| j                  t        | j                  «      «       d| _        | j                   S r>  )ru  r?  r‰  r   r]   s    rD   Ú
operationszContentStream.operations{  s;   € à×Ò D§J¢JØ×&Ñ&¤w¨t¯z©zÓ':Ô;ØˆDŒJØ×ÑÐrE   r¬  c                 ó    — || _         d| _        y r>  )ru  r?  )rA   r¬  s     rD   r¬  zContentStream.operations‚  s   € à%ˆÔØˆ�
rE   c                 óÜ   — | j                   r<| j                   j                  dg df«       | j                   j                  g df«       y | j                  rd| j                  z   dz   | _        y y )Nr   ó   qó   Qs   q
s   
Q
)ru  Úinsertr@   r?  r]   s    rD   Úisolate_graphics_statez$ContentStream.isolate_graphics_state‡  s^   € Ø×ÒØ×Ñ×#Ñ# A¨¨D zÔ2Ø×Ñ×#Ñ# R¨ JÕ/Ø�ZŠZØ $§*¡*Ñ,¨xÑ7ˆD�Jð rE   ru   c                 óv   •— | j                   s| j                  r| j                  «        t        ‰| �  ||«       y rT   )r?  ru  rJ  rF  r|   )rA   rt   ru   r[   s      €rD   r|   zContentStream.write_to_stream�  s,   ø€ ð �zŠz˜d×.Ò.Ø�M‰MŒOÜ‰Ñ ¨Õ7rE   rT   rŠ   r:  )!rŒ   r�   rŽ   Ú__doc__r   r
   rf   rd   r’   r�   r  r   r=   r�   r	   r   rJ   r”   re   r\   rœ   r   r‰  r„  rg   rJ  rL  r  r¬  Úsetterr²  r|   ri  rj  s   @rD   rs  rs  ^  sþ  ø„ ñð0 HLñ	%/àð%/ð ð%/ð ˜t S¨$¨s©)°T¸#¸s¸(±^ÐCÑDð	%/ð
 
õ%/ðNà#ðð 
óðB !&Ø=?ñ	"àð"ð ð"ð   ¨¨s°C¨x©Ñ 9Ñ:ð	"ð
 
ó"ðH6àð6ð $ð6ð ð	6ð
   ¨¨s°C¨x©Ñ 9Ñ:ð6ð �U˜3 ˜8‘_Ñ%ð6ð 
õ6ð4Q¨Jð Q¸4ó Qð>I4¨ð I4¸¸SÀ#¸X¹ó I4ðX˜%ó ð,˜Uð  tõ ð ð ˜D  s¨E zÑ!2Ñ3ò  ó ð ð ×Ñð T¨%°°U°
Ñ*;Ñ%<ð Àò ó ðó8ð MQñ8Ø ð8Ø27¸¸cÀ5Ð8HÑ2Ið8à	÷8ñ 8rE   rs  rt   rL   r}   c                 óR  — | j                  d«      }| j                  dd«       |dk(  rt        j                  | |«      S |dk(  rK| j                  d«      }| j                  dd«       |dk(  rt        j                  | ||«      S t        | |«      S |dk(  rt        j                  | ||«      S |d	v rt        j                  | «      S |d
k(  rt        | |«      S |dk(  r| j                  d«      dk(  r
t        «       S |dk(  rt        j                  | «      S |dk(  r5t        | «       t        | «      }| j                  dd«       t        | ||«      S |dv rv| j                  d«      }| j                  t        |«       d«       t        j                  |«      �|€J d«       ‚t!        j                  | |«      S t#        j                  | «      S | j%                  «       }| j                  dd«       | j                  d«      }| j                  |«       t'        | «       t)        d|›d|› d|›�«      ‚)Nr"   r€   ó   /ó   <r   r¥  rê   ry   )ó   tó   fó   (ó   eé   s   endobjó   nr   s   0123456789+-.é   rË   iìÿÿÿéP   z(Invalid Elementary Object starting with z @z: )r‚   r„   r'   r‰   r”   r3   r9   r#   r4   r(   r   r   r…   rš   ÚIndirectPatternÚmatchr&   r)   rä   r   r    )rt   rL   r}   r‡   r†  rþ   Ústream_extracts          rD   r…   r…   —  s  € ð
 �+‰+�a‹.€CØ
‡K�K��AÔØ
ˆd‚{Ü×*Ñ*¨6°3Ó7Ð7Ø
ˆd‚{à�{‰{˜1‹~ˆØ�‰�B˜ÔØ�5Š=Ü#×4Ñ4°V¸SÀ/ÓRÐRÜ*¨6°?ÓCÐCØ
ˆd‚{Ü×+Ñ+¨F°C¸ÓIÐIØ
ˆlÑÜ×-Ñ-¨fÓ5Ð5Ø
ˆd‚{Ü& v¨Ó?Ð?Ø
ˆd‚{�v—{‘{ 1“~¨Ò2Ü‹|ÐØ
ˆd‚{Ü×*Ñ*¨6Ó2Ð2Ø
ˆd‚{ä˜&Ô!Ü! &Ó)ˆØ�‰�B˜ÔÜ˜6 3¨Ó8Ð8Ø
ÐÑà�{‰{˜2‹ˆØ�‰”S˜“Y�J Ô"Ü× Ñ  Ó&Ð2Ø�?Ð* FÓ*�?Ü!×2Ñ2°6¸3Ó?Ð?Ü×,Ñ,¨VÓ4Ð4Ø
�+‰+‹-€CØ
‡K�K��QÔØ—[‘[ “_€NØ
‡K�K�ÔÜ˜&Ô!Ü
Ø
2°3°'¸¸C¸5ÀÀ>ÐBTÐUóð rE   c                   ó8  — e Zd ZdZdeddfd„Zedee   fd„«       Z	edee   fd„«       Z
eded   fd	„«       Zedee   fd
„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zy)ÚFieldz‹
    A class representing a field dictionary.

    This class is accessed through
    :meth:`get_fields()<pypdf.PdfReader.get_fields>`
    rC   r;   Nc                 ó  — t         j                  | «       t        j                  «       t	        j                  «       z   }|j
                  | _        |D ]  }	 ||   | t        |«      <   Œ t        | j                  d«      t        «      rst        t        | t        d«         «      j                  «       }t        |t        «      r|j                  «       }n|€d}nt        d«      ‚t!        |«      | t        d«      <   y y # t        $ r Y Œµw xY w)Nr©   rc  zShould never happen)r”   r  r   Ú
attributesr   rK   r'   r¾   rN   r¤   rQ  r   rJ  rg   ÚdecoderM   r+   )rA   rC   Úfield_attributesÚattrÚdÚd_strs         rD   r  zField.__init__Ñ  sñ   € Ü×!Ñ! $Ô'ä%×0Ñ0Ó2Ü+×6Ñ6Ó8ñ9ð 	ð #'×"9Ñ"9ˆÔÛ$ˆDðØ)-¨d©�”Z Ó%Ò&ð %ô
 �d—h‘h˜t“nÔ&9Ô:ÜÔ(¨$¬z¸$Ó/?Ñ*@ÓA×JÑJÓLˆAÜ˜!œUÔ#ØŸ™›
‘Ø�Ø‘äÐ 5Ó6Ð6Ü%5°eÓ%<ˆD”˜DÓ!Ò"ð ;øô ò Ùðús   ÁC<Ã<	DÄDc                 ó@   — | j                  t        j                  «      S )z4Read-only property accessing the type of this field.)r¤   r   rY  r]   s    rD   Ú
field_typezField.field_typeè  ó   € ð �x‰xÔ1×4Ñ4Ó5Ð5rE   c                 ó@   — | j                  t        j                  «      S )z6Read-only property accessing the parent of this field.)r¤   r   ÚParentr]   s    rD   r  zField.parentí  s   € ð �x‰xÔ1×8Ñ8Ó9Ð9rE   r9   c                 ó@   — | j                  t        j                  «      S )z4Read-only property accessing the kids of this field.)r¤   r   ÚKidsr]   s    rD   Úkidsz
Field.kidsò  s   € ð �x‰xÔ1×6Ñ6Ó7Ð7rE   c                 ó@   — | j                  t        j                  «      S )z4Read-only property accessing the name of this field.)r¤   r   ÚTr]   s    rD   Únamez
Field.name÷  s   € ð �x‰xÔ1×3Ñ3Ó4Ð4rE   c                 ó@   — | j                  t        j                  «      S )z>Read-only property accessing the alternate name of this field.)r¤   r   ÚTUr]   s    rD   Úalternate_namezField.alternate_nameü  rÏ  rE   c                 ó@   — | j                  t        j                  «      S )zÒ
        Read-only property accessing the mapping name of this field.

        This name is used by pypdf as a key in the dictionary returned by
        :meth:`get_fields()<pypdf.PdfReader.get_fields>`
        )r¤   r   ÚTMr]   s    rD   Úmapping_namezField.mapping_name  ó   € ð �x‰xÔ1×4Ñ4Ó5Ð5rE   c                 ó@   — | j                  t        j                  «      S )z¢
        Read-only property accessing the field flags, specifying various
        characteristics of the field (see Table 8.70 of the PDF 1.7 reference).
        )r¤   r   ÚFfr]   s    rD   ÚflagszField.flags  s   € ð �x‰xÔ1×4Ñ4Ó5Ð5rE   c                 ó@   — | j                  t        j                  «      S )zs
        Read-only property accessing the value of this field.

        Format varies based on field type.
        )r¤   r   ÚVr]   s    rD   rÁ   zField.value  s   € ð �x‰xÔ1×3Ñ3Ó4Ð4rE   c                 ó@   — | j                  t        j                  «      S )z=Read-only property accessing the default value of this field.)r¤   r   ÚDVr]   s    rD   Údefault_valuezField.default_value  rÏ  rE   c                 ó@   — | j                  t        j                  «      S )zÚ
        Read-only property accessing the additional actions dictionary.

        This dictionary defines the field's behavior in response to trigger
        events. See Section 8.5.2 of the PDF 1.7 reference.
        )r¤   r   ÚAAr]   s    rD   Úadditional_actionszField.additional_actions!  rÞ  rE   )rŒ   r�   rŽ   r´  r”   r  r  r	   r'   rÎ  r  rÔ  rf   r×  rÚ  rÝ  r�   rá  r   rÁ   ræ  ré  r‹   rE   rD   rÅ  rÅ  É  sW  „ ñð=Ð-ð =°$ó =ð. ð6˜H ZÑ0ò 6ó ð6ð ð:˜Ð!1Ñ2ò :ó ð:ð ð8�h˜}Ñ-ò 8ó ð8ð ð5�h˜s‘mò 5ó ð5ð ð6 ¨¡ò 6ó ð6ð ð6˜h s™mò 6ó ð6ð ð6�x ‘}ò 6ó ð6ð ð5�x ‘}ò 5ó ð5ð ð6˜x¨™}ò 6ó ð6ð ð6 HÐ-=Ñ$>ò 6ó ñ6rE   rÅ  c                   óÀ  — e Zd ZU dZdZee   ed<   dee	e
f   deeeeef   deddfd„Zedd
„«       Z	 ddedede	e
f   ddfd„Zedee	   fd„«       Zedee   fd„«       Zedee	   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zedee   fd„«       Zeded	   fd„«       Zedee   fd„«       Z edee   fd„«       Z!y)ÚDestinationa®  
    A class representing a destination within a PDF file.

    See section 12.3.2 of the PDF 2.0 reference.

    Args:
        title: Title of this destination.
        page: Reference to the page of this destination. Should
            be an instance of :class:`IndirectObject<pypdf.generic.IndirectObject>`.
        fit: How the destination is displayed.

    Raises:
        PdfReadError: If destination type is invalid.

    NÚnodeÚtitleÚpageÚfitr;   c                 ó²  — g | _         |j                  }|j                  }t        j	                  | «       t        |«      | t        d«      <   || t        d«      <   || t        d«      <   |dk(  r¿t        |«      dk  r|j                  t        d«      «       t        |«      dk  r|j                  t        d«      «       t        |«      dk  r|j                  t        d«      «       |\  | t        t        j                  «      <   | t        t        j                  «      <   | t        d	«      <   y t        |«      d
k(  ry |t        j                  k(  rp|\  | t        t        j                  «      <   | t        t        j                  «      <   | t        t        j                   «      <   | t        t        j                  «      <   y |t        j"                  t        j$                  fv r 	 |\  | t        t        j                  «      <   y |t        j*                  t        j,                  fv r 	 |\  | t        t        j                  «      <   y |t        j.                  t        j0                  fv ry t3        d|›�«      ‚# t&        $ r' t)        «       | t        t        j                  «      <   Y y w xY w# t&        $ r' t)        «       | t        t        j                  «      <   Y y w xY w)Nú/Titleú/Pager¢   z/XYZr"   g        r   r5   ú/Zoomr   zUnknown Destination Type: )Ú_filtered_childrenÚfit_typeÚfit_argsr”   r  r+   r'   rš   r@   r)   ÚTAÚLEFTÚTOPÚTFÚFIT_RÚBOTTOMÚRIGHTÚFIT_HÚFIT_BHrM   r(   ÚFIT_VÚFIT_BVÚFITÚFIT_Br    )rA   rí  rî  rï  ÚtypÚargss         rD   r  zDestination.__init__A  s5  € ð .0ˆÔà�l‰lˆØ�|‰|ˆä×!Ñ! $Ô'Ü%5°eÓ%<ˆŒZ˜Ó!Ñ"Ø$(ˆŒZ˜Ó Ñ!Ø$'ˆŒZ˜Ó Ñ!ð �&Š=Ü�4‹y˜1Š}Ø—‘œL¨Ó-Ô.Ü�4‹y˜1Š}Ø—‘œL¨Ó-Ô.Ü�4‹y˜1Š}Ø—‘œL¨Ó-Ô.ð
 ñ	Ø”Z¤§¡Ó(Ñ)Ø”Z¤§¡Ó'Ñ(Ø”Z Ó(Ò)ä�‹Y˜!Š^ØØ”B—H‘HŠ_ð ñØ”Z¤§¡Ó(Ñ)Ø”Z¤§	¡	Ó*Ñ+Ø”Z¤§¡Ó)Ñ*Ø”Z¤§¡Ó'Ò(à”R—X‘XœrŸy™yÐ)Ñ)ð>Ø.2Ñ+�”j¤§¡Ó(Ò)ð ”R—X‘XœrŸy™yÐ)Ñ)ð?Ø/3Ñ,�”j¤§¡Ó)Ò*ð ”R—V‘VœRŸX™XÐ&Ñ&ØäÐ!;¸C¸7ÐCÓDÐDøô ò >Ü/9«|�”j¤§¡Ó(Ó)ð>ûô
 ò ?Ü0:³�”j¤§¡Ó)Ó*ð?ús$   Ç!I3 È#J& É3-J#Ê"J#Ê&-KËKr9   c                 óz   — t        | j                  d«      | d   gdD �cg c]  }|| v r| |   ‘Œ c}z   «      S c c}w )Nrò  r¢   )ú/Leftú/Bottomú/Rightú/Topró  )r9   r£   )rA   rX   s     rD   Ú
dest_arrayzDestination.dest_arrayv  sW   € äØ�\‰\˜'Ó" D¨¡MÐ2ñ IóáH�AØ˜‘9ð �Q“ØHññó
ð 	
ùòs   Ÿ8
rt   ru   c                 ó¬  — |�t        dd«       |j                  d«       t        d«      }|j                  |«       |j                  d«       | j                  }|j                  |«       t        d«      }|j                  |«       |j                  d«       t        d«      }|j                  |«       |j                  d«       |j                  d	«       y )
Nrw   rx   rÐ   z/Drz   z/Sz/GoTorÒ   rÓ   )r   r{   r'   r|   r  )rA   rt   ru   r·   rÁ   Úvalue_ss         rD   r|   zDestination.write_to_stream�  s´   € ð Ð%Ü&ØAÀ7ôð 	�‰�WÔÜ˜ÓˆØ×Ñ˜FÔ#Ø�‰�TÔØ—‘ˆØ×Ñ˜fÔ%ä˜ÓˆØ×Ñ˜FÔ#Ø�‰�TÔÜ˜WÓ%ˆØ×Ñ Ô'à�‰�UÔØ�‰�UÕrE   c                 ó$   — | j                  d«      S )z3Read-only property accessing the destination title.rñ  ©r¤   r]   s    rD   rí  zDestination.title˜  s   € ð �x‰x˜Ó!Ð!rE   c                 ó$   — | j                  d«      S )zHRead-only property accessing the IndirectObject of the destination page.rò  r  r]   s    rD   rî  zDestination.page�  ó   € ð �x‰x˜Ó Ð rE   c                 ó$   — | j                  d«      S )z2Read-only property accessing the destination type.r¢   r  r]   s    rD   r  zDestination.typ¢  r  rE   c                 ó&   — | j                  dd«      S )z-Read-only property accessing the zoom factor.ró  Nr  r]   s    rD   ÚzoomzDestination.zoom§  ó   € ð �x‰x˜ Ó&Ð&rE   c                 ó&   — | j                  dd«      S )z<Read-only property accessing the left horizontal coordinate.r  Nr  r]   s    rD   ÚleftzDestination.left¬  r  rE   c                 ó&   — | j                  dd«      S )z=Read-only property accessing the right horizontal coordinate.r	  Nr  r]   s    rD   ÚrightzDestination.right±  s   € ð �x‰x˜ $Ó'Ð'rE   c                 ó&   — | j                  dd«      S )z9Read-only property accessing the top vertical coordinate.r
  Nr  r]   s    rD   ÚtopzDestination.top¶  s   € ð �x‰x˜ Ó%Ð%rE   c                 ó&   — | j                  dd«      S )z<Read-only property accessing the bottom vertical coordinate.r  Nr  r]   s    rD   ÚbottomzDestination.bottom»  s   € ð �x‰x˜	 4Ó(Ð(rE   c           
      ót   — | j                  dt        t        d«      t        d«      t        d«      g«      «      S )zHRead-only property accessing the color in (R, G, B) with values 0.0-1.0.z/Cr   )r¤   r9   r%   r]   s    rD   ÚcolorzDestination.colorÀ  s2   € ð �x‰xØ”+œ{¨1›~¬{¸1«~¼{È1»~ÐNÓOó
ð 	
rE   c                 ó&   — | j                  dd«      S )z_
        Read-only property accessing the font type.

        1=italic, 2=bold, 3=both
        rŒ  r   r  r]   s    rD   Úfont_formatzDestination.font_formatÇ  s   € ð �x‰x˜˜aÓ Ð rE   c                 ó&   — | j                  dd«      S )zÀ
        Read-only property accessing the outline count.

        positive = expanded
        negative = collapsed
        absolute value = number of visible descendants at all levels
        r  Nr  r]   s    rD   Úoutline_countzDestination.outline_countÐ  s   € ð �x‰x˜ $Ó'Ð'rE   )r;   r9   rT   )"rŒ   r�   rŽ   r´  rì  r	   r”   Ú__annotations__r
   rf   rg   r)   r&   r(   r-   r  r  r  r   r|   rí  rî  r  r�   r  r%   r  r  r  r  r  r   r!  r#  r‹   rE   rD   rë  rë  ,  s	  … ñð$ 	ð 	ˆ(Øñó ð3Eà�S˜%�ZÑ ð3Eð �L .°*Ð>NÐNÑOð3Eð ð	3Eð
 
ó3Eðj ò
ó ð
ð MQñØ ðØ27¸¸cÀ5Ð8HÑ2Iðà	óð. ð"�x ‘}ò "ó ð"ð ð!�h˜~Ñ.ò !ó ð!ð ð!�X˜c‘]ò !ó ð!ð ð'�h˜s‘mò 'ó ð'ð ð'�h˜{Ñ+ò 'ó ð'ð ð(�x Ñ,ò (ó ð(ð ð&�X˜kÑ*ò &ó ð&ð ð)˜ Ñ-ò )ó ð)ð ð
�x Ñ.ò 
ó ð
ð ð!˜X oÑ6ò !ó ð!ð ð(˜x¨™}ò (ó ñ(rE   rë  rT   )[Ú
__author__Ú__author_email__Úloggingrø   ÚsysÚcollections.abcr   r   Úior   Úmathr   Útypingr   r   r	   r
   r   Ú
_protocolsr   r   r   Ú_utilsr   r   r   r   r   r   r   r   Ú	constantsr   r   r   r   rY  r   rö   r   r÷  r   rú  Úerrorsr   r    r!   Ú_baser#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Ú_fitr-   Ú_image_inliner.   r/   r0   r1   r2   r3   r4   Úversion_infor7   Útyping_extensionsÚ	getLoggerrŒ   Úloggerrù   rÁ  rd   r9   r’   r”   r  r1  rO   rB  rQ  rs  rf   r�   r…   rÅ  rë  r‹   rE   rD   Ú<module>r8     sÅ  ðð: €
Ø/Ð ã Û 	Û 
ß .Ý Ý ÷õ ÷ VÑ U÷	÷ 	ó 	÷ñ õ
 *Ý .Ý *Ý -ß OÑ O÷÷ ÷ õ ÷õ ÷ Ià×Ñ�wÒÞå&à	ˆ×	Ñ	˜8Ó	$€à�"—*‘*Ð@ÓA€ôc�$�s‘)˜Yô côLY�t˜C ˜H‘~ yô YôxN*Ð!ô N*ðb+¨Sð +°Tó +ô"iÐ#ô iôX	˜,ô 	ô$˜,ô $ôNv8Ð'ô v8ðx	 DHñ/Øð/à	Ð#Ñ	$ð/ð ˜4  d¨3¡i°°c¸3°h±Ð?Ñ@ð/ð ˆ9�c˜3 Ð-Ñ.ó	/ôd`6ˆJô `6ôFm(�*õ m(rE   