§
    ¡”jÒ	 ã                   ó˜  — d dl Z d dlZd dlZd dl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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mZmZmZ ej        d	k    rd d
lmZ nd d
lmZ ddlm Z m!Z! ddl"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z7 ddl5m8Z9 ddl5m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB ddl5mCZD ddl5mEZF ddl5mGZH ddl5mIZJ ddlKmLZLmMZMmNZN ddlOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZh ddlimjZj ddlkmlZlmmZm ddlmnZnmoZompZpmqZqmrZrmsZs ddltmuZu  eBjv        ¦   «         Zw G d„ d ejx        ¦  «        Zyd0d"ed#ezd$e{fd%„Z| G d&„ d'e!¦  «        Z}d(ee~e{ef         e{ee€e         f         d$e^fd)„Z�d*edeZf         d+e{d,ee‚eeef         e{df         d-eƒd.eƒd$ecfd/„Z„dS )1é    N)ÚIterableÚMapping)ÚBytesIOÚFileIOÚIOBase)Úcompress)ÚPath)ÚPattern)ÚTracebackType)ÚIOÚAnyÚCallableÚOptionalÚUnionÚcast)é   é   )ÚSelfé   )ÚDocumentInformationÚPdfDocCommon)ÚEncryptAlgorithmÚ
Encryption)Ú
PageObjectÚTransformation)Únums_clear_rangeÚnums_insertÚ	nums_next)Ú	PdfReader)ÚStrByteTypeÚ
StreamTypeÚ_get_max_pdf_version_headerÚdeprecate_with_replacementÚdeprecation_no_replacementÚlogger_warning)ÚAnnotationDictionaryAttributes)ÚCatalogAttributes)	ÚCatalogDictionaryÚGoToActionArgumentsÚ	ImageTypeÚInteractiveFormDictEntriesÚOutlineFontFlagÚPageLabelStyleÚPagesAttributesÚTypFitArgumentsÚUserAccessPermissions)ÚCore)ÚFieldDictionaryAttributes)ÚPageAttributes)ÚTrailerKeys)ÚLimitReachedErrorÚPdfReadErrorÚ
PyPdfError)ÚPAGE_FITÚArrayObjectÚBooleanObjectÚByteStringObjectÚContentStreamÚDestinationÚDictionaryObjectÚEmbeddedFileÚFitÚFloatObjectÚIndirectObjectÚ
NameObjectÚ
NullObjectÚNumberObjectÚ	PdfObjectÚRectangleObjectÚReferenceLinkÚStreamObjectÚTextStringObjectÚ
TreeObjectÚViewerPreferencesÚcreate_string_objectÚextract_linksÚ
hex_to_rgbÚis_null_or_none)ÚTextStreamAppearance)Ú	PageRangeÚPageRangeSpec)ÚAnnotationSubtypeÚBorderArrayTypeÚ
LayoutTypeÚOutlineItemTypeÚOutlineTypeÚPagemodeType)ÚXmpInformationc                   ó  — e Zd ZdZ ej        ¦   «         Z ej        ¦   «         Z ej        ¦   «         Z ej        ¦   «         Z	 ej        ¦   «         Z
 ej        ¦   «         Z ej        ¦   «         Z ej        ¦   «         Zeez  ez  ZdS )ÚObjectDeletionFlagr   N)Ú__name__Ú
__module__Ú__qualname__ÚNONEÚenumÚautoÚTEXTÚLINKSÚATTACHMENTSÚ
OBJECTS_3DÚALL_ANNOTATIONSÚXOBJECT_IMAGESÚINLINE_IMAGESÚDRAWING_IMAGESÚIMAGES© ó    ú\/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pypdf/_writer.pyr\   r\   ‚   sŠ   € € € € € Ø€DØˆ4Œ9‰;Œ;€DØˆDŒI‰KŒK€EØ�$”)‘+”+€KØ�”‘”€JØ�d”i‘k”k€OØ�T”Y‘[”[€NØ�D”I‘K”K€MØ�T”Y‘[”[€NØ˜mÑ+¨nÑ<€F€F€Frm   r\   é   ÚstreamÚ	blocksizeÚreturnc                 ó°   ‡ ‡— t          j        d¬¦  «        }t          ˆˆ fd„d¦  «        D ]}|                     |¦  «         Œ|                     ¦   «         S )NF)Úusedforsecurityc                  ó.   •— ‰                      ‰ ¦  «        S ©N)Úread)rq   rp   s   €€rn   ú<lambda>z#_rolling_checksum.<locals>.<lambda>‘   s   ø€ ˜fŸkšk¨)Ñ4Ô4€ rm   rm   )ÚhashlibÚmd5ÚiterÚupdateÚ	hexdigest)rp   rq   ÚhashÚblocks   ``  rn   Ú_rolling_checksumr€   �   sa   øø€ ÝŒ; uÐ-Ñ-Ô-€DÝÐ4Ð4Ð4Ð4Ð4°cÑ:Ô:ð ð ˆØ�Š�EÑÔÐÐØ�>Š>ÑÔÐrm   c                   ó€  ‡ — e Zd ZdZ	 	 	 	 	 dÓdddœdedeeef         d	edeeef         d
ededede	e
         de	e
         ddfd„Zedefd„¦   «         Zedefd„¦   «         Zede	e         fd„¦   «         Zej        de	eeef                  ddfd„¦   «         Zede	e         fd„¦   «         Zej        deeedf         ddfd„¦   «         Zedefd„¦   «         Zej        deddfd„¦   «         Zdefd„Zde	ee                  de	e         de	e         ddfd„Zedefd„¦   «         Zej        d eeef         ddfd!„¦   «         Zd"edefd#„Z d$ee
ef         defd%„Z!d$ee
ef         d"edefd&„Z"	 dÔd(e#d)e
d*e$e         de#fd+„Z%dÕd-eddfd.„Z&de'fd/„Z(	 dÔd(e#d*e$e         de#fd0„Z)	 	 dÖd(e#d)e
d*e$e         de#fd2„Z*d$ede
e+ef         de	e
         fd3„Z,	 d×d4e	e-         d5e	e-         de#fd6„Z.	 	 	 dØd4e	ee-e/j0        f                  d5e	ee-e/j0        f                  d)e
de#fd7„Z1edede2e3e4f         fˆ fd8„¦   «         Z5e5j        d9edee2e#f         ddfd:„¦   «         Z5d;eddfd<„Z6d=ed>eeef         dd?fd@„Z7	 dÙdAedBe	e8e#gdf                  ddfdC„Z9d(e#dDeddfdE„Z:d(e#dFe;dGedHe-dIe-ddfdJ„Z< e=j>        d1¦  «        Z?e?d,dfd(ee#e@e#         df         dKeAeeee@e         eBeee-f         f         f         dLe=j>        dMe	e         dNeddfdO„ZC	 dÙd(e	e#         de@e         fdP„ZDdAede@e
         fdQ„ZEdAeddfdR„ZF	 dÙdAedBe	e8e#gdf                  ddfdS„ZGde4fdT„ZHdÚdU„ZIdd,eJfddVœdWedXe	e         dYedZeKd[e	e         ddfd\„ZLdÚd]„ZMd^eNddfd_„ZOd^eeef         deBeePeQ         f         fd`„ZRde@e         fda„ZSd^eNddfdb„ZTd^eNdeBe@e
         e@e
         f         fdc„ZUd^eNdde@e
         dee@e
         de
fdf„ZVd^eNdge
ddfdh„ZWede	eX         fˆ fdi„¦   «         ZYeYj        de	eeXeeZeQeQf         f                  ddfdj„¦   «         ZYdkeZeeQf         ddfdl„Z[ e\¦   «         Z]e]e]fd,d,dmœdneQdoeQdpedqeddf
dr„Z^d"edefds„Z_de`fdt„Zadebfdu„Zcedebfdv„¦   «         Zd	 	 	 dÛdweee#e`f         dxede`ef         dyede`ef         dzedef
d{„Ze	 	 	 dÛd|efdxede`ef         dyede`ef         dzedef
d}„Zgdddddehd,fd~edede#ee
f         dxede`ef         dyede`ef         d€e	eeBe-e-e-f         ef                  d�ed‚edƒeidzedefd„„ZjdÚd…„Zkd~e3d†eeebf         ddfd‡„Zldwedefdˆ„Zmd~ede
defd‰„ZndÚdŠ„Zod‹e	eepe$ep         f                  ddfdŒ„Zqd(eee#ef         d‹e	e$e                  ddfd�„Zr	 dÙd(ee#ef         dŽeese$es         f         d�e	eZeeQf                  ddfd�„Zt	 dÙd‘eud’e@e         d“e@e         d”e@e         dŽesd�e	eZeeQf                  ddfd•„Zv	 dÙd–ed—e@e         d”e@e         dŽesd�e	eZeeQf                  deBe@e         e@e         f         fd˜„Zwexjy        fdŽexddfd™„ZzdÙdše	e@e                  ddfd›„Z{	 dÙde
dœed�e|dže	eb         ddf
dŸ„Z}d Z~de	e         fd¡„Z€d¢ee�ef         ddfd£„Z‚d¢eddfd¤„Zƒede	e         fd¥„¦   «         Z„e„j        d¢eddfd¦„¦   «         Z„d§Z…de	e†         fd¨„Z‡ede	e†         fd©„¦   «         Zˆeˆj        dªe†ddfd«„¦   «         Zˆdee
e#f         d¬eZeeQf         defd­„Z‰d(ee#ef         de#fd®„ZŠdeeeef         deBe‹e	eŒ         f         fd¯„Z�	 	 	 	 dÜdeeeef         d|eedeŽeBe
e
f         eBe
e
e
f         e@e
         f         d°edeŽeBe
e
f         eBe
e
e
f         e@e
         e@e#         f         d±ed²e	ee@e         eBed³f         f                  ddfd´„Z�	 	 	 	 dÝdµe	e
         deeeef         d|e	e         d°e	ee�e@e#         f                  d±ed²e	ee@e         eBed³f         f                  ddfd¶„Z‘d9eQdAe’d·eZe
e#f         ddfd¸„Z“d¹ed°eZe
e#f         dAedefdº„Z”d»ee•eQ         ef         d°eZe
e#f         dAeddfd¼„Z–d(edee#e+f         d°eZe
e#f         dAede	e         fd½„Z—d¾eee@e         df         d(e#d°eZe
e#f         dAede@e2         f
d¿„Z˜dÀeQd°eZe
e#f         dAede@e2         fdÁ„Z™d9e2de`fdÂ„Zš	 dÙdÃe@e2         dxee`ef         dyede`ef         ddfdÄ„Z›dÚdÅ„Zœ	 dÙd|eZeeQf         dÆe	e�         de	e@e
                  fdÇ„Zž	 dÙdAedeef         ddfdÈ„ZŸ	 	 	 dØdÉe
dÊe
dËe	e          dÌe	e         dÍe	e
         ddfdÎ„Z¡	 	 	 dØdÉe
dÊe
dËe	e          dÌe	e         dÍe	e
         ddfdÏ„Z¢	 	 d×dÐede$e         f         dÑede$e         f         deZeeQf         fdÒ„Z£ˆ xZ¤S )ÞÚ	PdfWritera¼  
    Write a PDF file out, given pages produced by another class or through
    cloning a PDF file during initialization.

    Typically data is added from a :class:`PdfReader<pypdf.PdfReader>`.

    Args:
        clone_from: identical to fileobj (for compatibility)

        incremental: If true, loads the document and set the PdfWriter in incremental mode.

            When writing incrementally, the original document is written first and new/modified
            content is appended. To be used for signed document/forms to keep signature valid.

        full: If true, loads all the objects (always full if incremental = True).
            This parameter may allow loading large PDFs.

        strict: If true, pypdf will raise an exception if a PDF does not follow the specification.
            If false, pypdf will try to be forgiving and do something reasonable, but it will log
            a warning message. It is a best-effort approach.

    Ú NFi ¡ i@B )Ú$incremental_clone_object_count_limitÚ!incremental_clone_object_id_limitÚfileobjÚ
clone_fromÚincrementalÚfullÚstrictr„   r…   rr   c                ó¸	  — || _         	 |p|| _        	 g | _        	 g | _        	 i | _        	 i | _        	 |  	 d | _        	 g | _        	 i | _        	 t          |t          ¦  «        r|nt          j        | _        t          |t          ¦  «        r|nt          j        | _        | j        rÛt          |t          t           f¦  «        rJt#          |d¦  «        5 }t%          |                     d¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |t$          ¦  «        rt)          |¦  «        }t          |t(          ¦  «        st+          d¦  «        ‚|| _        |j                             ¦   «         | _        d| _        nJd| _        |                      t9          t;          d¦  «        t=          d¦  «        i¦  «        ¦  «        | _        dt@          d t(          t          t           tB          tD                   t$          f         d	t@          d t(          t          t           tB          tD                   t$          f         d
t@          d t(          t          t           tB          tD                   t$          f         fd„}	 |	||¦  «        }|| _#        d| _$        d| _%        d| _&        t9          t;          tN          j(        ¦  «        t;          d¦  «        t;          tN          j)        ¦  «        tU          d¦  «        t;          tN          j+        ¦  «        tY          ¦   «         i¦  «        }
g | _-        d | _.        d | _/        |�At          |t(          ¦  «        st)          |¦  «        }|  0                    |¦  «         d| _&        n–|                      |
¦  «        | _1        t9          t;          tN          j(        ¦  «        t;          td          j3        ¦  «        t;          td          j4        ¦  «        | j1        i¦  «        | _5        |                      | j5        ¦  «         |r	|sd| _        t          | j        tl          ¦  «        rªt          | j        d         tn          ¦  «        r4tq          | j        d          9                    ¦   «         ¦  «        | j        d<   t          | j        d         tn          ¦  «        r8tq          | j        d          9                    ¦   «         ¦  «        | j        d<   d S d S d S )NÚrbéÿÿÿÿz!Invalid type for incremental modeTs   %PDF-1.3z	/ProducerÚpypdfr†   r‡   rr   c                 ó@  — t          | t          t          t          t          f¦  «        r
| dk    s|�|S d}t          | t          t          f¦  «        rgt          t          | ¦  «        ¦  «                             ¦   «         r7t          t          | ¦  «        ¦  «                             ¦   «         j        dk    rd}t          | t          t          f¦  «        rF|  	                    ¦   «         }|  
                    dd¦  «        dk    rd}|  
                    |d¦  «         |r| }|S )Nrƒ   Tr   Fé   )Ú
isinstanceÚstrr	   r   r   ÚexistsÚstatÚst_sizer   ÚtellÚseek)r†   r‡   ÚcloningÚts       rn   Ú_get_clone_fromz+PdfWriter.__init__.<locals>._get_clone_from  s  € õ ˜'¥C­­rµ7Ð#;Ñ<Ô<ð "Ø˜2’� Ð!7à!Ð!ØˆGÝ˜'¥C­ ;Ñ/Ô/ð  Ý�˜W™œÑ&Ô&×-Ò-Ñ/Ô/ð å�˜G™œÑ%Ô%×*Ò*Ñ,Ô,Ô4¸Ò9Ð9à�Ý˜'¥F­GÐ#4Ñ5Ô5ð #Ø—L’L‘N”N�Ø—<’<  1Ñ%Ô%¨Ò*Ð*Ø#�GØ—’˜Q Ñ"Ô"Ð"Øð %Ø$�
ØÐrm   rƒ   Fú/Pagesr   r   ):rŠ   rˆ   Ú_objectsÚ_original_hashÚ_idnum_hashÚ_id_translatedÚ_IDÚ_unresolved_linksÚ_merged_in_pagesr‘   ÚintÚsysÚmaxsizeÚ%_incremental_clone_object_count_limitÚ"_incremental_clone_object_id_limitr’   r	   Úopenr   rw   r   r7   Ú_readerÚ
pdf_headerÚencodeÚ_headerÚ	_readonlyÚ_add_objectr>   rC   rM   Ú	_info_objr   r   r   Útemp_fileobjr†   Ú_with_as_usageÚ_clonedr.   ÚTYPEÚCOUNTrE   ÚKIDSr9   Úflattened_pagesÚ_encryptionÚ_encrypt_entryÚclone_document_from_readerÚ_pagesÚCOÚCATALOGÚPAGESÚ_root_objectÚlistrJ   r;   Úget_original_bytes)Úselfr†   r‡   rˆ   r‰   rŠ   r„   r…   Úfrš   Úpagess              rn   Ú__init__zPdfWriter.__init__®   s¸  € ð ˆŒð	ð 'Ð.¨$ˆÔð	ð 46ˆŒð	ð *,ˆÔð	ð VXˆÔð	ð
 :<ˆÔð	ð 	Ð+ð	Að .2ˆŒð	Cð MOˆÔØHØZ\ˆÔØJõ
 Ð>ÅÑDÔDðÐ0Ð0å”ð 	Ô2õ 2<Ð<]Õ_bÑ1cÔ1cÐtÐ-Ð-ÕilÔitð 	Ô/ð Ôð 	Ý˜'¥C­ ;Ñ/Ô/ð 2Ý˜' 4Ñ(Ô(ð 2¨AÝ% a§f¢f¨R¡j¤jÑ1Ô1�Gð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å˜'¥7Ñ+Ô+ð -Ý# GÑ,Ô,�Ý˜g¥yÑ1Ô1ð FÝ Ð!DÑEÔEÐEØ"ˆDŒLØ"Ô-×4Ò4Ñ6Ô6ˆDŒLØ!ˆDŒNˆNà&ˆDŒLØ!×-Ò-Ý Ý Ñ,Ô,Õ.BÀ7Ñ.KÔ.KÐLñô ñô ˆDŒNð	Ý˜4¥­Cµµr½#´wÅÐGÔHð	å˜d¥I­sµD½"½S¼'Å7ÐJÔKð	õ �4�¥C­­rµ#¬w½Ð?Ô@ð	ð 	ð 	ð 	ð. %�_ W¨jÑ9Ô9ˆ
à#ˆÔØˆŒØ#ˆÔØˆŒå å�?Ô/Ñ0Ô0µ*¸XÑ2FÔ2FÝ�?Ô0Ñ1Ô1µ<À±?´?Ý�?Ô/Ñ0Ô0µ+±-´-ðñ
ô 
ˆð  "ˆÔØ15ˆÔØ:>ˆÔàÐ!Ý˜j­)Ñ4Ô4ð 3Ý& zÑ2Ô2�
Ø×+Ò+¨JÑ7Ô7Ð7ØˆDŒLˆLà×*Ò*¨5Ñ1Ô1ˆDŒKÝ 0å�Ô3Ñ4Ô4µjÅÄÑ6LÔ6LÝ�rœxÑ(Ô(¨$¬+ðñ!ô !ˆDÔð ×Ò˜TÔ.Ñ/Ô/Ð/Øð 	%˜ð 	%Ø$ˆDÔÝ�d”h¥Ñ%Ô%ð 	QÝ˜$œ( 1œ+Õ'7Ñ8Ô8ð QÝ.¨t¬x¸¬{×/MÒ/MÑ/OÔ/OÑPÔP�”˜‘Ý˜$œ( 1œ+Õ'7Ñ8Ô8ð QÝ.¨t¬x¸¬{×/MÒ/MÑ/OÔ/OÑPÔP�”˜‘��ð		Qð 	QðQð Qs   Ã#D Ä DÄDc                 ó   — dS )zè
        Read-only boolean property showing whether this PDF file is encrypted.

        Note that this property, if true, will remain true even after the
        :meth:`decrypt()<pypdf.PdfReader.decrypt>` method is called.
        Frl   ©rÁ   s    rn   Úis_encryptedzPdfWriter.is_encryptedF  s	   € ð ˆurm   c                 ó   — | j         S )zw
        Provide direct access to PDF Structure.

        Note:
            Recommended only for read access.

        )r¾   rÆ   s    rn   Úroot_objectzPdfWriter.root_objectP  s   € ð Ô Ð rm   c                 ól   — | j         €dn+t          t          | j                              ¦   «         ¦  «        S )z›
        Provide access to "/Info". Standardized with PdfReader.

        Returns:
            /Info Dictionary; None if the entry does not exist

        N)r¯   r   r>   Ú
get_objectrÆ   s    rn   Ú_infozPdfWriter._info[  s4   € ð Œ~Ð%ð ˆDåÕ&¨¬×(AÒ(AÑ(CÔ(CÑDÔDð	
rm   Úvaluec                 óÔ  — |€>	 d | j         | j        j        j        dz
  <   n# t          t
          f$ r Y nw xY wd | _        d S | j        €&|                      t          ¦   «         ¦  «        | _        t          t          | j         	                    ¦   «         ¦  «        }| 
                    ¦   «          |                     t          t          | 	                    ¦   «         ¦  «        ¦  «         d S )Nr   )rœ   r¯   Úindirect_referenceÚidnumÚKeyErrorÚAttributeErrorr®   r>   r   rË   Úclearr|   )rÁ   rÍ   Úobjs      rn   rÌ   zPdfWriter._infoj  sÖ   € àˆ=ðØMQ�”˜dœnÔ?ÔEÈÑIÑJÐJøÝ�nÐ-ð ð ð Ø�ðøøøà!ˆDŒNˆNˆNàŒ~Ð%Ø!%×!1Ò!1Õ2BÑ2DÔ2DÑ!EÔ!E�”ÝÕ'¨¬×)BÒ)BÑ)DÔ)DÑEÔEˆCØ�IŠI‰KŒKˆKØ�JŠJ•tÕ,¨e×.>Ò.>Ñ.@Ô.@ÑAÔAÑBÔBÐBÐBÐBs   „! ¡5´5c                 ó@   — t          t          | j        j        ¦  «        S )ú(XMP (Extensible Metadata Platform) data.)r   rZ   rÉ   Úxmp_metadatarÆ   s    rn   r×   zPdfWriter.xmp_metadatay  s   € õ •N DÔ$4Ô$AÑBÔBÐBrm   c                 óô  — |€d| j         v r| j         d= dS | j                              dd¦  «        }t          |t          ¦  «        sE|�| j         d= t	          ¦   «         }|                      |¦  «        }|| j         t          d¦  «        <   n't          t          |                     ¦   «         ¦  «        }t          |t          ¦  «        r|j
                             ¦   «         }n|}|                     |¦  «         dS )rÖ   Nz	/Metadata)rÉ   Úgetr‘   rB   rI   r®   rC   r   rË   rZ   rp   Úget_dataÚset_data)rÁ   rÍ   ÚmetadataÚmetadata_streamÚstream_referenceÚ
bytes_datas         rn   r×   zPdfWriter.xmp_metadata~  sù   € ð ˆ=Ø˜dÔ.Ð.Ð.ØÔ$ [Ð1ØˆFàÔ#×'Ò'¨°TÑ:Ô:ˆÝ˜(¥NÑ3Ô3ð 	HØÐ#ØÔ$ [Ð1Ý*™nœnˆOØ#×/Ò/°Ñ@Ô@ÐØ8HˆDÔ�Z¨Ñ4Ô4Ñ5Ð5å"¥<°×1DÒ1DÑ1FÔ1FÑGÔGˆOå�e�^Ñ,Ô,ð 	Øœ×.Ò.Ñ0Ô0ˆJˆJàˆJØ× Ò  Ñ,Ô,Ð,Ð,Ð,rm   c                 ó0   — t          dd¦  «         | j        S ©NÚwith_as_usagez5.0©r$   r±   rÆ   s    rn   râ   zPdfWriter.with_as_usage–  s   € å" ?°EÑ:Ô:Ð:ØÔ"Ð"rm   c                 ó4   — t          dd¦  «         || _        d S rá   rã   ©rÁ   rÍ   s     rn   râ   zPdfWriter.with_as_usage›  s    € å" ?°EÑ:Ô:Ð:Ø#ˆÔÐÐrm   c                 ót   — | j         }| j        }|                      ¦   «          || _         d| _        || _        | S )z*Store how writer is initialized by 'with'.T)r²   r°   rÄ   r±   r†   )rÁ   Úcr™   s      rn   Ú	__enter__zPdfWriter.__enter__   s9   € à”,ˆØÔˆØ�Š‰ŒˆØˆŒØ"ˆÔØˆŒØˆrm   Úexc_typeÚexcÚ	tracebackc                 ó^   — | j         r#| j        s|                      | j         ¦  «         dS dS dS )zWrite data to the fileobj.N)r†   r²   Úwrite)rÁ   ré   rê   rë   s       rn   Ú__exit__zPdfWriter.__exit__ª  sE   € ð Œ<ð 	% ¤ð 	%Ø�JŠJ�t”|Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%ð 	%ð 	%rm   c                 ó4   — | j                              ¦   «         S )aL  
        Read/Write property of the PDF header that is written.

        This should be something like ``'%PDF-1.5'``. It is recommended to set
        the lowest version that supports all features which are used within the
        PDF file.

        Note: `pdf_header` returns a string but accepts bytes or str for writing
        )r¬   ÚdecoderÆ   s    rn   rª   zPdfWriter.pdf_header´  s   € ð Œ|×"Ò"Ñ$Ô$Ð$rm   Ú
new_headerc                 óf   — t          |t          ¦  «        r|                     ¦   «         }|| _        d S rv   )r‘   r’   r«   r¬   )rÁ   rñ   s     rn   rª   zPdfWriter.pdf_headerÁ  s0   € å�j¥#Ñ&Ô&ð 	-Ø#×*Ò*Ñ,Ô,ˆJØ!ˆŒˆˆrm   rÔ   c                 ó   — t          |dd ¦  «        �|j        j        | k    r|j        S t          |t          ¦  «        ryt          |                     t          j        d ¦  «        t          t          f¦  «        r?|  	                    |t          j                 ¦  «        |t          t          j        ¦  «        <   | j                             |¦  «         t          t          | j        ¦  «        d| ¦  «        |_        |j        S )NrÏ   r   )ÚgetattrrÏ   Úpdfr‘   r>   rÙ   ÚPGÚCONTENTSr9   r®   rC   rœ   ÚappendrB   Úlen)rÁ   rÔ   s     rn   r®   zPdfWriter._add_objectÇ  sØ   € å�CÐ-¨tÑ4Ô4Ð@ØÔ&Ô*¨dÒ2Ð2àÔ)Ð)å�cÕ+Ñ,Ô,ð 	NµØ�GŠG•B”K Ñ&Ô&­Õ6FÐ(Gñ2
ô 2
ð 	Nð ,0×+;Ò+;¸CÅÄÔ<LÑ+MÔ+MˆC•
�2œ;Ñ'Ô'Ñ(ØŒ×Ò˜SÑ!Ô!Ð!Ý!/µ°D´MÑ0BÔ0BÀAÀtÑ!LÔ!LˆÔØÔ%Ð%rm   rÏ   c                 óÚ   — t          |t          ¦  «        r| j        |dz
           }n/|j        | k    rt	          d¦  «        ‚| j        |j        dz
           }|€t          d|›d�¦  «        ‚|S )Nr   úPDF must be selfzObject z not found!)r‘   r£   rœ   rõ   Ú
ValueErrorrÐ   r6   ©rÁ   rÏ   rÔ   s      rn   rË   zPdfWriter.get_objectÖ  s‚   € õ Ð(­#Ñ.Ô.ð 	>Ø”-Ð 2°QÑ 6Ô7ˆCˆCØÔ# tÒ+Ð+ÝÐ/Ñ0Ô0Ð0à”-Ð 2Ô 8¸1Ñ <Ô=ˆCØˆ;ÝÐJÐ);ÐJÐJÐJÑKÔKÐKØˆ
rm   c                 ó–  — t          |t          ¦  «        r!|j        | k    rt          d¦  «        ‚|j        }| j        |dz
           j        j        }t          |dd ¦  «        �%|j        j        | k    r| 	                    | ¦  «        }|| j        |dz
  <   t          ||| ¦  «        |_        t          |t          ¦  «        s
J d¦   «         ‚|S )Nrû   r   rÏ   Úmypy)r‘   rB   rõ   rü   rÐ   rœ   rÏ   Ú
generationrô   ÚclonerF   )rÁ   rÏ   rÔ   Úgens       rn   Ú_replace_objectzPdfWriter._replace_objectä  sÒ   € õ
 Ð(­.Ñ9Ô9ð 	:Ø!Ô%¨Ò-Ð-Ý Ð!3Ñ4Ô4Ð4Ø!3Ô!9ÐØŒmÐ.°Ñ2Ô3ÔFÔQˆå�CÐ-¨tÑ4Ô4Ð@ØÔ&Ô*¨dÒ2Ð2à—)’)˜D‘/”/ˆCØ03ˆŒÐ(¨1Ñ,Ñ-Ý!/Ð0BÀCÈÑ!NÔ!NˆÔå˜#�yÑ)Ô)Ð1Ð1¨6Ñ1Ô1Ð1Øˆ
rm   rl   ÚpageÚindexÚexcluded_keysc                 ó`  — t          |t          ¦  «        r.|                     t          j        d ¦  «        t
          j        k    rt          d¦  «        ‚| j        €
J d¦   «         ‚|}t          |¦  «        }|t          j
        dgz  }	 | j        t          |j        j        ¦  «                 |j        j        = n# t           $ r Y nw xY wt#          d|                     | d|¦  «                             ¦   «         ¦  «        }|j        �&|j        j        }t+          | j        |¦  «        | _        |                      |¦  «        \  }}|j        |t/          t          j
        ¦  «        <   |dk    rZt#          t0          |t          j                 ¦  «                             ||j        ¦  «         | j                             ||¦  «         nWt#          t0          |t          j                 ¦  «                             |j        ¦  «         | j                             |¦  «         d}t9          |¦  «        s¿t#          t:          |                     ¦   «         ¦  «        }t=          t#          t>          |t          j                  ¦  «        dz   ¦  «        |t/          t          j         ¦  «        <   |                     t          j
        d ¦  «        }|dz  }|dk    rtC          d	¦  «        ‚t9          |¦  «        ¯¿|j        �<| j"         #                    tI          ||¦  «        ¦  «         |j        | j%        |j        <   |S )
NzInvalid page objectúfor mypyz/StructParentsr   Fr   r   iè  zToo many recursive calls!)&r‘   r   rÙ   r.   r³   r»   ÚPAGErü   r¶   r¿   ÚPARENTrŸ   ÚidrÏ   rõ   rÐ   Ú	Exceptionr   r  rË   rª   r"   Ú_get_page_in_noderC   r9   rµ   Úinsertrø   rP   r>   rE   r£   r´   r7   r¡   ÚextendrN   r¢   )	rÁ   r  r  r  Úpage_orgÚotherÚnodeÚidxÚrecurses	            rn   Ú	_add_pagezPdfWriter._add_pageù  sÞ  € õ ˜$¥
Ñ+Ô+ð 	4¨t¯xªx½Ô8LÈdÑ/SÔ/SÕWYÔW^Ò/^Ð/^ÝÐ2Ñ3Ô3Ð3ØÔ#Ð/Ð/°Ñ/Ô/Ð/ØˆÝ˜]Ñ+Ô+ˆØ�/Ô0Ð2BÐCÑCˆð
	ØÔ#¥B xÔ'BÔ'FÑ$GÔ$GÔHØÔ+Ô1ðð øõ ð 	ð 	ð 	ØˆDð	øøøõ Ø˜(Ÿ.š.¨¨u°mÑDÔD×OÒOÑQÔQñ
ô 
ˆð Œ<Ð#Ø”LÔ+ˆEÝ9¸$¼/È5ÑQÔQˆDŒOà×*Ò*¨5Ñ1Ô1‰	ˆˆcØ37Ô3Jˆ�Z�Ô.Ñ/Ô/Ñ0à�!Š8ˆ8Ý•˜d¥?Ô#7Ô8Ñ9Ô9×@Ò@ÀÀdÔF]Ñ^Ô^Ð^ØÔ ×'Ò'¨¨tÑ4Ô4Ð4Ð4å•˜d¥?Ô#7Ô8Ñ9Ô9×@Ò@ÀÔAXÑYÔYÐYØÔ ×'Ò'¨Ñ-Ô-Ð-ØˆÝ! $Ñ'Ô'ð 	>ÝÕ(¨$¯/ª/Ñ*;Ô*;Ñ<Ô<ˆDÝ6BÅ4ÍÈTÕRaÔRgÔMhÑCiÔCiÐlmÑCmÑ6nÔ6nˆD•�OÔ1Ñ2Ô2Ñ3Ø—8’8�OÔ2°DÑ9Ô9ˆDØ�q‰LˆGØ˜Š~ˆ~Ý Ð!<Ñ=Ô=Ð=õ " $Ñ'Ô'ð 	>ð Œ<Ð#ð
 Ô"×)Ò)­-¸¸hÑ*GÔ*GÑHÔHÐHØAEÔAXˆDÔ! (Ô"=Ñ>àˆs   Â/B7 Â7
CÃCTÚstatec                 óº  — 	 t           j        | j        vr@|                      t	          ¦   «         ¦  «        | j        t          t           j        ¦  «        <   t          t          j        ¦  «        }t          |¦  «        t          t          | j        t           j                 ¦  «        |<   dS # t          $ r&}t          d|› d|› �t          ¦  «         Y d}~dS d}~ww xY w)aŠ  
        Sets the "NeedAppearances" flag in the PDF writer.

        The "NeedAppearances" flag indicates whether the appearance dictionary
        for form fields should be automatically generated by the PDF viewer or
        if the embedded appearance should be used.

        Args:
            state: The actual value of the NeedAppearances flag.

        Returns:
            None

        zset_need_appearances_writer(z
) catch : N)r(   Ú	ACRO_FORMr¾   r®   r>   rC   r+   ÚNeedAppearancesr:   r   r  r%   r]   )rÁ   r  Úneed_appearancesrê   s       rn   Úset_need_appearances_writerz%PdfWriter.set_need_appearances_writer3  s  € ð"	å Ô*°$Ô2CÐCÐCð ×$Ò$Õ%5Ñ%7Ô%7Ñ8Ô8ð Ô!ÝÕ0Ô:Ñ;Ô;ñõ  *Õ*DÔ*TÑUÔUÐõ ˜eÑ$Ô$õ Õ! 4Ô#4Õ5FÔ5PÔ#QÑRÔRØ ñð ð øõ ð 	ð 	ð 	ÝØE¨uÐEÐEÀÐEÐEÅxñô ð ð ð ð ð ð ð øøøøð	øøøs   ‚B&B* Â*
CÂ4CÃCc                 óŠ   — t          ¦   «         }|                      |¦  «        | j        t          t          j        ¦  «        <   |S rv   )rL   r®   r¾   rC   r(   ÚVIEWER_PREFERENCES)rÁ   Úos     rn   Úcreate_viewer_preferencesz#PdfWriter.create_viewer_preferencesT  sC   € ÝÑÔˆð ×Ò˜QÑÔð 	ÔÝÕ(Ô;Ñ<Ô<ñ	
ð ˆrm   c                 óv   — | j         €
J d¦   «         ‚|                      |t          | j         ¦  «        |¦  «        S )aÆ  
        Add a page to this PDF file.

        Recommended for advanced usage including the adequate excluded_keys.

        The page is usually acquired from a :class:`PdfReader<pypdf.PdfReader>`
        instance.

        Args:
            page: The page to add to the document. Should be
                an instance of :class:`PageObject<pypdf._page.PageObject>`
            excluded_keys:

        Returns:
            The added PageObject.

        Nrÿ   )r¶   r  rù   )rÁ   r  r  s      rn   Úadd_pagezPdfWriter.add_page[  s<   € ð, Ô#Ð/Ð/°Ñ/Ô/Ð/Ø�~Š~˜d¥C¨Ô(<Ñ$=Ô$=¸}ÑMÔMÐMrm   r   c                 ó  — | j         €
J d¦   «         ‚|dk     r|t          | j         ¦  «        z  }|dk     rt          d¦  «        ‚|t          | j         ¦  «        k    r|                      ||¦  «        S |                      |||¦  «        S )a]  
        Insert a page in this PDF file. The page is usually acquired from a
        :class:`PdfReader<pypdf.PdfReader>` instance.

        Args:
            page: The page to add to the document.
            index: Position at which the page will be inserted.
            excluded_keys:

        Returns:
            The added PageObject.

        Nrÿ   r   zInvalid index value)r¶   rù   rü   r!  r  )rÁ   r  r  r  s       rn   Úinsert_pagezPdfWriter.insert_paget  s‘   € ð& Ô#Ð/Ð/°Ñ/Ô/Ð/Ø�1Š9ˆ9Ø•S˜Ô-Ñ.Ô.Ñ.ˆEØ�1Š9ˆ9ÝÐ2Ñ3Ô3Ð3Ø•C˜Ô,Ñ-Ô-Ò-Ð-Ø—=’=  }Ñ5Ô5Ð5Ø�~Š~˜d E¨=Ñ9Ô9Ð9rm   c                 óì   — t          |¦  «        rdS |€
J d¦   «         ‚t          |t          ¦  «        rt          |d| ¦  «        }|                     ¦   «         }t          |t
          ¦  «        r|j        S dS )zŽ
        Generate _page_id2num.

        Args:
            indirect_reference:

        Returns:
            The page number or None

        Nrÿ   r   )rP   r‘   r£   rB   rË   r   Úpage_numberrý   s      rn   Ú_get_page_number_by_indirectz&PdfWriter._get_page_number_by_indirect�  s…   € õ Ð-Ñ.Ô.ð 	Ø�4Ø!Ð-Ð-¨vÑ-Ô-Ð-ÝÐ(­#Ñ.Ô.ð 	MÝ!/Ð0BÀAÀtÑ!LÔ!LÐØ ×+Ò+Ñ-Ô-ˆÝ�c�:Ñ&Ô&ð 	#Ø”?Ð"Øˆtrm   ÚwidthÚheightc                 óX   — t          j        | ||¦  «        }|                      |¦  «        S )a(  
        Append a blank page to this PDF file and return it.

        If no page size is specified, use the size of the last page.

        Args:
            width: The width of the new page expressed in default user
                space units.
            height: The height of the new page expressed in default
                user space units.

        Returns:
            The newly appended page.

        Raises:
            PageSizeNotDefinedError: if width and height are not defined
                and previous page does not exist.

        )r   Úcreate_blank_pager!  )rÁ   r'  r(  r  s       rn   Úadd_blank_pagezPdfWriter.add_blank_page¨  s*   € õ, Ô+¨D°%¸Ñ@Ô@ˆØ�}Š}˜TÑ"Ô"Ð"rm   c                 ó`  — |                       ¦   «         }t          |¦  «        |k    rDt          ||dz
  ¦  «        }| j        |         j        }|�|dk    r|j        }|�|dk    r|j        }nt          d|› d|› d�¦  «        ‚t          j	        | ||¦  «        }|  
                    ||¦  «         |S )aŠ  
        Insert a blank page to this PDF file and return it.

        If no page size is specified for a dimension, use the size of the last page.

        Args:
            width: The width of the new page in default user space units.
            height: The height of the new page in default user space units.
            index: Position to add the page.

        Returns:
            The newly inserted page.

        Raises:
            PageSizeNotDefinedError: if width and height are not defined
                and previous page does not exist.
            IndexError: Index is outside of [-self.get_num_pages(), self.get_num_pages()]
        r   Nr   zIndex should be in range [-ú, ú])Úget_num_pagesÚabsÚminrÃ   Úmediaboxr'  r(  Ú
IndexErrorr   r*  r#  )rÁ   r'  r(  r  Ú	num_pagesÚfixed_indexr2  r  s           rn   Úinsert_blank_pagezPdfWriter.insert_blank_pageÁ  sÂ   € ð0 ×&Ò&Ñ(Ô(ˆ	Ýˆu‰:Œ:˜Ò"Ð"å˜e Y°¡]Ñ3Ô3ˆKØ”z +Ô.Ô7ˆHØˆ} ¨¢
 
Ø œ�Øˆ~ ¨1¢ Ø!œ�øåÐT¸9ÐTÐTÈ	ÐTÐTÐTÑUÔUÐUåÔ+¨D°%¸Ñ@Ô@ˆØ×Ò˜˜uÑ%Ô%Ð%Øˆrm   c                 ó*   •— t          ¦   «         j        S rv   )ÚsuperÚopen_destination©rÁ   Ú	__class__s    €rn   r9  zPdfWriter.open_destinationé  s   ø€ õ ‰wŒwÔ'Ð'rm   Údestc                 óà  — |€	 | j         d= d S # t          $ r Y d S w xY wt          |t          ¦  «        r&t	          |¦  «        | j         t          d¦  «        <   d S t          |t          ¦  «        r|j        | j         t          d¦  «        <   d S t          |t          ¦  «        rLt          d|j	        �|j	        nt          ¦   «         t          ¦  «        j        | j         t          d¦  «        <   d S d S )Nz/OpenActionÚOpening)r¾   rÑ   r‘   r’   rJ   rC   r=   Ú
dest_arrayr   rÏ   rD   r8   )rÁ   r<  s     rn   r9  zPdfWriter.open_destinationï  s  € àˆ<ðØÔ% mÐ4Ð4Ð4øÝð ð ð Ø��ðøøøå˜�cÑ"Ô"ð 	Ý;KÈDÑ;QÔ;QˆDÔ�j¨Ñ7Ô7Ñ8Ð8Ð8Ý˜�kÑ*Ô*ð 		Ø;?¼?ˆDÔ�j¨Ñ7Ô7Ñ8Ð8Ð8Ý˜�jÑ)Ô)ð 	Ý;FØàÔ*Ð6ð Ô'Ð'å‘\”\Ýñ<ô <ô ð Ô�j¨Ñ7Ô7Ñ8Ð8Ð8ð	ð 	s   „ Ž
›Ú
javascriptc           
      óV  — d| j         vr-t          ¦   «         | j         t          t          j        ¦  «        <   t          t          | j         t          j                 ¦  «        }d|vr:t          t          d¦  «        t          ¦   «         i¦  «        |t          d¦  «        <   t          t          t          t          |d         ¦  «        d         ¦  «        }|                     t          t          t          j        ¦   «         ¦  «        ¦  «        ¦  «         t          t          t          j        ¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          |› ¦  «        i¦  «        }|                     |                      |¦  «        ¦  «         dS )a…  
        Add JavaScript which will launch upon opening this PDF.

        Args:
            javascript: Your JavaScript.

        Example:
            This will launch the print window when the PDF is opened.

            >>> from pypdf import PdfWriter
            >>> output = PdfWriter()
            >>> output.add_js("this.print({bUI:true,bSilent:false,bShrinkToFit:true});")

        ú/Namesz/JavaScriptz/Actionú/Sz/JSN)r¾   r>   rC   ÚCAÚNAMESr   r9   rø   rM   r’   ÚuuidÚuuid4r.   r³   rJ   r®   )rÁ   r@  ÚnamesÚjs_listÚjss        rn   Úadd_jszPdfWriter.add_js  s[  € ð  ˜4Ô,Ð,Ð,Ý6FÑ6HÔ6HˆDÔ�j­¬Ñ2Ô2Ñ3ÝÕ% tÔ'8½¼Ô'BÑCÔCˆØ Ð%Ð%Ý/?Ý˜HÑ%Ô%¥{¡}¤}Ð5ñ0ô 0ˆE•*˜]Ñ+Ô+Ñ,õ Ý�Õ.°°mÔ0DÑEÔEÀhÔOñ
ô 
ˆð
 	�ŠÕ+­Cµ´
±´Ñ,=Ô,=Ñ>Ô>Ñ?Ô?Ð?åå�?Ô/Ñ0Ô0µ*¸YÑ2GÔ2GÝ˜4Ñ Ô ¥*¨]Ñ";Ô";Ý˜5Ñ!Ô!Õ#3°z°OÑ#DÔ#Dðñ
ô 
ˆð 	�Š�t×'Ò'¨Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,rm   ÚfilenameÚdatar?   c                 ó.   — t          j        | ||¦  «        S )aq  
        Embed a file inside the PDF.

        Reference:
        https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf
        Section 7.11.3

        Args:
            filename: The filename to display.
            data: The data in the file.

        Returns:
            EmbeddedFile instance for the newly created embedded file.

        )r?   Ú_create_new)rÁ   rL  rM  s      rn   Úadd_attachmentzPdfWriter.add_attachment*  s   € õ  Ô'¨¨h¸Ñ=Ô=Ð=rm   ÚreaderÚafter_page_appendc                 óÊ   — t          |j        ¦  «        }t          |¦  «        D ]>}|j        |         }|                      |¦  «        }t	          |¦  «        r ||¦  «         Œ?dS )aù  
        Copy pages from reader to writer. Includes an optional callback
        parameter which is invoked after pages are appended to the writer.

        ``append`` should be preferred.

        Args:
            reader: a PdfReader object from which to copy page
                annotations to this writer object. The writer's annots
                will then be updated.
            after_page_append:
                Callback function that is invoked after each page is appended to
                the writer. Signature includes a reference to the appended page
                (delegates to append_pages_from_reader). The single parameter of
                the callback is a reference to the page just appended to the
                document.

        N)rù   rÃ   Úranger!  Úcallable)rÁ   rQ  rR  Úreader_num_pagesÚreader_page_numberÚreader_pageÚwriter_pages          rn   Úappend_pages_from_readerz"PdfWriter.append_pages_from_reader<  sx   € õ. ˜vœ|Ñ,Ô,Ðå"'Ð(8Ñ"9Ô"9ð 	/ð 	/ÐØ œ,Ð'9Ô:ˆKØŸ-š-¨Ñ4Ô4ˆKåÐ)Ñ*Ô*ð /Ø!Ð! +Ñ.Ô.Ð.øð	/ð 	/rm   Únew_content_datac                 ó  — t          d¦  «        |v �r)|t          d¦  «                 }|                     ¦   «         }t          |t          ¦  «        rpt	          ¦   «         }|                     |¦  «         |                     |                      |¦  «        ¦  «         |                      |¦  «        |t          d¦  «        <   t          |t          ¦  «        rd|                     ¦   «         dz   |z   }t	          ¦   «         }|                     |¦  «         |                      |¦  «        |t          d¦  «        <   dS dS t	          ¦   «         }|                     |¦  «         |                      |¦  «        |t          d¦  «        <   dS )a*  
        Combines existing content stream(s) with new content (as bytes).

        Args:
            page: The page to which the new content data will be added.
            new_content_data: A binary-encoded new content stream, for
                instance the commands to draw an XObject.
        ú	/Contentsó   
N)	rC   rË   r‘   r9   rI   rÛ   rø   r®   rÚ   )rÁ   r  r[  Úexisting_content_refÚexisting_contentÚnew_stream_objÚmerged_dataÚ
new_streams           rn   Ú_merge_content_stream_to_pagez'PdfWriter._merge_content_stream_to_page\  sv  € õ  �kÑ"Ô" dÐ*Ñ*Ø#'­
°;Ñ(?Ô(?Ô#@Ð Ø3×>Ò>Ñ@Ô@ÐåÐ*­KÑ8Ô8ð Så!-¡¤�Ø×'Ò'Ð(8Ñ9Ô9Ð9Ø ×'Ò'¨×(8Ò(8¸Ñ(HÔ(HÑIÔIÐIØ04×0@Ò0@ÐAQÑ0RÔ0R�•Z Ñ,Ô,Ñ-ÝÐ*­LÑ9Ô9ð Mà.×7Ò7Ñ9Ô9¸EÑAÐDTÑT�Ý)™^œ^�
Ø×#Ò# KÑ0Ô0Ð0Ø04×0@Ò0@ÀÑ0LÔ0L�•Z Ñ,Ô,Ñ-Ð-Ð-ðMð Mõ &™œˆJØ×ÒÐ 0Ñ1Ô1Ð1Ø,0×,<Ò,<¸ZÑ,HÔ,HˆD•˜KÑ(Ô(Ñ)Ð)Ð)rm   Úappearance_stream_objÚobject_nameÚx_offsetÚy_offsetc                 ó,  — t          t          |t          j                 ¦  «        }d|v rìt          t          |d         ¦  «        }t          t          |                     dt          ¦   «         ¦  «        ¦  «        }d|vr3|                      t          ¦   «         ¦  «        }	|	|t          d¦  «        <   t          t          |d                              ¦   «         ¦  «        }
|                     ¦   «         D ]#\  }}||
vr|                      |¦  «        }||
|<   Œ$|                      |¦  «        }t          d|› �¦  «         	                    ¦   «         }d|vrt          ¦   «         |t          d¦  «        <   t          t          |d         ¦  «        }||vr|||<   nt          d|›d�t          ¦  «         t          ¦   «                              ||¦  «        }d|                     ¦   «         › d|› d	�                     ¦   «         }|                      ||¦  «         d
S )aµ  
        Adds an appearance stream to the page content in the form of
        an XObject.

        Args:
            page: The page to which to add the appearance stream.
            appearance_stream_obj: The appearance stream.
            object_name: The name of the appearance stream.
            x_offset: The horizontal offset for the appearance stream.
            y_offset: The vertical offset for the appearance stream.
        ú
/Resourcesú/Fontz/Fm_ú/XObjectzXObject z9 already added to page resources. This might be an issue.zq
ú
z Do
QN)r   r>   rö   Ú	RESOURCESrÙ   r®   rC   rË   ÚitemsÚ	_sanitizer%   r]   r   Ú	translateÚ_to_cmr«   rd  )rÁ   r  re  rf  rg  rh  Úpg_resÚap_stream_resÚap_stream_font_dictÚfont_dict_refÚpg_font_resÚ	font_nameÚfont_resÚfont_res_refÚxobject_refÚxobject_nameÚ	pg_xo_resÚ
xobject_cmÚxobject_drawing_commandss                      rn   Ú_add_apstream_objectzPdfWriter._add_apstream_objectƒ  s  € õ, Õ&¨­R¬\Ô(:Ñ;Ô;ˆØÐ0Ð0Ð0Ý Õ!1Ð3HÈÔ3VÑWÔWˆMÝ"&Õ'7¸×9JÒ9JÈ7ÕTdÑTfÔTfÑ9gÔ9gÑ"hÔ"hÐØ˜fÐ$Ð$Ø $× 0Ò 0Õ1AÑ1CÔ1CÑ DÔ D�Ø.;�•z 'Ñ*Ô*Ñ+ÝÕ/°¸´×1KÒ1KÑ1MÔ1MÑNÔNˆKà':×'@Ò'@Ñ'BÔ'Bð :ð :Ñ#�	˜8Ø KÐ/Ð/Ø#'×#3Ò#3°HÑ#=Ô#=�LØ-9�K 	Ñ*øð ×&Ò&Ð'<Ñ=Ô=ˆÝ!Ð"6¨Ð"6Ð"6Ñ7Ô7×AÒAÑCÔCˆØ˜VÐ#Ð#Ý-=Ñ-?Ô-?ˆF•:˜jÑ)Ô)Ñ*ÝÕ*¨F°:Ô,>Ñ?Ô?ˆ	Ø˜yÐ(Ð(Ø&1ˆI�lÑ#Ð#åØd˜<ÐdÐdÐdÝñô ð õ $Ñ%Ô%×/Ò/°¸(ÑCÔCˆ
Ø#T¨×):Ò):Ñ)<Ô)<Ð#TÐ#TÀÐ#TÐ#TÐ#T×#[Ò#[Ñ#]Ô#]Ð Ø×*Ò*¨4Ð1IÑJÔJÐJÐJÐJrm   ÚfieldsÚflagsÚauto_regenerateÚflattenc           
      ó^  — t           j        | j        vrt          d¦  «        ‚t	          t
          | j        t           j                 ¦  «        }t          j        |vrt          d¦  «        ‚t          |t          ¦  «        r|  
                    |¦  «         |€t          | j        ¦  «        }t          |t          ¦  «        r/|D ]*}t          j        |v r|                      |||d|¬¦  «         Œ+dS t          j        |vrt!          dt"          ¦  «         dS d}|t          j                 D �]}	t	          t
          |	                     ¦   «         ¦  «        }	|	                     dd¦  «        dk    rŒEd	|	v rd
|	v r|	}
n>|	                     t          j        t          ¦   «         ¦  «                             ¦   «         }
|                     ¦   «         D �]`\  }}t	          t,          |	t.          j                 ¦  «        }|                      |
¦  «        |k    s|
                     d
d¦  «        |k    sŒ_|
                     d	d¦  «        dk    rd|
v r|
d= |r)t5          |¦  «        |	t7          t8          j        ¦  «        <   |€|s¹t          |t          ¦  «        r6t=          d„ |D ¦   «         ¦  «        }||
t7          t8          j        ¦  «        <   nnt          |t@          ¦  «        r0tC          |d         ¦  «        |	t7          t8          j        ¦  «        <   n)tC          |¦  «        |
t7          t8          j        ¦  «        <   |
                     t8          j"        ¦  «        dk    r¾t7          |¦  «        }t	          t
          |	t7          t.          j#        ¦  «                 ¦  «        }t	          t
          |d         ¦  «        }||vrt7          d¦  «        }|                     |¦  «        }||	t7          t.          j$        ¦  «        <   ||	t7          t8          j        ¦  «        <   �nî|
                     t8          j"        ¦  «        dk    s$|
                     t8          j"        ¦  «        dk    �rot          |t@          ¦  «        r%tK          j&        ||
|	|d         |d         ¦  «        }ntK          j&        ||
|	¦  «        }t.          j#        |	vrLt          t7          d¦  «        |  '                    |¦  «        i¦  «        |	t7          t.          j#        ¦  «        <   nýdt	          t
          |	t.          j#                 ¦  «        x}vrV|  '                    |¦  «        t	          t
          |	t7          t.          j#        ¦  «                 ¦  «        t7          d¦  «        <   n~|	t.          j#                 d         j(        j)        }|| j*        |dz
  <   tW          |d| ¦  «        |_(        n8|	                     t8          j"        ¦  «        dk    rt!          dt"          ¦  «         |r'|�%|  ,                    ||||d         |d         ¦  «         �Œb�ŒdS )ai  
        Update the form field values for a given page from a fields dictionary.

        Copy field texts and values from fields to page.
        If the field links to a parent object, add the information to the parent.

        Args:
            page: `PageObject` - references **PDF writer's page** where the
                annotations and field data will be updated.
                `List[Pageobject]` - provides list of pages to be processed.
                `None` - all pages.
            fields: a Python dictionary of:

                * field names (/T) as keys and text values (/V) as value
                * field names (/T) as keys and list of text values (/V) for multiple choice list
                * field names (/T) as keys and tuple of:
                    * text values (/V)
                    * font id (e.g. /F1, the font id must exist)
                    * font size (0 for autosize)

            flags: A set of flags from :class:`~pypdf.constants.FieldDictionaryAttributes.FfBits`.

            auto_regenerate: Set/unset the need_appearances flag;
                the flag is unchanged if auto_regenerate is None.

            flatten: Whether or not to flatten the annotation. If True, this adds the annotation's
                appearance stream to the page contents. Note that this option does not remove the
                annotation itself.

        z2No /AcroForm dictionary in PDF of PdfWriter Objectz0No /Fields dictionary in PDF of PdfWriter ObjectN)r„  z No fields to update on this pageú/Subtyperƒ   ú/Widgetú/FTú/Tz/Chú/Ic              3   ó4   K  — | ]}t          |¦  «        V — Œd S rv   )rJ   ©Ú.0Úvs     rn   ú	<genexpr>z:PdfWriter.update_page_form_field_values.<locals>.<genexpr>  s+   è è € Ð)MÐ)MÀ!Õ*:¸1Ñ*=Ô*=Ð)MÐ)MÐ)MÐ)MÐ)MÐ)Mrm   r   z/Btnú/Nz/Offz/Txr   r�   z/Sigz#Signature forms not implemented yet)-r(   r  r¾   r7   r   r>   r+   ÚFieldsr‘   Úboolr  r¿   rÃ   rö   ÚANNOTSÚupdate_page_form_field_valuesr%   r]   rË   rÙ   r
  ro  rG   ÚAAÚRectÚ_get_qualified_field_namerE   rC   ÚFAÚFfr9   ÚVÚtuplerJ   ÚFTÚAPÚASrQ   Úfrom_text_annotationr®   rÏ   rÐ   rœ   rB   r€  )rÁ   r  r�  r‚  rƒ  r„  Ú	acro_formÚpre  Ú
annotationÚparent_annotationÚfieldrÍ   Ú	rectangleÚlstrŽ  ÚapÚ	normal_apÚns                      rn   r”  z'PdfWriter.update_page_form_field_valuesº  sà  € õL Ô&¨dÔ.?Ð?Ð?ÝÐQÑRÔRÐRÝÕ)¨4Ô+<Õ=NÔ=XÔ+YÑZÔZˆ	Ý%Ô,°IÐ=Ð=ÝÐOÑPÔPÐPÝ�o¥tÑ,Ô,ð 	>Ø×,Ò,¨_Ñ=Ô=Ð=àˆ<Ý˜œ
Ñ#Ô#ˆDÝ�d�DÑ!Ô!ð 	Øð `ð `�Ý”9 �>�>Ø×6Ò6°q¸&À%ÈÐW^Ð6Ñ_Ô_Ð_øØˆFÝŒ9˜DÐ Ð ÝÐ=½xÑHÔHÐHØˆFØ8<Ðà�rœyœ/ð Q	nñ Q	nˆJÝÕ.°
×0EÒ0EÑ0GÔ0GÑHÔHˆJØ�~Š~˜j¨"Ñ-Ô-°Ò:Ð:ØØ˜
Ð"Ð" t¨zÐ'9Ð'9Ø$.Ð!Ð!à$.§N¢NÝ”IÕ/Ñ1Ô1ñ%ô %ç’*‘,”,ð "ð !'§¢¡¤ð Fnñ Fn‘��uÝ ¥°*½R¼WÔ2EÑFÔF�	à×2Ò2Ð3DÑEÔEÈÒNÐNØ(×,Ò,¨T°4Ñ8Ô8¸EÒAÐAàà%×)Ò)¨%°Ñ6Ô6¸%Ò?Ð?ØÐ 1Ð1Ð1à)¨$Ð/Øð HÝ4@ÀÑ4GÔ4G�J�z­"¬%Ñ0Ô0Ñ1à˜¨'˜Ý! %­Ñ.Ô.ð VÝ)Ð)MÐ)MÀuÐ)MÑ)MÔ)MÑMÔM˜Ø>AÐ)­*µR´TÑ*:Ô*:Ñ;Ð;Ý# E­5Ñ1Ô1ð VÝ7GØ! !œHñ8ô 8˜
¥:­b¬dÑ#3Ô#3Ñ4Ð4õ ?OÈuÑ>UÔ>UÐ)­*µR´TÑ*:Ô*:Ñ;à$×(Ò(­¬Ñ/Ô/°6Ò9Ð9õ # 5Ñ)Ô)�AÝÕ.°
½:ÅbÄeÑ;LÔ;LÔ0MÑNÔN�BÝ $Õ%5°r¸$´xÑ @Ô @�IØ 	Ð)Ð)Ý& vÑ.Ô.˜Ø,5¯MªM¸!Ñ,<Ô,<Ð)à45�J�z­"¬%Ñ0Ô0Ñ1Ø34�J�z­"¬$Ñ/Ô/Ñ0Ñ0à%×)Ò)­"¬%Ñ0Ô0°EÒ9Ð9Ø(×,Ò,­R¬UÑ3Ô3°uÒ<Ñ<õ " %­Ñ/Ô/ð Ý0DÔ0YØ%Ð'8¸*ÀeÈAÄhÐPUÐVWÔPXñ1ô 1Ð-Ð-õ 1EÔ0YØ%Ð'8¸*ñ1ô 1Ð-õ ”u JÐ.Ð.Ý8HÝ'¨Ñ-Ô-¨t×/?Ò/?Ð@UÑ/VÔ/VÐWñ9ô 9˜
¥:­b¬eÑ#4Ô#4Ñ5Ð5ð ­4Õ0@À*ÍRÌUÔBSÑ+TÔ+TÐ&T bÐUÐUð !×,Ò,Ð-BÑCÔCõ Õ-¨z½*ÅRÄUÑ:KÔ:KÔ/LÑMÔMÝ& tÑ,Ô,ñð ð '¥r¤uÔ-¨dÔ3ÔFÔL˜Ø/D˜œ a¨!¡eÑ,ÝCQÐRSÐUVÐX\ÑC]ÔC]Ð-Ô@Ð@à—N’N¥2¤5Ñ)Ô)¨VÒ3Ð3å"Ð#HÍ(ÑSÔSÐSØð nÐ4Ð@Ø×-Ò-¨dÐ4IÈ5ÐR[Ð\]ÔR^Ð`iÐjkÔ`lÑmÔmÐmùñMFnðQ	nð Q	nrm   c                 óÆ  — g }|€$| j         D ]}||                      |¦  «        z  }Œ|S 	 t          t          | j        t
          j                 ¦  «        }n?# t          $ r2 t          ¦   «         }|| j        t          t
          j        ¦  «        <   Y nw xY w	 t          t          |t          j                 ¦  «        }n:# t          $ r- t          ¦   «         }||t          t          j        ¦  «        <   Y nw xY wd|vr|S t          t          |d         ¦  «        }t          |¦  «        D ]»\  }}t          |t          ¦  «        }	t          t          |                     ¦   «         ¦  «        }|                     dd¦  «        dk    r`d|v r\d|j        v r
|j        |v rŒr|	s|                      |¦  «        ||<   |                     |j        ¦  «         |                     |¦  «         Œ¼|S )a1  
        Parse annotations within the page looking for orphan fields and
        reattach then into the Fields Structure.

        Args:
            page: page to analyze.
                  If none is provided, all pages will be analyzed.

        Returns:
            list of reattached fields.

        Nú/Annotsr†  rƒ   r‡  rˆ  rÏ   )rÃ   Úreattach_fieldsr   r>   r¾   r(   r  rÑ   rC   r9   r+   r‘  Ú	enumerater‘   rB   rË   rÙ   Ú__dict__rÏ   r®   rø   )
rÁ   r  r¦  r¡  Úafr�  Úannotationsr  r¢  Úis_indirects
             rn   r¬  zPdfWriter.reattach_fieldsG  s
  € ð ˆØˆ<Ø”Zð /ð /�Ø�t×+Ò+¨AÑ.Ô.Ñ.��ØˆJð	LÝÕ&¨Ô(9Õ:KÔ:UÔ(VÑWÔWˆBˆBøÝð 	Lð 	Lð 	LÝ!Ñ#Ô#ˆBØIKˆDÔ�jÕ):Ô)DÑEÔEÑFÐFÐFð	Løøøð	GÝ�+ rÕ*DÔ*KÔ'LÑMÔMˆFˆFøÝð 	Gð 	Gð 	GÝ ‘]”]ˆFØ@FˆB�zÕ4Ô;Ñ<Ô<Ñ=Ð=Ð=ð	Gøøøð ˜DÐ Ð ØˆJÝ�;¨¨Y¬Ñ8Ô8ˆÝ(¨Ñ5Ô5ð 	'ð 	'‰OˆC�Ý$ ZµÑ@Ô@ˆKÝÕ.°
×0EÒ0EÑ0GÔ0GÑHÔHˆJØ�~Š~˜j¨"Ñ-Ô-°Ò:Ð:¸uÈ
Ð?RÐ?Rà(¨JÔ,?Ð?Ð?Ø"Ô5¸Ð?Ð?àØ"ð DØ'+×'7Ò'7¸
Ñ'CÔ'C�K Ñ$Ø—’˜jÔ;Ñ<Ô<Ð<Ø—
’
˜:Ñ&Ô&Ð&øØˆ
s#   ª*A Á9BÂBÂ%B; Â;4C2Ã1C2c                 óâ  — t          ¦   «         }|j                             ¦   «         D ]%}|                     t	          d |¦  «        ¦  «         Œ&|                     t	          d |j        ¦  «        ¦  «         t          |¦  «        }|| j        k    rt          d|› d| j        › d�¦  «        ‚t          |d¬¦  «        }|| j
        k    rt          d|› d| j
        › d�¦  «        ‚t          |¦  «        S )NzIncremental clone object count z exceeds maximum allowed count ú.r   )ÚdefaultzIncremental clone object ID z exceeds maximum allowed ID )ÚsetÚxrefÚvaluesr|   ÚfilterÚxref_objStmrù   r¦   r5   Úmaxr§   Úsorted)rÁ   rQ  Ú
object_idsÚ
xref_entryÚobject_countÚmax_object_ids         rn   Ú%_collect_incremental_clone_object_idsz/PdfWriter._collect_incremental_clone_object_idsy  s1  € Ý"™uœuˆ
Ø œ+×,Ò,Ñ.Ô.ð 	8ð 	8ˆJØ×Ò�f T¨:Ñ6Ô6Ñ7Ô7Ð7Ð7Ø×Ò�&  vÔ'9Ñ:Ô:Ñ;Ô;Ð;å˜:‘”ˆØ˜$ÔDÒDÐDÝ#ðW°,ð Wð WØ)-Ô)SðWð Wð Wñô ð õ
 ˜J°Ð2Ñ2Ô2ˆØ˜4ÔBÒBÐBÝ#ðQ¨}ð Qð QØ&*Ô&MðQð Qð Qñô ð õ
 �jÑ!Ô!Ð!rm   c                 ó  — d| _         | j        rg|                      |¦  «        }dg|r|d         ndz  | _        |D ]9}|                     |¦  «        }|� |                     | ¦  «        | j        |dz
  <   Œ:n| j                             ¦   «          |j                             | ¦  «        | _	        | j	         
                    d¦  «        | _        t          | j        ¦  «        t          t          |j        d         ¦  «        k    rq| j        r2t#          dt          | j        ¦  «        › d|j        d         › �¦  «        ‚t%          dt          | j        ¦  «        › d|j        d         › �t&          ¦  «         | j        rd	„ | j        D ¦   «         | _        	 |                      ¦   «          n# t,          $ r t#          d
¦  «        ‚w xY w| j        €J ‚| j        D ]S}|                      t          t2          |j        ¦  «        j        |¦  «         | j        s| j        |t9          d¦  «        <   ŒT| j        sZt;          d„ | j        D ¦   «         ¦  «        t          t<          | j                             ¦   «         ¦  «        t9          d¦  «        <   dS dS )a  
        Copy the reader document root to the writer and all sub-elements,
        including pages, threads, outlines,... For partial insertion, ``append``
        should be considered.

        Args:
            reader: PdfReader from which the document root should be copied.

        Nr�   r   r   r›   ú/SizezObject count z exceeds defined trailer size c                 ó>   — g | ]}|�|                      ¦   «         nd‘ŒS ©Nr   )Úhash_bin)r�  rÔ   s     rn   ú
<listcomp>z8PdfWriter.clone_reader_document_root.<locals>.<listcomp>²  s5   € ð #ð #ð #Ø?B 3 ?�—’‘”�¸ð#ð #ð #rm   z!Got index error while flattening.ú/Parentc                 ó   — g | ]	}|j         ‘Œ
S rl   )rÏ   )r�  r¡  s     rn   rÆ  z8PdfWriter.clone_reader_document_root.<locals>.<listcomp>Ã  s   € ÐPÐPÐP°a˜QÔ1ÐPÐPÐPrm   ú/Kids)r¯   rˆ   rÀ  rœ   rË   Ú	replicaterÓ   rÉ   r  r¾   Úraw_getrº   rù   r   r£   ÚtrailerrŠ   r6   r%   r]   r�   Ú_flattenr3  r¶   r  rB   rÏ   rÐ   rC   r9   r>   )rÁ   rQ  r¼  Ú	object_idÚreader_objectr¡  s         rn   Úclone_reader_document_rootz$PdfWriter.clone_reader_document_root�  sÍ  € ð ˆŒØÔð 	"Ø×CÒCÀFÑKÔKˆJØ!˜F¸
Ð&I j°¤n nÈÑJˆDŒMØ'ð Qð Q�	Ø &× 1Ò 1°)Ñ <Ô <�Ø Ð,Ø3@×3JÒ3JÈ4Ñ3PÔ3P�D”M )¨a¡-Ñ0øðQð
 ŒM×ÒÑ!Ô!Ð!Ø"Ô.×4Ò4°TÑ:Ô:ˆÔØÔ'×/Ò/°Ñ9Ô9ˆŒåˆtŒ}ÑÔ¥¥S¨&¬.¸Ô*AÑ BÔ BÒBÐBØŒ{ð Ý"Øo¥C¨¬Ñ$6Ô$6ÐoÐoÐV\ÔVdÐelÔVmÐoÐoñô ð õ Øk¥ D¤MÑ 2Ô 2ÐkÐkÐRXÔR`ÐahÔRiÐkÐkÝñô ð ð Ôð 	ð#ð #ØFJÄmð#ñ #ô #ˆDÔð	DØ�MŠM‰OŒOˆOˆOøÝð 	Dð 	Dð 	DÝÐBÑCÔCÐCð	Døøøð Ô#Ð/Ð/Ð/ØÔ%ð 	7ð 	7ˆAØ× Ò ¥¥n°aÔ6JÑ!KÔ!KÔ!QÐSTÑUÔUÐUØÔ#ð 7Ø+/¬;�•*˜YÑ'Ô'Ñ(øØÔð 	Rõ ÐPÐP¸4Ô;OÐPÑPÔPÑQÔQõ Õ! 4¤;×#9Ò#9Ñ#;Ô#;Ñ<Ô<Ý˜7Ñ#Ô#ñð ð ð	Rð 	Rs   ÆF' Æ'Gc           	      ót  — |                       |¦  «         |j        }| j        rŒ|�‰t          t          |                     | ¦  «        j        ¦  «        | _        t          | j        t          ¦  «        s
J d¦   «         ‚| j         
                    ¦   «         | j        | j        j        j        dz
  <   nN|�L|                      t          t          t          |                     ¦   «         ¦  «        ¦  «        ¦  «        | _        	 t          t          |j        ¦  «                             | ¦  «        | _        n# t"          $ r Y nw xY wt%          |¦  «        ret          t          t          t          | j                             ¦   «         ¦  «        d         ¦  «        D ]!} ||                     ¦   «         ¦  «         Œ dS dS )a{  
        Create a copy (clone) of a document from a PDF file reader cloning
        section '/Root' and '/Info' and '/ID' of the pdf.

        Args:
            reader: PDF file reader instance from which the clone
                should be created.
            after_page_append:
                Callback function that is invoked after each page is appended to
                the writer. Signature includes a reference to the appended page
                (delegates to append_pages_from_reader). The single parameter of
                the callback is a reference to the page just appended to the
                document.

        Nr  r   rÉ  )rÐ  rÌ   rˆ   r   rB   r  rÏ   r¯   r‘   r>   rÅ  r�   rÐ   r®   rË   r9   r    rÒ   rU  rº   )rÁ   rQ  rR  Úinfr  s        rn   r¹   z$PdfWriter.clone_document_from_readerÅ  s¯  € ð( 	×'Ò'¨Ñ/Ô/Ð/ØŒlˆØÔð 	ØˆÝ!%Ý" C§I¢I¨d¡O¤OÔ$Fñ"ô "�”õ " $¤*Õ.>Ñ?Ô?ÐKÐKÀÑKÔKÐKð ”J×'Ò'Ñ)Ô)ð Ô#Ø”NÔ5Ô;¸aÑ?ñøð ˆ_Ø!×-Ò-Ý ¥Õ&6¸¿ºÑ8HÔ8HÑ!IÔ!IÑJÔJñô ˆDŒNð
	Ý�K¨¬Ñ4Ô4×:Ò:¸4Ñ@Ô@ˆDŒHˆHøÝð 	ð 	ð 	ØˆDð	øøøõ Ð%Ñ&Ô&ð 	5ÝÝ�TÕ"2°D´K×4JÒ4JÑ4LÔ4LÑMÔMÈgÔVñô ð 5ð 5�ð "Ð! $§/¢/Ñ"3Ô"3Ñ4Ô4Ð4Ð4ð		5ð 	5ð5ð 5s   Ã?2D2 Ä2
D?Ä>D?c                 óÐ   — t          ¦   «         }|                      |¦  «         |                     d¦  «         t          t	          |¦  «                             d¦  «        ¦  «        S )Nr   Úutf8)r   Ú_write_pdf_structurer—   r;   r€   r«   )rÁ   rp   s     rn   Ú_compute_document_identifierz&PdfWriter._compute_document_identifierõ  sS   € Ý‘”ˆØ×!Ò! &Ñ)Ô)Ð)Ø�Š�A‰ŒˆÝÕ 1°&Ñ 9Ô 9× @Ò @ÀÑ HÔ HÑIÔIÐIrm   c                 ó°   — | j         r"| j         d         }|                      ¦   «         }n|                      ¦   «         }|}t          ||f¦  «        | _         dS )u"  
        Generate an identifier for the PDF that will be written.

        The only point of this is ensuring uniqueness. Reproducibility is not
        required.
        When a file is first written, both identifiers shall be set to the same value.
        If both identifiers match when a file reference is resolved, it is very
        likely that the correct and unchanged file has been found. If only the first
        identifier matches, a different version of the correct file has been found.
        see Â§14.4 "File Identifiers".
        r   N)r    rÖ  r9   )rÁ   Úid1Úid2s      rn   Úgenerate_file_identifiersz#PdfWriter.generate_file_identifiersû  sY   € ð Œ8ð 	Ø”(˜1”+ˆCØ×3Ò3Ñ5Ô5ˆCˆCà×3Ò3Ñ5Ô5ˆCØˆCÝ  S˜zÑ*Ô*ˆŒˆˆrm   )Ú	algorithmÚuser_passwordÚowner_passwordÚ
use_128bitÚpermissions_flagrÛ  c                óN  — |€|}|�L	 t          t          |                     dd¦  «        ¦  «        }n;# t          $ r t	          d|› d�¦  «        ‚w xY wt          j        }|st          j        }|                      ¦   «          | j        sJ ‚t          j
        ||| j        d         ¦  «        | _        | j                             ||¦  «        }| j        r7| j        j        €J ‚| j        j        |_        || j        |j        j        dz
  <   n|                      |¦  «         || _        dS )aã  
        Encrypt this PDF file with the PDF Standard encryption handler.

        Args:
            user_password: The password which allows for opening
                and reading the PDF file with the restrictions provided.
            owner_password: The password which allows for
                opening the PDF files without any restrictions. By default,
                the owner password is the same as the user password.
            use_128bit: flag as to whether to use 128bit
                encryption. When false, 40bit encryption will be used.
                By default, this flag is on.
            permissions_flag: permissions as described in
                Table 3.20 of the PDF 1.7 specification. A bit value of 1 means
                the permission is granted.
                Hence an integer value of -1 will set all flags.
                Bit position 3 is for printing, 4 is for modifying content,
                5 and 6 control annotations, 9 for form fields,
                10 for extraction of text and graphics.
            algorithm: encrypt algorithm. Values may be one of "RC4-40", "RC4-128",
                "AES-128", "AES-256-R5", "AES-256". If it is valid,
                `use_128bit` will be ignored.

        Nú-Ú_zAlgorithm 'z' NOT supportedr   r   )rô   r   ÚreplacerÒ   rü   ÚRC4_128ÚRC4_40rÚ  r    r   Úmaker·   Úwrite_entryr¸   rÏ   rœ   rÐ   r®   )rÁ   rÜ  rÝ  rÞ  rß  rÛ  ÚalgÚentrys           rn   ÚencryptzPdfWriter.encrypt  sJ  € ðB Ð!Ø*ˆNàÐ ðKÝÕ.°	×0AÒ0AÀ#ÀsÑ0KÔ0KÑLÔL��øÝ!ð Kð Kð KÝ Ð!I¨yÐ!IÐ!IÐ!IÑJÔJÐJðKøøøõ #Ô*ˆCØð .Ý&Ô-�Ø×&Ò&Ñ(Ô(Ð(ØŒxˆˆˆÝ%œ?¨3Ð0@À$Ä(È1Ä+ÑNÔNˆÔàÔ ×,Ò,¨]¸NÑKÔKˆØÔð 	$àÔ&Ô9ÐEÐEÐEØ'+Ô':Ô'MˆEÔ$Ø@EˆDŒM˜%Ô2Ô8¸1Ñ<Ñ=Ð=à×Ò˜UÑ#Ô#Ð#Ø#ˆÔÐÐs	   ˆ)2 ²Ac                 ó´   — | j         D ]O\  }}|                     ¦   «         }|sŒ| j                             |¦  «        }|€Œ9|                     | |¦  «         ŒPdS )zyPatch up links that were added to the document earlier, to
        make sure they still point to the same pages.
        N)r¡   Úfind_referenced_pager¢   rÙ   Úpatch_reference)rÁ   Únew_linkÚold_linkÚold_pageÚnew_pages        rn   Ú_resolve_linkszPdfWriter._resolve_linksJ  sy   € ð %)Ô$:ð 	5ð 	5Ñ ˆX�xØ×4Ò4Ñ6Ô6ˆHØð ØØÔ,×0Ò0°Ñ:Ô:ˆHØÐØØ×$Ò$ T¨8Ñ4Ô4Ð4Ð4ð	5ð 	5rm   rp   c                 óR  — t          |d¦  «        r'd|j        vrt          d|j        › d�t          ¦  «         |                      ¦   «          | j        r�| j        j         	                    d¦  «         | 
                    | j        j                             d¦  «        ¦  «         t          |                      ¦   «         ¦  «        dk    r|                      |¦  «         d S d S |                      |¦  «        \  }}|                      |||¦  «        }|                      ||¦  «         d S )NÚmodeÚbzFile <zH> to write to is not in binary mode. It may not be written to correctly.r   r�   )Úhasattrrô  r%   Únamer]   rò  rˆ   r©   rp   r—   rí   rw   rù   Úlist_objects_in_incrementÚ_write_incrementrÕ  Ú_write_xref_tableÚ_write_trailer)rÁ   rp   Úobject_positionsÚfree_objectsÚxref_locations        rn   Úwrite_streamzPdfWriter.write_streamW  sA  € Ý�6˜6Ñ"Ô"ð 	 s°&´+Ð'=Ð'=Ýð6˜œð 6ð 6ð 6åñô ð ð
 	×ÒÑÔÐàÔð 
	7ØŒLÔ×$Ò$ QÑ'Ô'Ð'Ø�LŠL˜œÔ,×1Ò1°"Ñ5Ô5Ñ6Ô6Ð6Ý�4×1Ò1Ñ3Ô3Ñ4Ô4°qÒ8Ð8Ø×%Ò% fÑ-Ô-Ð-Ð-Ð-ð 9Ð8ð .2×-FÒ-FÀvÑ-NÔ-NÑ*Ð˜lØ ×2Ò2ØÐ(¨,ñô ˆMð ×Ò ¨Ñ6Ô6Ð6Ð6Ð6rm   c                 ó  — d}|dk    rt          d|›d�¦  «        ‚t          |t          t          f¦  «        rt	          |d¦  «        }d}|                      |¦  «         |r|                     ¦   «          n|                     ¦   «          ||fS )a®  
        Write the collection of pages added to this object out as a PDF file.

        Args:
            stream: An object to write the file to. The object can support
                the write method and the tell method, similar to a file object, or
                be a file path, just like the fileobj, just named it stream to keep
                existing workflow.

        Returns:
            A tuple (bool, IO).

        Frƒ   zOutput(stream=z) is empty.ÚwbT)rü   r‘   r’   r	   r   rÿ  ÚcloseÚflush)rÁ   rp   Úmy_files      rn   rí   zPdfWriter.writel  s˜   € ð ˆà�RŠ<ˆ<ÝÐ; vÐ;Ð;Ð;Ñ<Ô<Ð<å�f�s¥D˜kÑ*Ô*ð 	Ý˜F DÑ)Ô)ˆFØˆGà×Ò˜&Ñ!Ô!Ð!àð 	Ø�LŠL‰NŒNˆNˆNà�LŠL‰NŒNˆNà˜ˆÐrm   c                 óp   ‡ ‡— t          ‰ j        ¦  «        Šˆˆ fd„t          ‰ j        ¦  «        D ¦   «         S )a  
        For analysis or debugging.
        Provides the list of new or modified objects that will be written
        in the increment.
        Deleted objects will not be freed but will become orphans.

        Returns:
            List of new or modified IndirectObjects

        c                 ó    •— g | ]J\  }}|�C|‰k    s#|                      ¦   «         ‰j        |         k    ¯0t          t          |¦  «        j        ‘ŒKS rv   )rÅ  r�   r   rB   rÏ   )r�  ÚirÔ   Úoriginal_hash_countrÁ   s      €€rn   rÆ  z7PdfWriter.list_objects_in_increment.<locals>.<listcomp>˜  sc   ø€ ð 

ð 

ð 

á��3à�àÐ,Ò,Ð,Ø—|’|‘~”~¨Ô)<¸QÔ)?Ò?Ð?õ • Ñ%Ô%Ô8ð @Ð?Ð?rm   )rù   r�   r­  rœ   )rÁ   r  s   `@rn   rø  z#PdfWriter.list_objects_in_incrementŒ  sQ   øø€ õ " $Ô"5Ñ6Ô6Ðð

ð 

ð 

ð 

ð 

å# D¤MÑ2Ô2ð

ñ 

ô 

ð 
	
rm   c                 ó.  — i }g }d}d}t          | j        ¦  «        }t          | j        ¦  «        D ]í\  }}|�æ||k    s#|                     ¦   «         | j        |         k    r½|dz   }	t          |t          ¦  «        s
J d¦   «         ‚|                     ¦   «         ||	<   |                     |	› d� 	                    ¦   «         ¦  «         	 | 
                    |¦  «         |                     d¦  «         |	|k    r"|dk    r|                     |||z
  g¦  «         |	}|	dz   }Œî|dk    s
J d¦   «         ‚|                     |||z
  g¦  «         |                     ¦   «         }
t          | j        ¦  «        dz   }|                     |› d	� 	                    ¦   «         ¦  «         t          d
¦  «        t          d¦  «        t          d¦  «        t          |dz   ¦  «        t          d¦  «        | j        j        t          d¦  «        t          d¦  «        t          d¦  «        t!          d„ |D ¦   «         ¦  «        t          d¦  «        t!          t          d¦  «        t          d¦  «        t          d¦  «        g¦  «        ddi}| j        ��| j        j        j        dz
  t          | j        ¦  «        k    sMt'          t(          | j        ¦  «                             ¦   «         | j        | j        j        j        dz
           k    r&| j        j        |t          t*          j        ¦  «        <   t          | j        j        ¦  «        |t          t*          j        ¦  «        <   | j        r!| j        |t          t*          j        ¦  «        <   t9          j        |¦  «        }|                     d                     d„ |                      ¦   «         D ¦   «         ¦  «        ¦  «         | 
                    |¦  «         |                     d|
› d� 	                    ¦   «         ¦  «         d S )Nr�   éþÿÿÿr   rÿ   ú 0 obj
ó   
endobj
r   zfor pytest onlyz 0 objú/Typez/XRefrÂ  z/Rootú/Filterz/FlateDecodez/Indexc                 ó6   — g | ]}|D ]}t          |¦  «        ‘ŒŒS rl   ©rE   )r�  Ú_suÚ_its      rn   rÆ  z.PdfWriter._write_increment.<locals>.<listcomp>Ï  s-   € ÐKÐKÐK sÀsÐKÐKÀ•˜cÑ"Ô"ÐKÐKÐKÐKrm   z/Wé   Ú__streamdata__rm   c                 ó<   — g | ]}t          j        d d|d¦  «        ‘ŒS )s   >BIBr   r   )ÚstructÚpack)r�  Ú_poss     rn   rÆ  z.PdfWriter._write_increment.<locals>.<listcomp>å  s(   € ÐXÐXÐX°d•”˜W a¨¨qÑ1Ô1ÐXÐXÐXrm   z
endobj
startxref
ú
%%EOF
)!rù   r�   r­  rœ   rÅ  r‘   rF   r–   rí   r«   Úwrite_to_streamrø   rC   rE   rÉ   rÏ   r9   rÌ   rÐ   r   rB   ÚTKÚINFOr©   Ú
_startxrefÚPREVr    ÚIDrI   Úinitialize_from_dictionaryrÛ   Újoinr·  )rÁ   rp   rü  Úobject_blocksÚcurrent_startÚcurrent_stopr  r  rÔ   rÐ   rþ  Úxr_idÚ	init_dataÚxrs                 rn   rù  zPdfWriter._write_increment¤  s÷  € ØÐØˆØˆØˆÝ! $Ô"5Ñ6Ô6ÐÝ ¤Ñ.Ô.ð 	)ð 	)‰FˆAˆsØˆØÐ(Ò(Ð(Ø—<’<‘>”> TÔ%8¸Ô%;Ò;Ð;à˜A™�Ý! #¥yÑ1Ô1Ð9Ð9°6Ñ9Ô9Ð9à*0¯+ª+©-¬-Ð  Ñ'Ø—’ Ð/Ð/Ð/×6Ò6Ñ8Ô8Ñ9Ô9Ð9ðð ×#Ò# FÑ+Ô+Ð+Ø—’˜]Ñ+Ô+Ð+ð ˜LÒ(Ð(Ø$ qÒ(Ð(Ø%×,Ò,Ø*¨L¸=Ñ,HÐIñô ð ð %*�MØ$ q™y�øØ˜qÒ Ð Ð Ð"3Ñ Ô Ð Ø×Ò˜m¨\¸MÑ-IÐJÑKÔKÐKàŸš™œˆÝ�D”MÑ"Ô" QÑ&ˆØ�Š˜Ð%Ð%Ð%×,Ò,Ñ.Ô.Ñ/Ô/Ð/å�wÑÔ¥¨GÑ!4Ô!4Ý�wÑÔ¥¨e°a©iÑ!8Ô!8Ý�wÑÔ Ô!1Ô!DÝ�yÑ!Ô!¥:¨nÑ#=Ô#=Ý�xÑ Ô ¥+ØKÐK¨mÐKÑKÔKñ#ô #õ �tÑÔ�kÝ˜a‘”¥,¨q¡/¤/µ<À±?´?ÐCñô ð ˜cð
ˆ	ð Œ:Ð!ØŒJÔ)Ô/°!Ñ3Ý�4Ô&Ñ'Ô'ò(ð (å•N D¤JÑ/Ô/×8Ò8Ñ:Ô:ØÔ"Ø”
Ô-Ô3°aÑ7ôòð ð
 .2¬ZÔ-JˆI•j¥¤Ñ)Ô)Ñ*Ý)5°d´lÔ6MÑ)NÔ)Nˆ	•*�RœWÑ%Ô%Ñ&ØŒ8ð 	4Ø+/¬8ˆI•j¥¤Ñ'Ô'Ñ(ÝÔ4°YÑ?Ô?ˆØ
�ŠØ�HŠHØXÐXÐ>N×>UÒ>UÑ>WÔ>WÐXÑXÔXñô ñ	
ô 	
ð 	
ð
 	×Ò˜6Ñ"Ô"Ð"Ø�ŠÐE¨]ÐEÐEÐE×LÒLÑNÔNÑOÔOÐOÐOÐOrm   c                 ó¨  — g }g }|                      | j                             ¦   «         dz   ¦  «         |                      d¦  «         t          | j        d¬¦  «        D ]Û\  }}|�ª|                     |                     ¦   «         ¦  «         |                      |› d�                     ¦   «         ¦  «         | j        r'|| j        k    r| j         	                    ||d¦  «        }| 
                    |¦  «         |                      d¦  «         Œ±|                     d¦  «         |                     |¦  «         ŒÜ|                     d¦  «         ||fS )	Nr^  s   %âãÏÓ
r   )Ústartr  r   r  r�   )rí   rª   r«   r­  rœ   rø   r–   r·   r¸   Úencrypt_objectr  )rÁ   rp   rü  rý  rÐ   rÔ   s         rn   rÕ  zPdfWriter._write_pdf_structureë  sU  € ØÐØˆØ�Š�T”_×+Ò+Ñ-Ô-°Ñ5Ñ6Ô6Ð6Ø�ŠÐ+Ñ,Ô,Ð,å# D¤M¸Ð;Ñ;Ô;ð 
	+ð 
	+‰JˆE�3ØˆØ ×'Ò'¨¯ª©¬Ñ6Ô6Ð6Ø—’ Ð/Ð/Ð/×6Ò6Ñ8Ô8Ñ9Ô9Ð9ØÔ#ð I¨¨tÔ/BÒ(BÐ(BØÔ*×9Ò9¸#¸uÀaÑHÔH�CØ×#Ò# FÑ+Ô+Ð+Ø—’˜]Ñ+Ô+Ð+Ð+à ×'Ò'¨Ñ+Ô+Ð+Ø×#Ò# EÑ*Ô*Ð*Ð*Ø×Ò˜AÑÔÐØ Ð-Ð-rm   rü  rý  c                 ó0  — |                      ¦   «         }|                     d¦  «         |                     dt          | j        ¦  «        dz   › d�                     ¦   «         ¦  «         |                     |d         d›ddd	›d
�                     ¦   «         ¦  «         d}|D ]r}|dk    r0|                     |d›ddd	›d�                     ¦   «         ¦  «         Œ8|                     ||         d›ddd	›d
�                     ¦   «         ¦  «         |dz  }Œs|S )Ns   xref
z0 r   rm  r   z0>10ú iÿÿ  z0>5z f 
z n 
)r–   rí   rù   rœ   r«   )rÁ   rp   rü  rý  rþ  Úfree_idxÚoffsets          rn   rú  zPdfWriter._write_xref_tableÿ  s5  € ð Ÿš™œˆØ�Š�YÑÔÐØ�ŠÐ4�#˜dœmÑ,Ô,¨qÑ0Ð4Ð4Ð4×;Ò;Ñ=Ô=Ñ>Ô>Ð>Ø�Š˜ QœÐ?Ð?Ð?¨uÐ?Ð?Ð?Ð?×FÒFÑHÔHÑIÔIÐIØˆØ&ð 	ð 	ˆFØ˜ŠzˆzØ—’ Ð:Ð:Ð:¨aÐ:Ð:Ð:Ð:×AÒAÑCÔCÑDÔDÐDÐDà—’ ¨XÔ 6ÐJÐJÐJ¸aÐJÐJÐJÐJ×QÒQÑSÔSÑTÔTÐTØ˜A‘��ØÐrm   rþ  c                 óŽ  — |                      d¦  «         t          t          t          j        ¦  «        t          t          | j        ¦  «        dz   ¦  «        t          t          j        ¦  «        | j	        j
        i¦  «        }| j        �&| j        j
        |t          t          j        ¦  «        <   | j        �!| j        |t          t          j        ¦  «        <   | j        r&| j        j
        |t          t          j        ¦  «        <   |                     |¦  «         |                      d|› d�                     ¦   «         ¦  «         dS )zó
        Write the PDF trailer to the stream.

        To quote the PDF specification:
            [The] trailer [gives] the location of the cross-reference table and
            of certain special objects within the body of the file.
        s   trailer
r   Nz
startxref
r  )rí   r>   rC   r  ÚSIZErE   rù   rœ   ÚROOTrÉ   rÏ   rÌ   r  r    r  r¸   ÚENCRYPTr  r«   )rÁ   rp   rþ  rÌ  s       rn   rû  zPdfWriter._write_trailer  s  € ð 	�Š�\Ñ"Ô"Ð"Ý"å�2œ7Ñ#Ô#¥\µ#°d´mÑ2DÔ2DÀqÑ2HÑ%IÔ%IÝ�2œ7Ñ#Ô# TÔ%5Ô%Hðñ
ô 
ˆð Œ:Ð!Ø+/¬:Ô+HˆG•J�rœwÑ'Ô'Ñ(ØŒ8ÐØ)-¬ˆG•J�rœuÑ%Ô%Ñ&ØÔð 	UØ.2Ô.AÔ.TˆG•J�rœzÑ*Ô*Ñ+Ø×Ò Ñ'Ô'Ð'Ø�ŠÐ= ]Ð=Ð=Ð=×DÒDÑFÔFÑGÔGÐGÐGÐGrm   c                 ó*   •— t          ¦   «         j        S )aª  
        Retrieve/set the PDF file's document information dictionary, if it exists.

        Args:
            value: dict with the entries to be set. if None : remove the /Info entry from the pdf.

        Note that some PDF files use (XMP) metadata streams instead of document
        information dictionaries, and these metadata streams will not be
        accessed by this function, but by :meth:`~xmp_metadata`.

        )r8  rÜ   r:  s    €rn   rÜ   zPdfWriter.metadata'  s   ø€ õ ‰wŒwÔÐrm   c                 ó†   — |€	d | _         d S | j         �| j                              ¦   «          |                      |¦  «         d S rv   )rÌ   rÓ   Úadd_metadatarå   s     rn   rÜ   zPdfWriter.metadata6  sJ   € ð
 ˆ=ØˆDŒJˆJˆJàŒzÐ%Ø”
× Ò Ñ"Ô"Ð"à×Ò˜eÑ$Ô$Ð$Ð$Ð$rm   Úinfosc                 óâ  — i }t          |t          ¦  «        r't          t          |                     ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        D ]Z\  }}t          |t          ¦  «        r|                     ¦   «         }t          t          |¦  «        ¦  «        |t          |¦  «        <   Œ[| j
        €t          ¦   «         | _
        | j
                             |¦  «         dS )zº
        Add custom metadata to the output.

        Args:
            infos: a Python dictionary where each key is a field
                and each value is your new metadata.

        N)r‘   rF   r   r>   rË   r¿   ro  rM   r’   rC   rÌ   r|   )rÁ   r6  ÚargsÚkeyrÍ   s        rn   r5  zPdfWriter.add_metadataC  sÑ   € ð ˆÝ�e�YÑ'Ô'ð 	?ÝÕ)¨5×+;Ò+;Ñ+=Ô+=Ñ>Ô>ˆEÝ˜uŸ{š{™}œ}Ñ-Ô-ð 	Eð 	E‰JˆC�Ý˜%¥Ñ+Ô+ð +Ø×(Ò(Ñ*Ô*�Ý$8½¸U¹¼Ñ$DÔ$DˆD•˜C‘”Ñ!Ð!ØŒ:ÐÝ)Ñ+Ô+ˆDŒJØŒ
×Ò˜$ÑÔÐÐÐrm   )Úremove_duplicatesÚremove_unreferencedÚremove_identicalsÚremove_orphansr:  r;  c          
      ó~  ‡‡— || j         k    r*t          ddd¦  «         t          |t          ¦  «        sJ ‚|}|| j         k    r*t          ddd¦  «         t          |t          ¦  «        sJ ‚|}dt          dt
          t          t          f         dd	fˆˆfd
„Ši | _        dgt          | j	        ¦  «        z  Št          | j	        ¦  «        D ]£\  }}t          |¦  «        rŒ|€
J d¦   «         ‚t          |j        t          ¦  «        sJ ‚|                     ¦   «         }|r?|| j        v r6| j        |         d                              |j        ¦  «         d	| j	        |<   Œ’|j        g f| j        |<   Œ¤d„ | j                             ¦   «         D ¦   «         }i }	|                     ¦   «         D ]9\  }
}|	                     t%          ||
ft          |¦  «        z  ¦  «        ¦  «         Œ:| j	        D ]*}t          |t&          t(          f¦  «        r ‰||	¦  «         Œ+|r§d‰| j        j        j        dz
  <   t          | j        ¦  «        sd‰| j        j        j        dz
  <   	 d‰| j        j        j        dz
  <   n# t2          $ r Y nw xY wt5          t7          t          | j	        ¦  «        ¦  «        ‰¦  «        D ]}d	| j	        |<   Œd	S d	S )a�  
        Parse the PDF file and merge objects that have the same hash.
        This will make objects common to multiple pages.
        Recommended to be used just before writing output.

        Args:
            remove_identicals: Deprecated.
            remove_orphans: Deprecated.
            remove_duplicates: Remove duplicate objects.
            remove_unreferenced: Remove unreferenced objects.

        r<  r:  z7.0.0r=  r;  rÔ   Úcrossrefrr   Nc                 ót  •— t          | t          ¦  «        r|                      ¦   «         }n't          | t          ¦  «        rt	          | ¦  «        }nd S t          | t          t          f¦  «        sJ ‚|D ]D\  }}t          |t
          ¦  «        rd‰|j        dz
  <   ||v r||         | |<   Œ7	  ‰||¦  «         ŒEd S )NFr   )r‘   r>   ro  r9   r­  rB   rÐ   )rÔ   r?  Úkey_valÚkrŽ  Úreplace_in_objÚunreferenceds        €€rn   rC  z<PdfWriter.compress_identical_objects.<locals>.replace_in_objv  s×   ø€ õ ˜#Õ/Ñ0Ô0ð ØŸ)š)™+œ+��Ý˜C¥Ñ-Ô-ð Ý# C™.œ.��à�Ý˜cÕ$4µkÐ#BÑCÔCÐCÐCÐCØð 0ð 0‘��1Ý˜a¥Ñ0Ô0ð 0Ø05�L ¤¨1¡Ñ-Ø˜H�}�}Ø!)¨!¤˜˜A™øð?à"�N 1 hÑ/Ô/Ð/Ð/ð0ð 0rm   Trÿ   r   c                 ó^   — i | ]*}t          |d          ¦  «        dk    ¯|d         |d          “Œ+S )r   r   )rù   rŒ  s     rn   ú
<dictcomp>z8PdfWriter.compress_identical_objects.<locals>.<dictcomp>›  s1   € ÐNÐNÐN˜aÅÀAÀaÄDÁ	Ä	ÈAÂÀˆq�Œt�Q�q”TÀÀÀrm   F)Ú_UNSETr#   r‘   r’  rF   ÚdictrB   rž   rù   rœ   r­  rP   rÏ   Ú
hash_valuerø   r·  ro  r|   Úzipr>   r9   rÉ   rÐ   rÌ   r    rÒ   r   rT  )rÁ   r<  r=  r:  r;  r  rÔ   ÚhÚcnvÚcnv_revrB  rŽ  r  rC  rD  s                @@rn   Úcompress_identical_objectsz$PdfWriter.compress_identical_objectsY  s9  øø€ ð(  ¤Ò+Ð+Ý&Ð':Ð<OÐQXÑYÔYÐYÝÐ/µÑ6Ô6Ð6Ð6Ð6Ø 1ÐØ˜Tœ[Ò(Ð(Ý&Ð'7Ð9NÐPWÑXÔXÐXÝ˜n­dÑ3Ô3Ð3Ð3Ð3Ø"0Ðð	0Ýð	0Ý&*­>½>Ð+IÔ&Jð	0àð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð* ˆÔØ�v¥ D¤MÑ 2Ô 2Ñ2ˆå! $¤-Ñ0Ô0ð 
	Cð 
	C‰HˆC�Ý˜sÑ#Ô#ð ØØ�?�? F‘?”?�?Ý˜cÔ4µnÑEÔEÐEÐEÐEØ—’Ñ Ô ˆAØ ð C Q¨$Ô*:Ð%:Ð%:ØÔ  Ô# AÔ&×-Ò-¨cÔ.DÑEÔEÐEØ%)�”˜cÑ"Ð"à'*Ô'=¸rÐ&B�Ô  Ñ#Ð#ð OÐN 4Ô#3×#:Ò#:Ñ#<Ô#<ÐNÑNÔNˆØ8:ˆØ—I’I‘K”Kð 	2ð 	2‰DˆAˆqØ�NŠN�3˜q 1 $­¨Q©¬¡-Ñ0Ô0Ñ1Ô1Ð1Ð1ð ”=ð 	-ð 	-ˆCÝ˜#Õ 0µ+Ð>Ñ?Ô?ð -Ø�˜s GÑ,Ô,Ð,øàð 	(ØJOˆL˜Ô)Ô<ÔBÀQÑFÑGå" 4¤:Ñ.Ô.ð NØHM�˜TœZÔ:Ô@À1ÑDÑEðØFK�˜TœXÔ8Ô>ÀÑBÑCÐCøÝ!ð ð ð Ø�ðøøøõ �e¥C¨¬Ñ$6Ô$6Ñ7Ô7¸ÑFÔFð (ð (�Ø#'�”˜aÑ Ð ð	(ð 	(ð(ð (s   ÉI/ É/
I<É;I<c                 ó–   — | j                              |¦  «        dz   }t          |d| ¦  «        }|                     ¦   «         |k    sJ ‚|S ©Nr   r   )rœ   r  rB   rË   )rÁ   rÔ   rÐ   Úrefs       rn   Úget_referencezPdfWriter.get_reference³  sM   € Ø”×#Ò# CÑ(Ô(¨1Ñ,ˆÝ˜U A tÑ,Ô,ˆØ�~Š~ÑÔ 3Ò&Ð&Ð&Ð&Øˆ
rm   c                 óP  — t           j        | j        v r¹t          t          | j        t           j                 ¦  «        }t          |t          ¦  «        s1t	          |¦  «        }|                      |j        j        |¦  «         |}| j	         
                    |¦  «        dz   }t          |d| ¦  «        }|                     ¦   «         |k    sJ ‚nYt	          ¦   «         }|                     i ¦  «         |                      |¦  «        }|| j        t          t           j        ¦  «        <   |S rP  )r»   ÚOUTLINESr¾   r   rK   r‘   r  rÏ   rÐ   rœ   r  rB   rË   r|   r®   rC   )rÁ   Úoutliner™   rÐ   Úoutline_refs        rn   Úget_outline_rootzPdfWriter.get_outline_root¹  s   € ÝŒ;˜$Ô+Ð+Ð+å�: tÔ'8½¼Ô'EÑFÔFˆGÝ˜g¥zÑ2Ô2ð Ý˜wÑ'Ô'�Ø×$Ò$ WÔ%?Ô%EÀqÑIÔIÐIØ�Ø”M×'Ò'¨Ñ0Ô0°1Ñ4ˆEÝ(¨°°4Ñ8Ô8ˆKØ×)Ò)Ñ+Ô+¨wÒ6Ð6Ð6Ð6Ð6å ‘l”lˆGØ�NŠN˜2ÑÔÐØ×*Ò*¨7Ñ3Ô3ˆKØ9DˆDÔ�j­¬Ñ5Ô5Ñ6àˆrm   c                 óà   — t           j        | j        v r+t          t          | j        t           j                 ¦  «        }n/t	          ¦   «         }|| j        t          t           j        ¦  «        <   |S )u  
        The list of threads.

        See Â§12.4.3 of the PDF 1.7 or PDF 2.0 specification.

        Returns:
            An array (possibly empty) of Dictionaries with an ``/F`` key,
            and optionally information about the thread in ``/I`` or ``/Metadata`` keys.

        )r»   ÚTHREADSr¾   r   r9   rC   )rÁ   Úthreadss     rn   Úget_threads_rootzPdfWriter.get_threads_rootÌ  sT   € õ Œ:˜Ô*Ð*Ð*å�;¨Ô(9½"¼*Ô(EÑFÔFˆGˆGå!‘m”mˆGØ8?ˆDÔ�j­¬Ñ4Ô4Ñ5Øˆrm   c                 ó*   — |                       ¦   «         S )u  
        Read-only property for the list of threads.

        See Â§12.4.3 of the PDF 1.7 or PDF 2.0 specification.

        Each element is a dictionary with an ``/F`` key, and optionally
        information about the thread in ``/I`` or ``/Metadata`` keys.
        )r[  rÆ   s    rn   rZ  zPdfWriter.threadsß  s   € ð ×$Ò$Ñ&Ô&Ð&rm   Úpage_destinationÚparentÚbeforeÚis_openc           	      ó¦  — t          t          |                     ¦   «         ¦  «        }t          |t          ¦  «        rU|                      t          d|j        › �t          t          |j        ¦  «        t          j
        ¦   «         ¦  «        ¦  «        S |€|                      ¦   «         }t          |¦  «        |t          d¦  «        <   t          t          |                     ¦   «         ¦  «        }|                      |¦  «        }|�|j        }|                     ||| |r|j        nd„ ¦  «         d|vrt%          d¦  «        |t          d¦  «        <   |S )Nzpage #z
/%is_open%c                 ó   — dS rÄ  rl   )ÚxÚys     rn   rx   z8PdfWriter.add_outline_item_destination.<locals>.<lambda>
  s   € ˜q€ rm   z/Countr   )r   r   rË   r‘   Úadd_outline_item_destinationr=   r%  rB   rÏ   r@   ÚfitrW  r:   rC   rK   r®   Úinsert_childÚinc_parent_counter_outlinerE   )rÁ   r]  r^  r_  r`  Úpage_destination_refs         rn   re  z&PdfWriter.add_outline_item_destinationë  sW  € õ  ¥
Ð,<×,GÒ,GÑ,IÔ,IÑJÔJÐÝÐ&­
Ñ3Ô3ð 	Ø×4Ò4ÝØ;Ð-Ô9Ð;Ð;Ý�Ð)9Ô)LÑMÔMÝ”G‘I”Iñô ñô ð ð ˆ>Ø×*Ò*Ñ,Ô,ˆFå5BÀ7Ñ5KÔ5KÐ� LÑ1Ô1Ñ2Ý•j &×"3Ò"3Ñ"5Ô"5Ñ6Ô6ˆØ#×/Ò/Ð0@ÑAÔAÐØÐØÔ.ˆFØ×ÒØ ØØàð"ÐÔ7Ð7à �.ñ	
ô 	
ð 	
ð Ð+Ð+Ð+Ý5AÀ!±_´_Ð�Z¨Ñ1Ô1Ñ2à#Ð#rm   Úoutline_itemc                 óz   — t          ¦   «         }|                     |¦  «         	 |                      ||||¦  «        S rv   )rK   r|   re  )rÁ   rj  r^  r_  r`  Úoutline_item_objects         rn   Úadd_outline_item_dictzPdfWriter.add_outline_item_dict  sJ   € õ )™lœlÐØ×"Ò" <Ñ0Ô0Ð0ð	ð ×0Ò0Ø ¨°ñ
ô 
ð 	
rm   Útitler%  ÚcolorÚboldÚitalicrf  c
                 ó†  — t          |t          ¦  «        r$|�|€|}|                      |||d|||||	¬¦	  «	        S |€d}
�n/t          |t          ¦  «        r|}net          |t          ¦  «        r|j        }nHt          |t          ¦  «        r3	 | j        |         j        }n# t          $ r t          |¦  «        }Y nw xY w|€&t          d|› �t          ¦  «         t          ¦   «         }t          t          d|z   dz   ¦  «        ||¦  «        }|                      t!          t          t"          j        ¦  «        |j        t          t"          j        ¦  «        t          d¦  «        i¦  «        ¦  «        }
|                      t+          |
||||¦  «        ¦  «        }|€|                      ¦   «         }|                      ||||	¦  «        S )aÎ  
        Add an outline item (commonly referred to as a "Bookmark") to the PDF file.

        Args:
            title: Title to use for this outline item.
            page_number: Page number this outline item will point to.
            parent: A reference to a parent outline item to create nested
                outline items.
            before:
            color: Color of the outline item's font as a red, green, blue tuple
                from 0.0 to 1.0 or as a Hex String (#RRGGBB)
            bold: Outline item font is bold
            italic: Outline item font is italic
            fit: The fit of the destination page.

        Returns:
            The added outline item as an indirect object.

        N)r`  zcan not find reference of page ú/z outline itemú/GoTo)r‘   r@   Úadd_outline_itemrB   r   rÏ   r£   rÃ   r3  rE   r%   r]   rD   r=   rC   r®   r>   r)   ÚDr?  ÚSÚ_create_outline_itemrW  re  )rÁ   rn  r%  r^  r_  ro  rp  rq  rf  r`  Ú
action_refÚpage_refr<  rj  s                 rn   ru  zPdfWriter.add_outline_item(  sú  € õ@ �f�cÑ"Ô"ð 	Øˆ ;Ð#6Ø!�Ø×(Ò(Ø�{ F¨D°&¸%ÀÀvÐW^ð )ñ ô ð ð ÐØˆJ‰Jå˜+¥~Ñ6Ô6ð 9Ø&��Ý˜K­Ñ4Ô4ð 9Ø&Ô9��Ý˜K­Ñ-Ô-ð 9ð9Ø#œz¨+Ô6ÔI�H�HøÝ!ð 9ð 9ð 9Ý+¨KÑ8Ô8�H�H�Hð9øøøàÐÝØC°kÐCÐCÝñô ð õ &™<œ<�ÝÝ˜3 ™;¨Ñ8Ñ9Ô9ØØñô ˆDð ×)Ò)Ý å"Õ#6Ô#8Ñ9Ô9¸4¼?Ý"Õ#6Ô#8Ñ9Ô9½:ÀgÑ;NÔ;Nðñô ñô ˆJð ×'Ò'Ý  ¨U°E¸6À4ÑHÔHñ
ô 
ˆð ˆ>Ø×*Ò*Ñ,Ô,ˆFØ×0Ò0°¸vÀvÈwÑWÔWÐWs   ÂB ÂB:Â9B:c                 ó    — t          d¦  «        ‚)NzIThis method is not yet implemented. Use :meth:`add_outline_item` instead.)ÚNotImplementedErrorrÆ   s    rn   Úadd_outlinezPdfWriter.add_outlinev  s   € Ý!ØWñ
ô 
ð 	
rm   Údestinationc                 ó^  — |                       ¦   «         }d}|t          |¦  «        k     r_|||         k     r;|                     ||¦  «         |                     |t          |¦  «        ¦  «         d S |dz  }|t          |¦  «        k     °_|                     t          |¦  «        |g¦  «         d S )Nr   r�   )Úget_named_dest_rootrù   r  rJ   r  )rÁ   rn  r~  Ú
named_destr  s        rn   Úadd_named_destination_arrayz%PdfWriter.add_named_destination_array{  s¹   € ð ×-Ò-Ñ/Ô/ˆ
ØˆØ•#�j‘/”/Ò!Ð!Ø�z !”}Ò$Ð$Ø×!Ò! ! [Ñ1Ô1Ð1Ø×!Ò! !Õ%5°eÑ%<Ô%<Ñ=Ô=Ð=Ø�Ø�‰FˆAð •#�j‘/”/Ò!Ð!ð 	×ÒÕ+¨EÑ2Ô2°KÐ@ÑAÔAÐAØˆrm   c                 óŽ   — |                       |j        ¦  «        }|                      t          d|d         ¦  «        |¦  «         |S )NrJ   ú/Title)r®   r?  r‚  r   )rÁ   r]  ri  s      rn   Úadd_named_destination_objectz&PdfWriter.add_named_destination_object‰  sS   € ð  $×/Ò/Ð0@Ô0KÑLÔLÐØ×(Ò(ÝÐ#Ð%5°hÔ%?Ñ@Ô@ÐBVñ	
ô 	
ð 	
ð $Ð#rm   c           
      óJ  — |                       | j        ¦  «        t          j                 |         }t	          ¦   «         }|                     t          t          j        ¦  «        t          |t          t          j        ¦  «        t          d¦  «        g¦  «        t          t          j        ¦  «        t          d¦  «        i¦  «         |                      |¦  «        }t          |t           ¦  «        st!          t#          |¦  «        ¦  «        }|                      ||¦  «         |S )Ni:  rt  )rË   rº   r.   rµ   r>   r|   rC   r)   rv  r9   r/   ÚFIT_HrE   rw  r®   r‘   rJ   r’   r‚  )rÁ   rn  r%  rz  r<  Údest_refs         rn   Úadd_named_destinationzPdfWriter.add_named_destination”  só   € ð
 —?’? 4¤;Ñ/Ô/µÔ0DÔEÀkÔRˆÝÑ!Ô!ˆØ�ŠåÕ.Ô0Ñ1Ô1µ;Ø�z­/Ô*?Ñ@Ô@Å,ÈsÑBSÔBSÐTñ4ô 4õ Õ.Ô0Ñ1Ô1µ:¸gÑ3FÔ3Fð	ñ	
ô 	
ð 	
ð ×#Ò# DÑ)Ô)ˆÝ˜%Õ!1Ñ2Ô2ð 	1Ý$¥S¨¡Z¤ZÑ0Ô0ˆEà×(Ò(¨°Ñ9Ô9Ð9Øˆrm   c                 óZ   — | j         D ]"}|                      |t          j        ¦  «         Œ#dS )z.Remove links and annotations from this output.N)rÃ   Úremove_objects_from_pager\   rg   )rÁ   r  s     rn   Úremove_linkszPdfWriter.remove_links«  s>   € à”Jð 	Tð 	TˆDØ×)Ò)¨$Õ0BÔ0RÑSÔSÐSÐSð	Tð 	Trm   Úsubtypesc                 óF   — | j         D ]}|                      ||¦  «         ŒdS )aC  
        Remove annotations by annotation subtype.

        Args:
            subtypes: subtype or list of subtypes to be removed.
                Examples are: "/Link", "/FileAttachment", "/Sound",
                "/Movie", "/Screen", ...
                If you want to remove all annotations, use subtypes=None.

        N)rÃ   Ú_remove_annots_from_page)rÁ   r�  r  s      rn   Úremove_annotationszPdfWriter.remove_annotations°  s8   € ð ”Jð 	:ð 	:ˆDØ×)Ò)¨$°Ñ9Ô9Ð9Ð9ð	:ð 	:rm   c                 óÐ  — t          t          |                     ¦   «         ¦  «        }t          j        |v �r-d}|t          t          t          |t          j                 ¦  «        ¦  «        k     r÷t          t          |t          j                 ¦  «        |         }t          t          |                     ¦   «         ¦  «        }|�t          t          |d         ¦  «        |v rGt          |t          ¦  «        rt          ¦   «         | j        |j        dz
  <   |t          j                 |= n|dz  }|t          t          t          |t          j                 ¦  «        ¦  «        k     °ód S d S d S )Nr   r†  r   )r   r>   rË   rö   r“  rù   r9   r’   r‘   rB   rD   rœ   rÐ   )rÁ   r  r�  r  ÚanrÔ   s         rn   r�  z"PdfWriter._remove_annots_from_pageÀ  s  € õ
 Õ$ d§o¢oÑ&7Ô&7Ñ8Ô8ˆÝŒ9˜ÐÑØˆAØ•c�$�{¨Dµ´¬OÑ<Ô<Ñ=Ô=Ò=Ð=Ý�+ t­B¬I¤Ñ7Ô7¸Ô:�ÝÕ+¨R¯]ª]©_¬_Ñ=Ô=�ØÐ#¥t­C°°Z´Ñ'AÔ'AÀXÐ'MÐ'MÝ! "¥nÑ5Ô5ð CÝ6@±l´l˜œ b¤h°¡lÑ3Ø�RœYœ¨Ð*Ð*à˜‘F�Að •c�$�{¨Dµ´¬OÑ<Ô<Ñ=Ô=Ò=Ð=Ð=Ð=ð Ðà=Ð=rm   Ú	to_deleteÚtext_filtersc                 óf  — t          |t          t          f¦  «        r|D ]}|                      ||¦  «         ŒdS t          |t          ¦  «        sJ ‚|t          j        z  r|                      |d¦  «        S |t          j        z  r|                      |d¦  «        S |t          j        z  r|                      |d¦  «        S |t          j	        z  r|                      |d¦  «        S g }|t          j
        z  rg d¢}|t          j        z  rg d¢}t          |t          ¦  «        st          | |j        ¦  «        }d|v rtt          t          |                     ¦   «         ¦  «        }|                      |g |||¬¦  «        \  }}|                      ||||||¬	¦  «         |                     |¦  «         g g fS )
a  
        Remove objects specified by ``to_delete`` from the given page.

        Args:
            page: Page object to clean up.
            to_delete: Objects to be deleted; can be a ``ObjectDeletionFlag``
                or a list of ObjectDeletionFlag
            text_filters: Properties of text to be deleted, if applicable. Optional.
                This is a Python dictionary with the following properties:

                * font_ids: List of font resource IDs (such as /F1 or /T1_0) to be deleted.

        N)ú/Link)z/FileAttachmentz/Soundz/Moviez/Screen)z/3D)ó   wó   Jó   jó   Mó   dó   ió   Ws   W*ó   bs   b*ó   Bs   B*ó   Só   só   fs   f*ó   Fó   nó   mó   ló   có   vó   yó   hs   res   sh)s   Tjs   TJó   'ó   "r]  ©ÚeltÚstackÚjump_operatorsr“  r”  ©ÚcontentÚimagesÚformsr°  r“  r”  )r‘   r¿   r›  r‹  r\   rd   r�  re   rf   rg   rj   rc   r   rÏ   r   r<   Úget_contentsÚ&_remove_objects_from_page__clean_formsÚ _remove_objects_from_page__cleanÚreplace_contents)	rÁ   r  r“  r”  Úto_dr°  r²  r³  r´  s	            rn   r‹  z"PdfWriter.remove_objects_from_pageÒ  s  € õ& �i¥$­ Ñ/Ô/ð 	Ø!ð :ð :�Ø×-Ò-¨d°DÑ9Ô9Ð9Ð9Ø�4Ý˜)Õ%7Ñ8Ô8Ð8Ð8Ð8àÕ)Ô/Ñ/ð 	CØ×0Ò0°°zÑBÔBÐBØÕ)Ô5Ñ5ð 	Ø×0Ò0ØÐHñô ð ð Õ)Ô4Ñ4ð 	AØ×0Ò0°°xÑ@Ô@Ð@ØÕ)Ô9Ñ9ð 	=Ø×0Ò0°°tÑ<Ô<Ð<àˆØÕ)Ô8Ñ8ð 	ðð ð ˆNð Õ)Ô.Ñ.ð 	8Ø7Ð7Ð7ˆNå˜$¥
Ñ+Ô+ð 	=Ý˜d DÔ$;Ñ<Ô<ˆDØ˜$ÐÐÝ�=¨$×*;Ò*;Ñ*=Ô*=Ñ>Ô>ˆGà ×GÒGØ °>ÈYÐeqð Hñ ô ‰MˆF�Eð ×1Ò1Ø¨°eØ-¸Ø)ð 2ñ ô ð ð
 ×!Ò! 'Ñ*Ô*Ð*Ø�2ˆvˆrm   r²  r³  r´  r°  c                 ó"  — d }g }|r%|t           j        z  r|                     dg ¦  «        }d}	|	t          |j        ¦  «        k     rµ|j        |	         \  }
}|dk    r|
d         }|dk    r|t           j        z  s#||v s|dk    r[|t           j        z  rL|
d         |v rB|t           j        z  r$|t           j        z  r|r|t           j        z  r||v r	|j        |	= n|	dz  }	n|	dz  }	|	t          |j        ¦  «        k     °µ|                     ¦   «          d S )NÚfont_idsr   s   Tfs   INLINE IMAGEs   Dor   )r\   rc   rÙ   rù   Ú
operationsri   rh   rÚ   )rÁ   r²  r³  r´  r°  r“  r”  Úfont_idÚfont_ids_to_deleter  ÚoperandsÚoperators               rn   r·  z*PdfWriter._remove_objects_from_page__clean  sy  € ð ˆØÐØð 	B˜IÕ(:Ô(?Ñ?ð 	BØ!-×!1Ò!1°*¸bÑ!AÔ!AÐàˆØ•#�gÔ(Ñ)Ô)Ò)Ð)Ø!(Ô!3°AÔ!6ÑˆH�hØ˜5Ò Ð Ø" 1œ+�ð  Ò/Ð/Ø"Õ%7Ô%EÑEð 0ð  Ð.Ð.à Ò%Ð%Ø"Õ%7Ô%FÑFð &à! !œ¨Ð.Ð.ð "Õ$6Ô$;Ñ;ðà!Õ$6Ô$;Ñ;ðàDPðð "Õ$6Ô$;Ñ;ðð AHÐK]Ð@]Ð@]àÔ*¨1Ð-Ð-à˜‘F�A�Aà�Q‘�ð3 •#�gÔ(Ñ)Ô)Ò)Ð)ð4 	×ÒÑÔÐÐÐrm   r®  r¯  c                 ó^  ‡— ‰|v s+t          ‰d¦  «        rt          ˆfd„|D ¦   «         ¦  «        rg g fS 	 t          t          t          t          f         t          t
          ‰d         ¦  «        d         ¦  «        }n# t          $ r i }Y nw xY wg }g }|                     ¦   «         D �]|\  }	}
|
                     ¦   «         }	 d }|t          j
        z  r/|d         dk    r#t          ¦   «         }|                     |	¦  «         |d         dk    r»|                     |	¦  «         t          |t          ¦  «        r|}n_t          || ¦  «        }|                     d„ |                     ¦   «         D ¦   «         ¦  «         	 |j        |_        n# t"          $ r Y nw xY w|                     ‰¦  «         |                      |||||¬	¦  «         |�@t          |
t&          ¦  «        r|| j        |
j        d
z
  <   n|                      |¦  «        ||	<   �Œf# t.          t          f$ r Y �Œzw xY w|D ]}||= Œt          ‰t0          ¦  «        rit          ‰t          ¦  «        s9t          ‰| ¦  «        }|                     ‰                     ¦   «         ¦  «         |Š|                      ‰|||||¬¦  «         ||fS )NrÏ   c              3   óL   •K  — | ]}‰j         t          |d d¦  «        k    V — ŒdS )rÏ   r�   N)rÏ   rô   )r�  rc  r®  s     €rn   r�  zCPdfWriter._remove_objects_from_page__clean_forms.<locals>.<genexpr>H  sL   øè è € ð ;ð ;àð Ô*­g°aÐ9MÈrÑ.RÔ.RÒRð;ð ;ð ;ð ;ð ;ð ;rm   rj  rl  r†  z/Imagez/Formc                 ó"   — i | ]\  }}|d v¯	||“ŒS ))z/Lengthr  z/DecodeParmsrl   )r�  Úk1Úv1s      rn   rF  zDPdfWriter._remove_objects_from_page__clean_forms.<locals>.<dictcomp>i  s4   € ð ð ð á$* B¨Ø#%Ð-SÐ#SÐ#Sð !# Bà#SÐ#SÐ#Srm   r­  r   r±  )rö  Úanyr   rH  r   r>   rÑ   ro  rË   r\   rh   rD   rø   r‘   r<   r|   rÏ   rÒ   r¶  rB   rœ   rÐ   r®   Ú	TypeErrorrI   r·  )rÁ   r®  r¯  r°  r“  r”  Údr³  r´  rB  rŽ  r  r²  ÚimÚes    `             rn   r¶  z0PdfWriter._remove_objects_from_page__clean_forms>  s;  ø€ ð �5ˆLˆLÝ˜Ð1Ñ2Ô2ð Ý7:ð ;ð ;ð ;ð ;à"ð;ñ ;ô ;ñ 8ô 8ð ð �r�6ˆMð	ÝÝ•S�#�X”ÝÕ% s¨<Ô'8Ñ9Ô9¸*ÔEñô ˆAˆAøõ ð 	ð 	ð 	ØˆAˆAˆAð	øøøàˆØˆØ—G’G‘I”Ið *	ñ *	‰DˆAˆqØ—’‘”ˆAð(Ø#�à!Õ$6Ô$EÑEð%à˜jœM¨XÒ5Ð5å(™lœl�GØ—M’M !Ñ$Ô$Ð$Ø�Z”= GÒ+Ð+Ø—L’L ‘O”O�OÝ! !¥]Ñ3Ô3ð !Ø"#˜˜å"/°°4Ñ"8Ô"8˜ØŸšðð à./¯gªg©i¬iðñ ô ñô ð ð!Ø9:Ô9M˜GÔ6Ð6øÝ-ð !ð !ð !Ø ˜Dð!øøøà—L’L Ñ%Ô%Ð%ð ×?Ò?Ø#¨5ÀÐ[dØ%1ð @ñ ô ð ð Ð&Ý! !¥^Ñ4Ô4ð 9Ø5<˜œ a¤g°¡kÑ2Ð2ð  $×/Ò/°Ñ8Ô8˜˜!™ùøÝ�xÐ(ð ð ð Ø‘ðøøøàð 	ð 	ˆBØ�"��Ý�c�<Ñ(Ô(ð 		Ý˜c¥=Ñ1Ô1ð Ý! # tÑ,Ô,�Ø—’˜Ÿš™œÑ%Ô%Ð%Ø�à×1Ò1Ø F°%ÈØ#°,ð 2ñ ô ð ð �uˆ}ÐsJ   ¶AA= Á=BÂBÃB:HÅ=F
Æ	HÆ

FÆHÆFÆA4HÈH"È!H"c                 óê   — t          |t          ¦  «        rt          j        }t          j        }dD ]"}|t          |         z  r|t          |         z  }Œ#| j        D ]}|                      ||¦  «         ŒdS )z¦
        Remove images from this output.

        Args:
            to_delete: The type of images to be deleted
                (default = all images types)

        )rh   ri   rj   N)r‘   r’  r*   ÚALLr\   r`   rÃ   r‹  )rÁ   r“  r  Úimager  s        rn   Úremove_imageszPdfWriter.remove_images‘  s‹   € õ �i¥Ñ&Ô&ð 	&Ý!œˆIåÔ#ˆàJð 	/ð 	/ˆEØ�9 UÔ+Ñ+ð /ØÕ'¨Ô.Ñ.�øà”Jð 	3ð 	3ˆDØ×)Ò)¨$°Ñ2Ô2Ð2Ð2ð	3ð 	3rm   Ú
font_namesc                 óÐ  ‡— |sg }| j         D ]Ø}g }|r§	 	 ddt          dt          t          t          t          f                  dt          t                   dt          t          t          f         fˆfd„Š ‰|                     d¦  «        ¦  «        }|D ]'}||v r!|                     ||         d         ¦  «         Œ(i }|r||d	<   |                      |t          j	        |¬
¦  «         ŒÙdS )zÐ
        Remove text from the PDF.

        Args:
            font_names: List of font names to remove, such as "Helvetica-Bold".
                Optional. If not specified, all text will be removed.
        NrÔ   Ú	font_infor9  rr   c                 óL  •— |€i }t          | t          ¦  «        r|                      ¦   «         } t          | t          ¦  «        r³|                      d¦  «        dk    r�|                      dd¦  «        }|                     d¦  «                             d¦  «        d         }||vr|g dœ||<   |||         d	         vr!||         d	                              |¦  «         | D ]} ‰| |         ||¦  «        }Œn-t          | t          t          f¦  «        r| D ]} ‰||¦  «        }Œ|S )
Nr  rk  z	/BaseFontrƒ   rs  ú+r�   )Únormalized_font_nameÚresource_idsrÕ  )
r‘   rB   rË   rH  rÙ   ÚlstripÚsplitrø   r¿   r9   )rÔ   rÑ  r9  rx  rÔ  rB  Ú	child_objÚget_font_infos          €rn   rÙ  z,PdfWriter.remove_text.<locals>.get_font_info»  se  ø€ ð
 !Ð(Ø$&˜	Ý! #¥~Ñ6Ô6ð /Ø!ŸnšnÑ.Ô.˜Ý! #¥tÑ,Ô,ð LØŸ7š7 7Ñ+Ô+¨wÒ6Ð6Ø(+¯ª°¸RÑ(@Ô(@˜Ià3<×3CÒ3CÀCÑ3HÔ3H×3NÒ3NÈsÑ3SÔ3SÐTVÔ3WÐ0Ø3¸9ÐDÐDà<PØ46ðC"ð C" 	Ð*>Ñ ?ð  #¨)Ð4HÔ*IÈ.Ô*YÐYÐYØ )Ð*>Ô ?ÀÔ O× VÒ VÐWZÑ [Ô [Ð [Ø!$ð Lð L˜AØ(5¨°c¸!´f¸iÈÑ(KÔ(K˜I˜IðLå# C­$µÐ)<Ñ=Ô=ð LØ),ð Lð L˜IØ(5¨°iÀÑ(KÔ(K˜I˜IØ$Ð$rm   rj  rÕ  r»  )r”  ©NN)
rÃ   r   r   rH  r’   rÙ   r  r‹  r\   rc   )rÁ   rÏ  r  Úresource_ids_to_removerÑ  rx  r”  rÙ  s          @rn   Úremove_textzPdfWriter.remove_text©  s>  ø€ ð ð 	ØˆJà”Jð ,	dð ,	dˆDØ%'Ð"ð ð "\ð ;?Ø)-ð%ð %Ýð%å'­­Sµ#¨X¬Ô7ð%õ "¥#œð%õ �#�s˜(”^ð	%ð %ð %ð %ð %ð %ð: *˜M¨$¯(ª(°<Ñ*@Ô*@ÑAÔA�	Ø!+ð \ð \�IØ  IÐ-Ð-Ø.×5Ò5°iÀ	Ô6JÈ>Ô6ZÑ[Ô[Ð[øàˆLØð BØ+A�˜ZÑ(Ø×)Ò)¨$Õ0BÔ0GÐVbÐ)ÑcÔcÐcÐcðY,	dð ,	drm   ÚuriÚrectÚborderc                 ó  — |                       | j        ¦  «        t          j                 |         }t	          t
          t          t          f         |                       |¦  «        ¦  «        }|�\d„ |dd…         D ¦   «         }t          |¦  «        dk    r4t          d„ |d         D ¦   «         ¦  «        }| 
                    |¦  «         n,t          d¦  «        t          d¦  «        t          d¦  «        g}t          |t          ¦  «        rt          |¦  «        }n%t          |t          ¦  «        rnt          |¦  «        }t          ¦   «         }	|	                     t!          d¦  «        t!          d¦  «        t!          d¦  «        t#          |¦  «        i¦  «         t          ¦   «         }
|
                     t!          t$          j        ¦  «        t!          d	¦  «        t!          t$          j        ¦  «        t!          d
¦  «        t!          t$          j        ¦  «        |t!          t$          j        ¦  «        |t!          d¦  «        t!          d¦  «        t!          t$          j        ¦  «        t          |¦  «        t!          d¦  «        |	i¦  «         |                      |
¦  «        }t2          j        |v r'|t2          j                  
                    |¦  «         dS t          |g¦  «        |t!          t2          j        ¦  «        <   dS )a¡  
        Add an URI from a rectangular area to the specified page.

        Args:
            page_number: index of the page on which to place the URI action.
            uri: URI of resource to link to.
            rect: :class:`RectangleObject<pypdf.generic.RectangleObject>` or
                array of four integers specifying the clickable rectangular area
                ``[xLL, yLL, xUR, yUR]``, or string in the form
                ``"[ xLL yLL xUR yUR ]"``.
            border: if provided, an array describing border-drawing
                properties. See the PDF spec for details. No border will be
                drawn if this argument is omitted.

        Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS rl   r  ©r�  r©  s     rn   rÆ  z%PdfWriter.add_uri.<locals>.<listcomp>ý  s   € Ð>Ð>Ð>¨a�, q™/œ/Ð>Ð>Ð>rm   r   r  c                 ó,   — g | ]}t          |¦  «        ‘ŒS rl   r  râ  s     rn   rÆ  z%PdfWriter.add_uri.<locals>.<listcomp>ÿ  s   € Ð+OÐ+OÐ+OÀ­L¸©O¬OÐ+OÐ+OÐ+Orm   r�   rC  z/URIz/Annotr–  z/HrŠ  ú/A)rË   rº   r.   rµ   r   rH  r’   r   rù   r9   rø   rE   r‘   rG   r>   r|   rC   rJ   r•  ÚTypeÚSubtypeÚPr–  ÚBorderr®   rö   r“  )rÁ   r%  rÝ  rÞ  rß  Ú	page_linkrz  Ú
border_arrÚdash_patternÚlnk2ÚlnkÚlnk_refs               rn   Úadd_urizPdfWriter.add_uriâ  sv  € ð, —O’O D¤KÑ0Ô0µÔ1EÔFÀ{ÔSˆ	Ý��S¥#˜Xœ¨¯ª¸	Ñ(BÔ(BÑCÔCˆð ÐØ>Ð>°6¸"¸1¸"´:Ð>Ñ>Ô>ˆJÝ�6‰{Œ{˜aÒÐÝ*Ð+OÐ+OÀVÈAÄYÐ+OÑ+OÔ+OÑPÔP�Ø×!Ò! ,Ñ/Ô/Ð/øå& q™/œ/­<¸©?¬?½LÈ¹O¼OÐLˆJå�d�CÑ Ô ð 	)Ý Ñ%Ô%ˆDˆDÝ˜�oÑ.Ô.ð 	)Øå" 4Ñ(Ô(ˆDåÑ!Ô!ˆØ�Šå˜4Ñ Ô ¥*¨VÑ"4Ô"4Ý˜6Ñ"Ô"Õ$4°SÑ$9Ô$9ðñ	
ô 	
ð 	
õ Ñ Ô ˆØ�
Š
å�2œ7Ñ#Ô#¥Z°Ñ%9Ô%9Ý�2œ:Ñ&Ô&­
°7Ñ(;Ô(;Ý�2œ4Ñ Ô  )Ý�2œ7Ñ#Ô# TÝ˜4Ñ Ô ¥*¨TÑ"2Ô"2Ý�2œ9Ñ%Ô%¥{°:Ñ'>Ô'>Ý˜4Ñ Ô  $ðñ
	
ô 
	
ð 
	
ð ×"Ò" 3Ñ'Ô'ˆåŒ9˜Ð Ð Ø•R”YÔ×&Ò& wÑ/Ô/Ð/Ð/Ð/å.9¸7¸)Ñ.DÔ.DˆH•Z¥¤	Ñ*Ô*Ñ+Ð+Ð+rm   )z	/NoLayoutz/SinglePagez
/OneColumnz/TwoColumnLeftz/TwoColumnRightz/TwoPageLeftz/TwoPageRightc                 óf   — 	 t          t          | j        d         ¦  «        S # t          $ r Y d S w xY w)Nú/PageLayout)r   rV   r¾   rÑ   rÆ   s    rn   Ú_get_page_layoutzPdfWriter._get_page_layout/	  sA   € ð	Ý�
 DÔ$5°mÔ$DÑEÔEÐEøÝð 	ð 	ð 	Ø�4�4ð	øøøó   ‚" ¢
0¯0Úlayoutc                 ó  — t          |t          ¦  «        sJ|| j        vr2t          ddd                     | j        ¦  «        f› �t
          ¦  «         t          |¦  «        }| j                             t          d¦  «        |i¦  «         dS )a  
        Set the page layout.

        Args:
            layout: The page layout to be used.

        .. list-table:: Valid ``layout`` arguments
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right

        zLayout should be one of: rƒ   rñ  N)r‘   rC   Ú_valid_layoutsr%   r!  r]   r¾   r|   ©rÁ   rô  s     rn   Ú_set_page_layoutzPdfWriter._set_page_layout5	  s‘   € õ4 ˜&¥*Ñ-Ô-ð 	(Ø˜TÔ0Ð0Ð0ÝØR°°B·G²G¸DÔ<OÑ4PÔ4PÐ/QÐRÐRÝñô ð õ   Ñ'Ô'ˆFØÔ× Ò ¥*¨]Ñ";Ô";¸VÐ!DÑEÔEÐEÐEÐErm   c                 ó0   — |                       |¦  «         dS )a  
        Set the page layout.

        Args:
            layout: The page layout to be used

        .. list-table:: Valid ``layout`` arguments
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right

        N©rø  r÷  s     rn   Úset_page_layoutzPdfWriter.set_page_layoutX	  s   € ð4 	×Ò˜fÑ%Ô%Ð%Ð%Ð%rm   c                 ó*   — |                       ¦   «         S )aÛ  
        Page layout property.

        .. list-table:: Valid ``layout`` values
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right
        )rò  rÆ   s    rn   Úpage_layoutzPdfWriter.page_layoutt	  s   € ð. ×$Ò$Ñ&Ô&Ð&rm   c                 ó0   — |                       |¦  «         d S rv   rú  r÷  s     rn   rý  zPdfWriter.page_layout�	  s   € à×Ò˜fÑ%Ô%Ð%Ð%Ð%rm   )z/UseNonez/UseOutlinesz
/UseThumbsz/FullScreenz/UseOCz/UseAttachmentsc                 óf   — 	 t          t          | j        d         ¦  «        S # t          $ r Y d S w xY w)Nú	/PageMode)r   rY   r¾   rÑ   rÆ   s    rn   Ú_get_page_modezPdfWriter._get_page_modeš	  sA   € ð	Ý� dÔ&7¸Ô&DÑEÔEÐEøÝð 	ð 	ð 	Ø�4�4ð	øøøró  c                 ó*   — |                       ¦   «         S )a  
        Page mode property.

        .. list-table:: Valid ``mode`` values
           :widths: 50 200

           * - /UseNone
             - Do not show outline or thumbnails panels
           * - /UseOutlines
             - Show outline (aka bookmarks) panel
           * - /UseThumbs
             - Show page thumbnails panel
           * - /FullScreen
             - Fullscreen view
           * - /UseOC
             - Show Optional Content Group (OCG) panel
           * - /UseAttachments
             - Show attachments panel
        )r  rÆ   s    rn   Ú	page_modezPdfWriter.page_mode 	  s   € ð* ×"Ò"Ñ$Ô$Ð$rm   rô  c                 ó  — t          |t          ¦  «        r|}nH|| j        vr0t          dd                     | j        ¦  «        › �t
          ¦  «         t          |¦  «        }| j                             t          d¦  «        |i¦  «         d S )NzMode should be one of: r-  r   )r‘   rC   Ú_valid_modesr%   r!  r]   r¾   r|   )rÁ   rô  Ú	mode_names      rn   r  zPdfWriter.page_mode·	  s�   € å�d�JÑ'Ô'ð 	)Ø$(ˆIˆIà˜4Ô,Ð,Ð,ÝØL¨d¯iªi¸Ô8IÑ.JÔ.JÐLÐLÍhñô ð õ # 4Ñ(Ô(ˆIØÔ× Ò ¥*¨[Ñ"9Ô"9¸9Ð!EÑFÔFÐFÐFÐFrm   r¢  c           
      ó  — |}t          |t          ¦  «        r| j        |         }n$t          |t          ¦  «        st	          d¦  «        ‚t          t          t          |¦  «        ¦  «        }|j        |t          d¦  «        <   |j
        €t          ¦   «         |t          d¦  «        <   |j
        €J ‚|                     d¦  «        dk    r¡d|v r�t          t          t          t          f         |t          d¦  «                 ¦  «        }t          t          d¦  «        |d	         t!          |d
         t          |¦  «        d         ¬¦  «        ¦  «        }|j        |t          d¦  «        <   |j
                             |                      |¦  «        ¦  «         |                     d¦  «        dk    rSt          d¦  «        |v rB|j        t          t          |d                              ¦   «         ¦  «        t          d¦  «        <   |S )aŠ  
        Add a single annotation to the page.
        The added annotation must be a new annotation.
        It cannot be recycled.

        Args:
            page_number: PageObject or page index.
            annotation: Annotation to be added (created with annotation).

        Returns:
            The inserted object.
            This can be used for popup creation, for example.

        zpage: invalid typeú/PNr«  r†  r–  ú/Destz	/LinkNameÚtarget_page_indexrf  Úfit_args)Úfit_typer  z/PopuprÇ  )r‘   r£   rÃ   r   rÇ  r   r>   Ú_pdf_objectifyrÏ   rC   r°  r9   rÙ   rH  r   r=   r@   r?  rø   r®   rË   )rÁ   r%  r¢  r  Úto_addÚtmpr<  s          rn   Úadd_annotationzPdfWriter.add_annotationÃ	  sÙ  € ð& ˆÝ�d�CÑ Ô ð 	2Ø”:˜dÔ#ˆDˆDÝ˜D¥*Ñ-Ô-ð 	2ÝÐ0Ñ1Ô1Ð1åÕ&­°zÑ(BÔ(BÑCÔCˆØ#'Ô#:ˆ�z˜$ÑÔÑ àÔÐ#Ý*5©-¬-ˆD•˜IÑ&Ô&Ñ'ØÔÐ+Ð+Ð+ð �:Š:�jÑ!Ô! WÒ,Ð,°¸FÐ1BÐ1BÝ•t�C¥˜H”~ v­j¸Ñ.AÔ.AÔ'BÑCÔCˆCÝÝ˜;Ñ'Ô'ØÐ'Ô(ÝØ  œZµ$°s±)´)¸JÔ2Gðñ ô ñô ˆDð +/¬/ˆF•:˜gÑ&Ô&Ñ'àÔ×Ò × 0Ò 0°Ñ 8Ô 8Ñ9Ô9Ð9à�:Š:�jÑ!Ô! XÒ-Ð-µ*¸YÑ2GÔ2GÈ6Ð2QÐ2Qð Ô)õ Õ! 6¨)Ô#4×#?Ò#?Ñ#AÔ#AÑBÔBÝ˜8Ñ$Ô$ñð ˆrm   c                 ó&  — t          d|                     ¦   «         ¦  «        }|                     dg ¦  «        D ]×}|                     ¦   «         }|                     dd¦  «        }|                     dd¦  «        }t          |t          ¦  «        r t          |¦  «        |t	          d¦  «        <   Œw|�^|                     ¦   «         }|                     dd¦  «        }t          |t          ¦  «        rt          |¦  «        |t	          d¦  «        <   ŒØ|S )zÿ
        Perform some clean up in the page.
        Currently: convert NameObject named destination to TextStringObject
        (required for names/dests list)

        Args:
            page:

        Returns:
            The cleaned PageObject

        r   r«  r	  Nrä  ú/D)r   rË   rÙ   r‘   rC   rJ   )rÁ   r  ÚaÚa_objrÈ  Úacts         rn   Ú
clean_pagezPdfWriter.clean_pageù	  sù   € õ �L $§/¢/Ñ"3Ô"3Ñ4Ô4ˆØ—’˜) RÑ(Ô(ð 
	@ð 
	@ˆAØ—L’L‘N”NˆEØ—	’	˜' 4Ñ(Ô(ˆAØ—)’)˜D $Ñ'Ô'ˆCÝ˜!�ZÑ(Ô(ð @Ý-=¸aÑ-@Ô-@�•j Ñ)Ô)Ñ*Ð*Ø�Ø—n’nÑ&Ô&�Ø—G’G˜D $Ñ'Ô'�Ý˜a¥Ñ,Ô,ð @Ý,<¸QÑ,?Ô,?�C�
 4Ñ(Ô(Ñ)øØˆrm   c                 óØ  — d }t          |t          t          f¦  «        rJt          |d¦  «        5 }t	          |                     ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   nÿt          |t          ¦  «        r‚|j        r|j        }|j         	                    ¦   «         }|j         
                    d¦  «         t	          |j                             ¦   «         ¦  «        }|j         
                    |¦  «         nht          |d¦  «        rIt          |d¦  «        r9| 
                    d¦  «         |                     ¦   «         }t	          |¦  «        }nt          d¦  «        ‚||fS )NrŒ   r   r—   rw   zÕMerging requires an object that PdfReader can parse. Typically, that is a Path or a string representing a Path, a file object, or an object implementing .seek and .read. Passing a PdfReader directly works as well.)r‘   r’   r	   r   r   rw   r   r·   rp   r–   r—   rö  r|  )rÁ   r†   Úencryption_objrÂ   rp   Ú	orig_tellÚfilecontents          rn   Ú_create_streamzPdfWriter._create_stream
  s�  € ð ˆå�g¥¥T˜{Ñ+Ô+ð 	Ý˜ Ñ&Ô&ð +¨!Ý  §¢¡¤Ñ*Ô*�ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øå˜¥Ñ+Ô+ð 	ØÔ"ð 5Ø!(Ô!4�Øœ×+Ò+Ñ-Ô-ˆIØŒN×Ò Ñ"Ô"Ð"Ý˜Wœ^×0Ò0Ñ2Ô2Ñ3Ô3ˆFð ŒN×Ò 	Ñ*Ô*Ð*Ð*Ý�W˜fÑ%Ô%ð 
	­'°'¸6Ñ*BÔ*Bð 
	Ø�LŠL˜‰OŒOˆOØ!Ÿ,š,™.œ.ˆKÝ˜[Ñ)Ô)ˆFˆFå%ð>ñô ð ð �~Ð%Ð%s   ¯"AÁA!Á$A!rÃ   Úimport_outlineÚexcluded_fields.c                 ó  — |€d}t          |t          t          t          f¦  «        rLt          |t          ¦  «        rt          |t          ¦  «        s|}|}|}|                      d|d|||¦  «         dS |                      d|||||¦  «         dS )aQ  
        Identical to the :meth:`merge()<merge>` method, but assumes you want to
        concatenate all pages onto the end of the file instead of specifying a
        position.

        Args:
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
            outline_item: Optionally, you may specify a string to build an
                outline (aka 'bookmark') to identify the beginning of the
                included file.
            pages: Can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                or a list of pages to be processed
                to merge only the specified range of pages from the source
                document into the output document.
            import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
            excluded_fields: Provide the list of fields/keys to be ignored
                if ``/Annots`` is part of the list, the annotation will be ignored
                if ``/B`` is part of the list, the articles will be ignored

        Nrl   )r‘   r›  r¿   rR   r’  Úmerge)rÁ   r†   rj  rÃ   r  r  s         rn   rø   zPdfWriter.append8
  sÂ   € ðT Ð"Ø ˆOÝ�l¥U­Dµ)Ð$<Ñ=Ô=ð 	Ý˜%¥Ñ&Ô&ð 'Ý! .µ$Ñ7Ô7ð 5Ø&4�OØ!&�Ø ˆEØ�JŠJØØØØØØñô ð ð ð ð �JŠJØØØØØØñô ð ð ð rm   Úpositionc                 ó  — t          |t          ¦  «        r|}n)|                      |¦  «        \  }}	t          |d¬¦  «        }|€d}|€/t	          t          t          |j        ¦  «        ¦  «        ¦  «        }nÊt          |t          ¦  «        r<t	          t          | 	                    t          |j        ¦  «        ¦  «        Ž ¦  «        }nyt          |t          ¦  «        rnct          |t          ¦  «        r*t          |¦  «        dk    rt	          t          |Ž ¦  «        }n$t          |t          ¦  «        st          d¦  «        ‚i }
|D ]Ä}t          |t          ¦  «        r|}n|j        |         }|j        €J ‚|€;|                      |g t	          |¦  «        ¢d‘d‘d‘d	‘¦  «        |
|j        j        <   n@|                      ||g t	          |¦  «        ¢d‘d‘d‘d	‘¦  «        |
|j        j        <   |dz  }||
|j        j                 _        ŒÅ|j        |_        |j                             ¦   «         D ]}|                      |||
¬
¦  «         Œ|�|t-          d|                      t1          |¦  «        t3          t5          |
                     ¦   «         ¦  «        ¦  «        j        t6          ¬¦  «                             ¦   «         ¦  «        }n|                      ¦   «         }|j        }|rZt>          j         |v rL|  !                    | "                    t>          j         d¦  «        |
|¦  «        }|  #                    ||d¦  «         d	|vr‚|
                     ¦   «         D ]m}|  $                    |j         "                    d	g ¦  «        ||
|¦  «        }t          |¦  «        dk    r||tK          d	¦  «        <   |  &                    |¦  «         Œnd|v �r�tO          |d         ¦  «        �s‡d| j(        vrl|  )                    t-          tT          |j        d         ¦  «         +                    | dd¦  «        ¦  «        | j(        tK          d¦  «        <   tY          ¦   «         }n9t-          tX          t-          tT          | j(        d         ¦  «        d         ¦  «        }| j-        t]          |¦  «                 }	 |j        d         d         D ]H}	 t_          ||j                 d| ¦  «        }||vr| 0                    |¦  «         Œ9# tb          $ r Y ŒEw xY wn1# tb          $ r$ |  )                    tY          ¦   «         ¦  «        }Y nw xY w|t-          tT          | j(        d         ¦  «        tK          d¦  «        <   d|vr|  2                    d|
|¦  «         dS dS )aÙ  
        Merge the pages from the given file into the output file at the
        specified page number.

        Args:
            position: The *page number* to insert this file. File will
                be inserted after the given number.
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
            outline_item: Optionally, you may specify a string to build an outline
                (aka 'bookmark') to identify the
                beginning of the included file.
            pages: can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                or a list of pages to be processed
                to merge only the specified range of pages from the source
                document into the output document.
            import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
            excluded_fields: provide the list of fields/keys to be ignored
                if ``/Annots`` is part of the list, the annotation will be ignored
                if ``/B`` is part of the list, the articles will be ignored

        Raises:
            TypeError: The pages attribute is not configured properly

        F)rŠ   Nrl   r   z:"pages" must be a tuple of (start, stop[, step]) or a listr   ú/Br«  )r<  rQ  ÚsrcpagesrK   )rf  r   z	/AcroForm)ú/Fieldsr$  rƒ   )3r‘   r   r  r   r¿   rT  rù   rÃ   rR   Úindicesr›  rÇ  r   rÏ   r!  rÐ   r#  Úoriginal_pageÚnamed_destinationsÚ_named_destinationsr·  Ú_merge__process_named_destsr   ru  rJ   Únextr{   r8   rË   rW  rÉ   r»   rT  Ú_get_filtered_outlinerÙ   Ú_insert_filtered_outlineÚ_insert_filtered_annotationsrC   r  rP   r¾   r®   r>   r  r9   rŸ   r  rB   rø   rÑ   Úadd_filtered_articles)rÁ   r   r†   rj  rÃ   r  r  rQ  rp   Ú_encryption_objr#  r  Úpgr<  Úoutline_item_typÚ_rorU  Úpagr¦  ÚarrÚtrslatrÂ   Úinds                          rn   r  zPdfWriter.merge|
  sÝ  € õL �g�|Ñ,Ô,ð 	5ØˆFˆFà&*×&9Ò&9¸'Ñ&BÔ&BÑ#ˆF�Oõ ˜v¨eÐ4Ñ4Ô4ˆFàÐ"Ø ˆOàˆ=Ý��s 6¤<Ñ0Ô0Ñ1Ô1Ñ2Ô2ˆEˆEÝ˜�yÑ)Ô)ð 		Ý� §¢­c°&´,Ñ.?Ô.?Ñ @Ô @ÐAÑBÔBˆEˆEÝ˜�tÑ$Ô$ð 	ØÝ˜�uÑ%Ô%ð 	­#¨e©*¬*¸ª/¨/Ý� ˜Ñ'Ô'ˆEˆEÝ˜E¥5Ñ)Ô)ð 	ÝØLñô ð ð ˆØð 	Eð 	EˆDÝ˜$¥
Ñ+Ô+ð (Ø��à”\ $Ô'�ØÔ(Ð4Ð4Ð4ØÐð 9=¿ºØÐG�$˜Ñ/Ô/ÐG°ÐG°DÐG¸!ÐG¸YÐGñ9ô 9�˜Ô.Ô4Ñ5Ð5ð 9=×8HÒ8HØ˜Ð"Q¥D¨Ñ$9Ô$9Ð"Q¸1Ð"Q¸dÐ"QÀAÐ"QÀyÐ"Qñ9ô 9�˜Ô.Ô4Ñ5ð ˜A‘�ØBDˆH�RÔ*Ô0Ô1Ô?Ð?ð Ô%ð 	Ô"ð Ô.×5Ò5Ñ7Ô7ð 	Zð 	ZˆDØ×,Ò,°$¸vÐPXÐ,ÑYÔYÐYÐYð Ð#Ý#ØØ×%Ò%Ý$ \Ñ2Ô2Ý�˜hŸošoÑ/Ô/Ñ0Ô0Ñ1Ô1ÔDÝ ð &ñ ô ÷ ’*‘,”,ñ ô  ÐÐð  $×4Ò4Ñ6Ô6ÐàÔ ˆØð 	�bœk¨SÐ0Ð0Ø×0Ò0Ø—’�œ TÑ*Ô*¨H°fñô ˆGð ×)Ò)ØÐ)¨4ñô ð ð ˜OÐ+Ð+Ø—’Ñ(Ô(ð %ð %�Ø×7Ò7ØÔ%×)Ò)¨)°RÑ8Ô8¸#¸xÈñô �õ �s‘8”8˜a’<�<Ø14�C�
 9Ñ-Ô-Ñ.Ø—’ Ñ$Ô$Ð$Ð$à˜#ÐÑ¥o°c¸+Ô6FÑ&GÔ&GÑØ $Ô"3Ð3Ð3Ø=A×=MÒ=MÝÝ(ØÔ*¨;Ô7ñô ÷ ’e˜D %¨Ñ6Ô6ñ	>ô >�Ô!¥*¨[Ñ"9Ô"9Ñ:õ "‘m”m��åÝÝÕ)¨4Ô+<¸[Ô+IÑJÔJÈ9ÔUñô �ð Ô(­¨F©¬Ô4ˆFð6ØÔ+¨KÔ8¸ÔCð ð �AðÝ,¨V°A´G¬_¸aÀÑFÔF˜Ø c˜>˜>ØŸJšJ s™OœO˜OøøÝ#ð ð ð ð ˜ðøøøðøõ ð 6ð 6ð 6Ø×&Ò&¥{¡}¤}Ñ5Ô5���ð6øøøð õ Õ! 4Ô#4°[Ô#AÑBÔBÝ˜9Ñ%Ô%ñð �Ð&Ð&Ø×&Ò& r¨8°VÑ<Ô<Ð<Ð<Ð<ð 'Ð&s6   Ò)T Ò?5S5Ó4T Ó5
TÓ?T ÔTÔT Ô+T4Ô3T4r#  c                 óÀ  — |j         }d| j        v r›|d         t          t          t                   t          t
          t          t
          | j        d         ¦  «                             dt          ¦   «         ¦  «        ¦  «                             dt          ¦   «         ¦  «        ¦  «        v rd S |d         �t          |d         t          ¦  «        rd S t          |d         t          ¦  «        r“	 |j
        |d                  }n# t          $ r Y d S w xY w|j        €J ‚	 t          ||j        j                 j        ¦  «        |t          d¦  «        <   |                      |d         |¦  «         d S # t"          $ r Y d S w xY w|d         j        j        |v rK||d         j        j                 j        |t          d¦  «        <   |                      |d         |¦  «         d S d S )NrB  r„  z/Destsú/Pager   )r?  r¾   r   r¿   r   r>   rÙ   r‘   rD   r£   rÃ   r3  rÏ   rE   rÐ   r%  r‚  rÑ   )rÁ   r<  rQ  r#  r4  r¡  s         rn   r)  z%PdfWriter._merge__process_named_dests  sõ  € Ø”?ˆØ�tÔ(Ð(Ð(¨T°(¬^½tÝ•ŒIÝÝ ÝÕ% tÔ'8¸Ô'BÑCÔC×GÒGÈÕRbÑRdÔRdÑeÔeñô ÷ Šc�(Õ,Ñ.Ô.Ñ/Ô/ñ@
ô @
ð .
ð .
ð ˆDØ�'Œ]Ð"¥j°°g´Å
Ñ&KÔ&KÐ"ØˆDÝ˜˜Wœ¥sÑ+Ô+ð 	BðØ”L  g¤Ô/��øÝð ð ð Ø��ðøøøàÔ'Ð3Ð3Ð3ðÝ'3Ø˜QÔ1Ô7Ô8ÔDñ(ô (�•L ‘O”OÑ$ð ×0Ò0°°h´ÀÑEÔEÐEÐEÐEøÝð ð ð Ø��ðøøøà�'Œ]Ô-Ô3°xÐ?Ð?Ø#+Ø�W”Ô0Ô6ô$ä ð •˜Q‘”Ñ ð ×,Ò,¨T°(¬^¸SÑAÔAÐAÐAÐAð	 @Ð?s%   Ã-D Ä
DÄDÄAE. Å.
E<Å;E<Úthreadc           
      óÂ  — |                      | dd¬¦  «        }| j                             |j        ¦  «         t	          d|d         ¦  «        }|}d}|��ü|                      t	          d|d         ¦  «        ||¦  «        }|��|€[t	          d|                      t          ¦   «         ¦  «                             ¦   «         ¦  «        }|}	|j        |t          d¦  «        <   not	          d|                      t          t          d	¦  «        |j        i¦  «        ¦  «                             ¦   «         ¦  «        }
|
j        |t          d
¦  «        <   |
}||t          d¦  «        <   |j        |t          d¦  «        <   |d         |t          d¦  «        <   t	          d|                     ¦   «         ¦  «        }d|vrt          ¦   «         |t          d¦  «        <   t	          d|d         ¦  «                             |j        ¦  «         t	          d|d
         ¦  «        }||k    r0|	j        |t          d
¦  «        <   |j        |	t          d	¦  «        <   d}|�­ü|j        €J ‚|j        S )zØ
        Clone the thread with only the applicable articles.

        Args:
            thread:
            pages:
            reader:

        Returns:
            The added thread as an indirect reference

        T)ú/F)Úforce_duplicateÚignore_fieldsr>   r;  Nr   r  z/Vr�  r‰  z/Rr"  r9   )r  rZ  rø   rÏ   r   Ú_get_cloned_pager®   r>   rË   rC   r9   )rÁ   r9  rÃ   rQ  ÚnthreadÚfirst_articleÚcurrent_articleÚnew_articler3  Ú	new_firstÚnew_article2Úpag_objs               rn   Ú_add_articles_threadzPdfWriter._add_articles_thread:  su  € ð$ —,’,Ø $°gð ñ 
ô 
ˆð 	Œ×Ò˜GÔ6Ñ7Ô7Ð7ÝÐ/°¸´Ñ>Ô>ˆØ6CˆØ26ˆØÑ)Ø×'Ò'Ý�\ ?°4Ô#8Ñ9Ô9¸5À&ñô ˆCð ‰ØÐ&Ý"&Ø*Ø×(Ò(Õ)9Ñ);Ô);Ñ<Ô<×GÒGÑIÔIñ#ô #�Kð !,�IØ0;Ô0N�G�J tÑ,Ô,Ñ-Ð-å#'Ø*Ø×(Ò(Ý,Ý!+¨DÑ!1Ô!1°;Ô3QÐ Rñô ñô ÷ %š*™,œ,ñ$ô $�Lð 5AÔ4S�K¥
¨4Ñ 0Ô 0Ñ1Ø".�KØ03��J tÑ,Ô,Ñ-Ø07Ô0J��J tÑ,Ô,Ñ-Ø0?ÀÔ0E��J tÑ,Ô,Ñ-Ý˜|¨S¯^ª^Ñ-=Ô-=Ñ>Ô>�Ø˜wÐ&Ð&Ý0;±´�G�J tÑ,Ô,Ñ-Ý�] G¨D¤MÑ2Ô2×9Ò9ØÔ2ñô ð õ #Ð#5°ÀtÔ7LÑMÔMˆOØ -Ò/Ð/Ø09Ô0L��J tÑ,Ô,Ñ-Ø.9Ô.L�	�* TÑ*Ô*Ñ+Ø"&�ðI Ñ)ðJ Ô)Ð5Ð5Ð5ØÔ)Ð)rm   Úfltrc                 ó®  — t          |t          ¦  «        rt          j        |¦  «        }n)t          |t          ¦  «        st          j        d¦  «        }|                     ¦   «         D ]ì}|j        }|                     dd¦  «        D ]Ì}|                     ¦   «         }t          |¦  «        rŒ&|                     d¦  «        }|€Œ>|                     ¦   «         }|j
        j        | j        t          |¦  «                 vrT|                     |                     di ¦  «                             dd¦  «        ¦  «        r|                      |||¦  «         ŒÍŒídS )z†
        Add articles matching the defined criteria.

        Args:
            fltr:
            pages:
            reader:

        rƒ   r"  rl   r‰  NrŠ  r„  )r‘   r’   ÚreÚcompiler
   r·  r&  rÙ   rË   rP   rÏ   rÐ   rŸ   r  ÚsearchrF  )	rÁ   rG  rÃ   rQ  r¡  Úppr  r  Úthrs	            rn   r.  zPdfWriter.add_filtered_articles{  sP  € õ" �d�CÑ Ô ð 	"Ý”:˜dÑ#Ô#ˆDˆDÝ˜D¥'Ñ*Ô*ð 	"Ý”:˜b‘>”>ˆDØ—’‘”ð 	Bð 	BˆAØ”ˆBØ—V’V˜D "Ñ%Ô%ð Bð B�ØŸš™œ�Ý" 5Ñ)Ô)ð ØØ—i’i ‘o”o�Ø�;ØØ—n’nÑ&Ô&�ØÔ)Ô/°tÔ7JÝ�v‘J”Jô8ð ð à—k’k 3§7¢7¨4°Ñ#4Ô#4×"9Ò"9¸(ÀBÑ"GÔ"GÑHÔHðð ×-Ò-¨c°5¸&ÑAÔAÐAøðBð	Bð 	Brm   c                 ó  — t          |t          ¦  «        rd S t          |t          ¦  «        r"|                     dd¦  «        dk    r|j        }nt          |t
          ¦  «        r|}	 ||j                 j        S # t          $ r Y d S w xY w)Nr  rƒ   r8  )r‘   rD   r>   rÙ   rÏ   rB   rÐ   r  )rÁ   r  rÃ   rQ  Ú_is        rn   r>  zPdfWriter._get_cloned_pageŸ  s�   € õ �d�JÑ'Ô'ð 	Ø�4Ý�dÕ,Ñ-Ô-ð 	°$·(²(¸7ÀBÑ2GÔ2GÈ7Ò2RÐ2RØÔ(ˆBˆBÝ˜�nÑ-Ô-ð 	ØˆBð	Ø˜œ”?Ô5Ð5øÝð 	ð 	ð 	Ø�4�4ð	øøøs   Á'A9 Á9
BÂBÚannotsc                 ó  — t          ¦   «         }t          |t          ¦  «        r"t          d|                     ¦   «         ¦  «        }|€|S t          |t
          ¦  «        s(t          d|› d|j        j        › d�t          ¦  «         |S |D �]ý}t          d|                     ¦   «         ¦  «        }|d         dk    s)d|vs%t          d|d         ¦  «        d	         d
k    sd|v �rId|vr<| 	                    |  
                    |                     | ¦  «        ¦  «        ¦  «         Œš|d         }t          |t          ¦  «        rRt          |¦  «        |                      ¦   «         v r-| 	                    |                     | ¦  «        j        ¦  «         �Œ	t          d|¦  «        }|                      |d         ||¦  «        }	|	�i|                     | d¬¦  «        }
t          |	g|dd …         ¢¦  «        |
t!          d¦  «        <   | 	                    |  
                    |
¦  «        ¦  «         �Œ£t          d|d         ¦  «                             dt%          ¦   «         ¦  «        }t'          |¦  «        r�Œêt          |t          ¦  «        rRt          |¦  «        |                      ¦   «         v r-| 	                    |                     | ¦  «        j        ¦  «         �ŒQt          d|¦  «        }|                      |d         ||¦  «        }	|	�}|                     | d¬¦  «        }
t          |	g|dd …         ¢¦  «        t          d|
d         ¦  «        t!          d¦  «        <   | 	                    |  
                    |
¦  «        ¦  «         �Œÿ|S )Nz	list[Any]z"Expected list of annotations, got z	 of type r³  r>   r†  r–  rä  rC  rt  r	  r9   r   )r	  )r=  r   r  )r  )r9   r‘   rB   r   rË   r¿   r%   r;  r]   rø   r®   r  r’   r€  rÏ   r>  rC   rÙ   rD   rP   )rÁ   rP  r  rÃ   rQ  Úoutlistr’  ÚanorÈ  r¡  Úancs              rn   r-  z&PdfWriter._insert_filtered_annotations°  sA  € õ ‘-”-ˆÝ�f�nÑ-Ô-ð 	<Ý˜+ v×'8Ò'8Ñ':Ô':Ñ;Ô;ˆFØˆ>ØˆNÝ˜&¥$Ñ'Ô'ð 	ÝÐmÀÐmÐmÐQWÔQaÔQjÐmÐmÐmÕowÑxÔxÐxØˆNØð '	>ñ '	>ˆBÝÐ)¨2¯=ª=©?¬?Ñ;Ô;ˆCà�J” 7Ò*Ð*Ø˜s�?�?ÝÐ*¨C°¬IÑ6Ô6°tÔ<ÀÒGÐGØ˜c�>‘>à #Ð%Ð%Ø—N’N 4×#3Ò#3°C·I²I¸d±O´OÑ#DÔ#DÑEÔEÐEÐEà˜Gœ�AÝ! !¥SÑ)Ô)ð 
Bå˜q™6œ6 T×%=Ò%=Ñ%?Ô%?Ð?Ð?Ø#ŸNšN¨3¯9ª9°T©?¬?Ô+MÑNÔNÐNùå  °Ñ2Ô2˜Ø ×1Ò1°!°A´$¸¸vÑFÔF˜Ø˜=Ø"%§)¢)¨DÀ
 )Ñ"KÔ"K˜CÝ7BÀAÀ;ÈÈ!È"È"ÌÀ;Ñ7OÔ7O˜C¥
¨7Ñ 3Ô 3Ñ4Ø#ŸNšN¨4×+;Ò+;¸CÑ+@Ô+@ÑAÔAÐAùåÐ+¨S°¬YÑ7Ô7×;Ò;¸DÅ*Á,Ä,ÑOÔO�Ý" 1Ñ%Ô%ð ÙÝ˜a¥Ñ%Ô%ð >å˜1‘v”v ×!9Ò!9Ñ!;Ô!;Ð;Ð;ØŸš s§y¢y°¡¤Ô'IÑJÔJÐJùå˜]¨AÑ.Ô.�AØ×-Ò-¨a°¬d°E¸6ÑBÔB�AØ�}Ø!Ÿiši¨¸G˜iÑDÔD˜õ (¨¨¨Q¨q¨r¨r¬U¨Ñ4Ô4õ Ð/°°T´Ñ;Ô;Ý& tÑ,Ô,ñð  Ÿš t×'7Ò'7¸Ñ'<Ô'<Ñ=Ô=Ð=ùØˆrm   r  c                 ó„  — g }|€t          ¦   «         }|                     ¦   «         }t          |¦  «        rt          ¦   «         }|                     dd¦  «        dk    sd|vrH|                     dd¦  «        }|�.|                     ¦   «         }||                      |||¦  «        z  }�n|��|                     ¦   «         }t          d|                     |¦  «        ¦  «        }|                      t          d|d	         ¦  «        ||¦  «        }|€t          ¦   «         }||t          d	¦  «        <   d|v r#|                      |d         ||¦  «        |_
        ng |_
        t          |d	         t           ¦  «        rt          |j
        ¦  «        d
k    r|                     |¦  «         |                     dd¦  «        }|�­|S )zÝ
        Extract outline item entries that are part of the specified page set.

        Args:
            node:
            pages:
            reader:

        Returns:
            A list of destination objects.

        Nr  rƒ   ú	/Outlinesr„  ú/Firstr=   r   r8  r   ú/Next)rD   rË   rP   r>   rÙ   r+  r   Ú_build_outline_itemr>  rC   Ú_filtered_childrenr‘   rù   rø   )rÁ   r  rÃ   rQ  Únew_outliner  rŽ  s          rn   r+  zPdfWriter._get_filtered_outlineé  sÁ  € ð$ ˆØˆ<Ý‘<”<ˆDØ�ŠÑ Ô ˆÝ˜4Ñ Ô ð 	&Ý#Ñ%Ô%ˆDØ�8Š8�G˜RÑ Ô  KÒ/Ð/°8À4Ð3GÐ3GØ—8’8˜H dÑ+Ô+ˆDØÐØ—’Ñ(Ô(�Ø˜t×9Ò9¸$ÀÀvÑNÔNÑN�ùð Ñ"Ø—’Ñ(Ô(�Ý˜¨×(BÒ(BÀ4Ñ(HÔ(HÑIÔI�Ø×)Ò)­$¨|¸Q¸w¼ZÑ*HÔ*HÈ%ÐQWÑXÔX�Ø�9Ý"™œ�AØ)*�•*˜WÑ%Ô%Ñ&Ø˜tÐ#Ð#Ø+/×+EÒ+EØ˜Xœ¨¨vñ,ô ,�AÔ(Ð(ð ,.�AÔ(å" 1 W¤:­zÑ:Ô:ð*å˜1Ô/Ñ0Ô0°1Ò4Ð4à×&Ò& qÑ)Ô)Ð)Ø—x’x ¨Ñ.Ô.�ð% Ñ"ð& Ðrm   c           
      ó¾  — t          ¦   «         }|                      |¦  «         t          |d         ¦  «        |t          d¦  «        <   t	          |d         t
          ¦  «        sX|j        �:d|j        v r1|j        d                              | ¦  «        |t          d¦  «        <   n|j        |t          d¦  «        <   |j        �št          |j         
                    dd¦  «        ¦  «        |t          d¦  «        <   t          |j         
                    dt          d¦  «        t          d¦  «        t          d¦  «        g¦  «        ¦  «        |t          d¦  «        <   |S )	Nr„  r8  rä  r	  r;  r   ú/Cg        )rK   r®   rJ   rC   r‘   rD   r  r  r?  rE   rÙ   r9   rA   )rÁ   r<  Ún_ols      rn   Ú_clone_outlinezPdfWriter._clone_outline  s0  € Ý‰|Œ|ˆØ×Ò˜ÑÔÐÝ%5°d¸8´nÑ%EÔ%Eˆ�Z˜Ñ!Ô!Ñ"Ý˜$˜wœ-­Ñ4Ô4ð 	<ØŒyÐ$¨°´Ð):Ð):Ø)-¬°4¬×)>Ò)>¸tÑ)DÔ)D�•Z Ñ%Ô%Ñ&Ð&à,0¬O�•Z Ñ(Ô(Ñ)àŒ9Ð Ý%1°$´)·-²-ÀÀaÑ2HÔ2HÑ%IÔ%IˆD•˜DÑ!Ô!Ñ"Ý%0Ø”	—’Ø�; sÑ+Ô+­[¸Ñ-=Ô-=½{È3Ñ?OÔ?OÐPñô ñ&ô &ˆD•˜DÑ!Ô!Ñ"ð
 ˆrm   Úoutlinesc                 ó,  — |D ]�}|                      dd¦  «        dk    sd|vr|}nQ|                      |¦  «        }t          t          |                     ¦   «         ¦  «                             ||| ¦  «         |                      |j        |d ¦  «         Œ‘d S )Nr  rƒ   rV  r„  )rÙ   r_  r   rK   rË   rg  r,  rZ  )rÁ   r`  r^  r_  r<  Únps         rn   r,  z"PdfWriter._insert_filtered_outline0  s¬   € ð ð 	Mð 	MˆDð �xŠx˜ Ñ$Ô$¨Ò3Ð3°xÀtÐ7KÐ7KØ��à×(Ò(¨Ñ.Ô.�Ý•Z ×!2Ò!2Ñ!4Ô!4Ñ5Ô5×BÒBÀ2ÀvÈtÑTÔTÐTØ×)Ò)¨$Ô*AÀ2ÀtÑLÔLÐLÐLð	Mð 	Mrm   c                 ó   — dS )z"Implemented for API harmonization.Nrl   rÆ   s    rn   r  zPdfWriter.close@  s   € àˆrm   Úrootc                 óš  — |€|                       ¦   «         }nt          d|¦  «        }d}|�’|j        |k    s|                     dd ¦  «        |k    r|gS d|v r=|                      |t          t
          |d         ¦  «        ¦  «        }|rd|v r|gng |z   S d|v r!|dz  }t          t          |d         ¦  «        }nd S |­’t          d¦  «        ‚)NrK   r   r„  rW  rX  r   z'This line is theoretically unreachable.)rW  r   rÏ   rÙ   Úfind_outline_itemrX   rK   r7   )rÁ   rj  rd  r  r  Úress         rn   rf  zPdfWriter.find_outline_itemD  sü   € ð
 ˆ<Ø×%Ò%Ñ'Ô'ˆAˆAå�\ 4Ñ(Ô(ˆAàˆØˆmàÔ$¨Ò4Ð4Ø—5’5˜ 4Ñ(Ô(¨LÒ8Ð8à�s�
Ø˜1ˆ}ˆ}Ø×,Ò,Ø ¥$¥{°A°h´KÑ"@Ô"@ñô �ð ð @Ø#+¨q = =˜Q˜C˜C°b¸CÑ?Ð?Ø˜!ˆ|ˆ|Ø�Q‘�Ý� Q w¤ZÑ0Ô0��à�tð! ˆmõ" ÐBÑCÔCÐCrm   c                 ó8  — |€	i | _         dS t          |t          ¦  «        r)	 | j         t          |¦  «        = dS # t          $ r Y dS w xY wt          |t
          ¦  «        r.	 | j         t          |j        ¦  «        = dS # t          $ r Y dS w xY wt	          d¦  «        ‚)a3  
        Reset the translation table between reader and the writer object.

        Late cloning will create new independent objects.

        Args:
            reader: PdfReader or IndirectObject referencing a PdfReader object.
                if set to None or omitted, all tables will be reset.

        Nzinvalid parameter {reader})rŸ   r‘   r   r  r  rB   rõ   )rÁ   rQ  s     rn   Úreset_translationzPdfWriter.reset_translationb  sÊ   € ð ˆ>Ø"$ˆDÔÐÐÝ˜¥	Ñ*Ô*ð 	:ðØÔ'­¨6©
¬
Ð3Ð3Ð3øÝð ð ð Ø��ðøøøå˜¥Ñ/Ô/ð 	:ðØÔ'­¨6¬:©¬Ð7Ð7Ð7øÝð ð ð Ø��ðøøøõ Ð8Ñ9Ô9Ð9s!   ¢9 ¹
AÁAÁ A< Á<
B
Â	B
Úpage_index_fromÚpage_index_toÚstyleÚprefixr)  c                 ó:  — |€|€t          d¦  «        ‚|dk     rt          d¦  «        ‚||k     rt          d¦  «        ‚|t          | j        ¦  «        k    rt          d¦  «        ‚|�|dk    r|dk     rt          d¦  «        ‚|                      |||||¦  «         dS )	aK  
        Set a page label to a range of pages.

        Page indexes must be given starting from 0.
        Labels must have a style, a prefix or both.
        If a range is not assigned any page label, a decimal label starting from 1 is applied.

        Args:
            page_index_from: page index of the beginning of the range starting from 0
            page_index_to: page index of the beginning of the range starting from 0
            style: The numbering style to be used for the numeric portion of each page label:

                       * ``/D`` Decimal Arabic numerals
                       * ``/R`` Uppercase Roman numerals
                       * ``/r`` Lowercase Roman numerals
                       * ``/A`` Uppercase letters (A to Z for the first 26 pages,
                         AA to ZZ for the next 26, and so on)
                       * ``/a`` Lowercase letters (a to z for the first 26 pages,
                         aa to zz for the next 26, and so on)

            prefix: The label prefix for page labels in this range.
            start:  The value of the numeric portion for the first page label
                    in the range.
                    Subsequent pages are numbered sequentially from this value,
                    which must be greater than or equal to 1.
                    Default value: 1.

        Nz.At least one of style and prefix must be givenr   z/page_index_from must be greater or equal than 0z;page_index_to must be greater or equal than page_index_fromz%page_index_to exceeds number of pagesr   z1If given, start must be greater or equal than one)rü   rù   rÃ   Ú_set_page_label)rÁ   rj  rk  rl  rm  r)  s         rn   Úset_page_labelzPdfWriter.set_page_label~  sÂ   € ðH ˆ=˜V˜^ÝÐMÑNÔNÐNØ˜QÒÐÝÐNÑOÔOÐOØ˜?Ò*Ð*ÝØMñô ð ð �C ¤
™OœOÒ+Ð+ÝÐDÑEÔEÐEØÐ ¨!¢ °¸²	°	ÝÐPÑQÔQÐQà×Ò˜_¨m¸UÀFÈEÑRÔRÐRÐRÐRrm   c                 óÈ  — t          ¦   «         }t          d¦  «        |t          d¦  «        <   t          ¦   «         }|�t          |¦  «        |t          d¦  «        <   |�t          |¦  «        |t          d¦  «        <   |dk    rt          |¦  «        |t          d¦  «        <   t          t          j        ¦  «        | j        vrmt          ¦   «         }t          t          d¦  «        ||¦  «         t          ¦   «         }	||	t          d¦  «        <   |	| j        t          t          j        ¦  «        <   t          t          | j        t          t          j        ¦  «                 ¦  «        }	t          t          |	t          d¦  «                 ¦  «        }t          t          |¦  «        ||¦  «         t          t          |¦  «        ||¦  «         t          t          |¦  «        |¦  «        ^}
}|
|dz   k    r<|dz   t          | j        ¦  «        k     r!t          t          |dz   ¦  «        ||¦  «         ||	t          d¦  «        <   |	| j        t          t          j        ¦  «        <   dS )	a   
        Set a page label to a range of pages.

        Page indexes must be given starting from 0.
        Labels must have a style, a prefix or both.
        If a range is not assigned any page label a decimal label starting from 1 is applied.

        Args:
            page_index_from: page index of the beginning of the range starting from 0
            page_index_to: page index of the beginning of the range starting from 0
            style:  The numbering style to be used for the numeric portion of each page label:
                        /D Decimal Arabic numerals
                        /R Uppercase Roman numerals
                        /r Lowercase Roman numerals
                        /A Uppercase letters (A to Z for the first 26 pages,
                           AA to ZZ for the next 26, and so on)
                        /a Lowercase letters (a to z for the first 26 pages,
                           aa to zz for the next 26, and so on)
            prefix: The label prefix for page labels in this range.
            start:  The value of the numeric portion for the first page label
                    in the range.
                    Subsequent pages are numbered sequentially from this value,
                    which must be greater than or equal to 1. Default value: 1.

        r  rC  Nr  r   z/Stz/Numsr   )r>   rC   rJ   rE   r(   ÚPAGE_LABELSr¾   r9   r   rK   r   r   r   rù   rÃ   )rÁ   rj  rk  rl  rm  r)  Údefault_page_labelÚnew_page_labelÚnumsÚpage_labelsÚnext_label_posrâ  s               rn   ro  zPdfWriter._set_page_label±  s  € õB .Ñ/Ô/ÐÝ/9¸$Ñ/?Ô/?Ð�: dÑ+Ô+Ñ,å)Ñ+Ô+ˆØÐÝ/9¸%Ñ/@Ô/@ˆN�: dÑ+Ô+Ñ,ØÐÝ/?ÀÑ/GÔ/GˆN�: dÑ+Ô+Ñ,Ø�AŠ:ˆ:Ý0<¸UÑ0CÔ0CˆN�: eÑ,Ô,Ñ-åÕ'Ô3Ñ4Ô4¸DÔ<MÐMÐMÝ‘=”=ˆDÝ� Q™œÐ);¸TÑBÔBÐBÝ$™,œ,ˆKØ/3ˆK�
 7Ñ+Ô+Ñ,ØKVˆDÔ�jÕ):Ô)FÑGÔGÑHåÝ˜Ô)­*Õ5FÔ5RÑ*SÔ*SÔTñ
ô 
ˆõ •K ­Z¸Ñ-@Ô-@Ô!AÑBÔBˆå•L Ñ1Ô1°>À4ÑHÔHÐHÝ� oÑ6Ô6¸ÀtÑLÔLÐLÝ&¥|°OÑ'DÔ'DÀdÑKÔKÐˆ˜Ø˜]¨QÑ.Ò.Ð.°=À1Ñ3DÅsÈ4Ì:ÁÄÒ3VÐ3VÝ� ]°QÑ%6Ñ7Ô7Ð9KÈTÑRÔRÐRà+/ˆ•J˜wÑ'Ô'Ñ(ØGRˆÔ�*Õ%6Ô%BÑCÔCÑDÐDÐDrm   ÚincludeÚexcludec                 óà   ‡‡— t          ¦   «         }|                      |¦  «         d|i}‰� ˆfd„|                     ¦   «         D ¦   «         }‰� ˆfd„|                     ¦   «         D ¦   «         }|S )z÷
        Integration into Jupyter Notebooks.

        This method returns a dictionary that maps a mime-type to its
        representation.

        .. seealso::

           https://ipython.readthedocs.io/en/stable/config/integrating.html
        zapplication/pdfNc                 ó$   •— i | ]\  }}|‰v ¯	||“ŒS rl   rl   )r�  rB  rŽ  rx  s      €rn   rF  z/PdfWriter._repr_mimebundle_.<locals>.<dictcomp>	  s$   ø€ ÐBÐBÐB™T˜Q °Q¸'°\°\�A�q°\°\°\rm   c                 ó$   •— i | ]\  }}|‰v¯	||“ŒS rl   rl   )r�  rB  rŽ  ry  s      €rn   rF  z/PdfWriter._repr_mimebundle_.<locals>.<dictcomp>  s)   ø€ ÐFÐFÐF™T˜Q °Q¸gÐ5EÐ5E�A�qÐ5EÐ5EÐ5Erm   )r   rí   ro  )rÁ   rx  ry  Úpdf_datarM  s    ``  rn   Ú_repr_mimebundle_zPdfWriter._repr_mimebundle_ò  s‚   øø€ õ ‘9”9ˆØ�
Š
�8ÑÔÐà˜xð
ˆð ÐàBÐBÐBÐB T§Z¢Z¡\¤\ÐBÑBÔBˆDàÐàFÐFÐFÐF T§Z¢Z¡\¤\ÐFÑFÔFˆDàˆrm   )rƒ   NFFF)rl   )T)r   rl   rÚ  )NNr   rv   )rr   N)NNT)NNTN)NNTrl   )¥r]   r^   r_   Ú__doc__r   r   r    r	   r’  r   r£   rÄ   ÚpropertyrÇ   r>   rÉ   rÌ   ÚsetterrB   rZ   r×   Úbytesrâ   r   rè   ÚtypeÚBaseExceptionr   rî   r’   rª   rF   r®   rË   r  r   r   r  r  rL   r  r!  r#  rD   r&  Úfloatr+  ÚdecimalÚDecimalr6  r=   rJ   r;   r9  rK  rP  r   rZ  rd  rI   r€  r˜  ÚFfBitsÚ
FFBITS_NULr¿   r   r›  r”  r¬  rÀ  rÐ  r¹   rÖ  rÚ  ÚALL_DOCUMENT_PERMISSIONSr0   rê  rò  r!   rÿ  r   r   rí   rø  rù  rÕ  rú  rû  r   rÜ   rH  r5  ÚobjectrG  rN  rR  rK   rW  r9   r[  rZ  re  rW   rm  r8   r@   ru  r}  r‚  r…  r‰  rŒ  rT   r�  r�  r\   r‹  r<   r·  r¶  r*   rÌ  rÎ  rÜ  rG   rï  rö  rV   rò  rC   rø  rû  rý  r  rY   r  r  r  r  r   r   r  rR   rø   rS   r  r   r)  rF  r
   r.  r>  r-  r+  r_  r,  r  rX   rf  ri  r-   rp  ro  r~  Ú__classcell__)r;  s   @rn   r‚   r‚   –   sq  ø€ € € € € ðð ð2 >@Ø@DØ!ØØðUQð ?FØ;DðUQð UQð UQà�t˜Y¨°TÐ9Ô:ðUQð ˜$ 	¨;¸Ð<Ô=ðUQð ð	UQð
 ðUQð ðUQð /7°s¬mðUQð ,4°C¬=ðUQð 
ðUQð UQð UQð UQðp ð˜dð ð ð ñ „Xðð ð!Ð-ð !ð !ð !ñ „Xð!ð ð
�xÐ 0Ô1ð 
ð 
ð 
ñ „Xð
ð „\ðC˜8 E¨.Ð:JÐ*JÔ$KÔLð CÐQUð Cð Cð Cñ „\ðCð ðC˜h ~Ô6ð Cð Cð Cñ „XðCð Ôð- %¨¸¸tÐ(CÔ"Dð -Èð -ð -ð -ñ Ôð-ð. ð#˜tð #ð #ð #ñ „Xð#ð Ôð$ 4ð $¨Dð $ð $ð $ñ Ôð$ð˜4ð ð ð ð ð%à˜4 Ô.Ô/ð%ð �mÔ$ð%ð ˜MÔ*ð	%ð
 
ð%ð %ð %ð %ð ð
%˜Cð 
%ð 
%ð 
%ñ „Xð
%ð Ôð" U¨3°¨:Ô%6ð "¸4ð "ð "ð "ñ Ôð"ð
&˜yð &¨^ð &ð &ð &ð &ðà! # ~Ð"5Ô6ðð 
ðð ð ð ðà! # ~Ð"5Ô6ðð ðð 
ð	ð ð ð ð2 (*ð	8ð 8àð8ð ð8ð   ”}ð	8ð
 
ð8ð 8ð 8ð 8ðtð °ð Àð ð ð ð ðBÐ+<ð ð ð ð ð (*ðNð NàðNð   ”}ðNð 
ð	Nð Nð Nð Nð8 Ø')ð	:ð :àð:ð ð:ð   ”}ð	:ð
 
ð:ð :ð :ð :ð8Ø"'¨¨c°:¸~Ð(MÔ"Nðà	�#Œðð ð ð ð2 HLð#ð #Ø˜e”_ð#Ø5=¸e´_ð#à	ð#ð #ð #ð #ð6 :>Ø:>Øð	&ð &à˜˜e W¤_Ð4Ô5Ô6ð&ð ˜˜u g¤oÐ5Ô6Ô7ð&ð ð	&ð
 
ð&ð &ð &ð &ðP ð(à	ˆt�[Ð"2Ð4DÐDÔ	Eð(ð (ð (ð (ð (ñ „Xð(ð
 Ôð U¨4°°kÀ:Ð+MÔ%Nð ÐSWð ð ð ñ Ôðð&%- ð %-¨ð %-ð %-ð %-ð %-ðN> sð >°%¸¸U¸
Ô2Cð >Èð >ð >ð >ð >ð* EIð/ð /àð/ð $ H¨j¨\¸4Ð-?Ô$@ÔAð/ð 
ð	/ð /ð /ð /ð@%Iàð%Ið  ð%Ið 
ð	%Ið %Ið %Ið %IðN3Kàð3Kð $0ð3Kð ð	3Kð
 ð3Kð ð3Kð ð3Kð 3Kð 3Kð 3Kðj �”˜1‘”€Jð &Ø*.ØðKnð Knà�J  ZÔ 0°$Ð6Ô7ðKnð ˜˜U 3¨¨S¬	°5¸¸cÀ5¸Ô3IÐ#IÔJÐJÔKðKnð Œyð	Knð
 " $œðKnð ðKnð 
ðKnð Knð Knð Knð\ ,0ð0ð 0Ø˜ZÔ(ð0à	ÐÔ	ð0ð 0ð 0ð 0ðd"¸Ið "È$ÈsÌ)ð "ð "ð "ð "ð,4R°ð 4R¸tð 4Rð 4Rð 4Rð 4Rðr EIð.5ð .5àð.5ð $ H¨j¨\¸4Ð-?Ô$@ÔAð.5ð 
ð	.5ð .5ð .5ð .5ð`JÐ.>ð Jð Jð Jð Jð+ð +ð +ð +ð. )-ØØ2Jð9$ð $(ð9$ð 9$ð 9$àð9$ð ! œð9$ð ð	9$ð
 0ð9$ð ˜C”=ð9$ð 
ð9$ð 9$ð 9$ð 9$ðv5ð 5ð 5ð 5ð7 :ð 7°$ð 7ð 7ð 7ð 7ð*˜E $¨Ð"3Ô4ð ¸¸tÀRÈÄW¸}Ô9Mð ð ð ð ð@
¨4°Ô+?ð 
ð 
ð 
ð 
ð0EP zð EP°dð EPð EPð EPð EPðN.¨:ð .¸%ÀÀSÄ	È4ÐPSÌ9Ð@TÔ:Uð .ð .ð .ð .ð(Ø ðØ48¸´IðØMQÐRUÌYðà	ðð ð ð ð H Zð HÀð HÈð Hð Hð Hð Hð0 ð ˜(Ð#6Ô7ð  ð  ð  ð  ð  ñ „Xð ð „_ð
%à˜Ð1Ð3CÀTÈ#ÈsÈ(Ä^ÐSÔTÔUð
%ð 
ð
%ð 
%ð 
%ñ „_ð
%ð  $ s¨C x¤.ð  °Tð  ð  ð  ð  ð( ˆV‰XŒX€Fð "(Ø$ðX(ð
 #'Ø$(ðX(ð X(ð X(àðX(ð ðX(ð
  ðX(ð "ðX(ð 
ðX(ð X(ð X(ð X(ðt ð ¨~ð ð ð ð ð *ð ð ð ð ð& +ð ð ð ð ð& ð	'˜ð 	'ð 	'ð 	'ñ „Xð	'ð ;?Ø:>Øð$$ð $$à °
¸JÐ FÔGð$$ð �d˜J¨Ð6Ô7ð$$ð �d˜J¨Ð6Ô7ð	$$ð
 ð$$ð 
ð$$ð $$ð $$ð $$ðR ;?Ø:>Øð
ð 
à%ð
ð �d˜J¨Ð6Ô7ð
ð �d˜J¨Ð6Ô7ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ð6 ;?Ø:>ØBFØØØØðLXð LXàðLXð ˜4 ¨^¸SÐ@ÔAðLXð �d˜J¨Ð6Ô7ð	LXð
 �d˜J¨Ð6Ô7ðLXð ˜˜e E¨5°%Ð$7Ô8¸#Ð=Ô>Ô?ðLXð ðLXð ðLXð ðLXð ðLXð 
ðLXð LXð LXð LXð\
ð 
ð 
ð 
ð
Ø%ðØ49¸.È+Ð:UÔ4Vðà	ðð ð ð ð	$à#ð	$ð 
ð	$ð 	$ð 	$ð 	$ðàðð ðð 
ð	ð ð ð ð.Tð Tð Tð Tð
:Ø  Ð'8¸(ÐCTÔ:UÐ'UÔ!VÔWð:à	ð:ð :ð :ð :ð à�N JÐ0@Ð@ÔAðð ˜8 Cœ=Ô)ðð 
ð	ð ð ð ð, 26ð	?ð ?à�JÐ 0Ð0Ô1ð?ð Ð+¨XÐ6HÔ-IÐIÔJð?ð ˜t C¨ Hœ~Ô.ð	?ð
 
ð?ð ?ð ?ð ?ðP 6:ð)ð )à"ð)ð ˜”Ið)ð ˜”9ð	)ð
 ! œKð)ð *ð)ð # 4¨¨S¨¤>Ô2ð)ð 
ð)ð )ð )ð )ðb 6:ðQð Qà!ðQð Ð(Ô)ðQð ! œKð	Qð
 *ðQð # 4¨¨S¨¤>Ô2ðQð 
ˆt�CŒy˜$˜sœ)Ð#Ô	$ðQð Qð Qð Qðj  )œ}ð3ð 3àð3ð 
ð3ð 3ð 3ð 3ð07dð 7d h¨t°C¬yÔ&9ð 7dÀTð 7dð 7dð 7dð 7dð| )-ðAEð AEàðAEð ðAEð ð	AEð
 ˜Ô%ðAEð 
ðAEð AEð AEð AEðF€Nð (¨:Ô"6ð ð ð ð ð!F u¨Z¸Ð-CÔ'Dð !FÈð !Fð !Fð !Fð !FðF& jð &°Tð &ð &ð &ð &ð8 ð'˜X jÔ1ð 'ð 'ð 'ñ „Xð'ð0 Ôð& *ð &°ð &ð &ð &ñ Ôð&ð€Lð ¨Ô 6ð ð ð ð ð ð%˜8 LÔ1ð %ð %ð %ñ „Xð%ð, Ôð	G˜lð 	G¨tð 	Gð 	Gð 	Gñ Ôð	Gð4à˜3 
˜?Ô+ð4ð ˜˜c˜”Nð4ð 
ð	4ð 4ð 4ð 4ðl˜u Z°Ð%?Ô@ð ÀZð ð ð ð ð6"&Ø˜T ;°	Ð9Ô:ð"&à	ˆv�x 
Ô+Ð+Ô	,ð"&ð "&ð "&ð "&ðR ð Ø#ØGKðBð Bà�{ I¨tÐ3Ô4ðBð Ø��y %¨¨S¨¤/°5¸¸cÀ3¸Ô3GÈÈcÌÐRô
ðBð ØØØ�#�s�(ŒOØ�#�s˜C�-Ô Ø�ŒIØ�Ôðô
ðBð ðBð " %¨¨S¬	°5¸¸c¸´?Ð(BÔ"CÔDðBð  
ð!Bð Bð Bð BðP '+ØBFØ#ØGIðZ=ð Z=à˜3”-ðZ=ð �t˜[¨)Ð3Ô4ðZ=ð ˜s”mð	Z=ð
 ˜˜m¨T°*Ô-=Ð=Ô>Ô?ðZ=ð ðZ=ð " %¨¨S¬	°5¸¸c¸´?Ð(BÔ"CÔDðZ=ð 
ðZ=ð Z=ð Z=ð Z=ðx B°ð  B¸\ð  BÐUYÐZ]Ð_iÐZiÔUjð  BÐosð  Bð  Bð  Bð  BðD?*à ð?*ð �C˜�OÔ$ð?*ð ð	?*ð
 
ð?*ð ?*ð ?*ð ?*ðB"BàØ�CŒL˜#Ðô
ð"Bð
 �C˜�OÔ$ð"Bð ð"Bð 
ð"Bð "Bð "Bð "BðHà�D˜.¨*°jÐ@ÔAðð �C˜�OÔ$ðð ð	ð
 
�.Ô	!ðð ð ð ð"7à�n dÐ+;Ô&<¸dÐBÔCð7ð ð7ð �C˜�OÔ$ð	7ð
 ð7ð 
ˆkÔ	ð7ð 7ð 7ð 7ðr2àð2ð �C˜�OÔ$ð2ð ð	2ð
 
ˆkÔ	ð2ð 2ð 2ð 2ðh ;ð °:ð ð ð ð ð. ;?ð	Mð Mà�{Ô#ðMð �j .Ð0Ô1ðMð �d˜J¨Ð6Ô7ð	Mð
 
ðMð Mð Mð Mð ð ð ð ð '+ðDð Dà˜3 ˜8”nðDð �{Ô#ðDð 
�$�s”)Ô	ð	Dð Dð Dð Dð> @Dð:ð :Ø˜D )¨^Ð;Ô<ð:à	ð:ð :ð :ð :ð@ +/Ø $Ø ð1Sð 1Sàð1Sð ð1Sð ˜Ô'ð	1Sð
 ˜”ð1Sð ˜Œ}ð1Sð 
ð1Sð 1Sð 1Sð 1Sðn +/Ø $Ø ð?Sð ?Sàð?Sð ð?Sð ˜Ô'ð	?Sð
 ˜”ð?Sð ˜Œ}ð?Sð 
ð?Sð ?Sð ?Sð ?SðF /3Ø.2ðð à�t˜X cœ]Ð*Ô+ðð �t˜X cœ]Ð*Ô+ðð 
ˆc�3ˆhŒð	ð ð ð ð ð ð ð rm   r‚   rÔ   c                 ón  — t          | t          ¦  «        r| S t          | t          ¦  «        rIt          ¦   «         }|                      ¦   «         D ]$\  }}t          |¦  «        |t          |¦  «        <   Œ%|S t          | t          ¦  «        r3|                      d¦  «        rt          | ¦  «        S t          | ¦  «        S t          | t          t          f¦  «        rt          | ¦  «        S t          | t          ¦  «        rt          d„ | D ¦   «         ¦  «        S t          dt!          | ¦  «        ›d�¦  «        ‚)Nrs  c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rv   )r  )r�  r  s     rn   r�  z!_pdf_objectify.<locals>.<genexpr>!  s*   è è € Ð:Ð:°�>¨!Ñ,Ô,Ð:Ð:Ð:Ð:Ð:Ð:rm   z
type(obj)=z! could not be cast to a PdfObject)r‘   rF   rH  r>   ro  r  rC   r’   Ú
startswithrJ   r…  r£   rA   r¿   r9   r|  rƒ  )rÔ   r  r9  rÍ   s       rn   r  r    s*  € Ý�#•yÑ!Ô!ð Øˆ
Ý�#•tÑÔð Ý!Ñ#Ô#ˆØŸ)š)™+œ+ð 	<ð 	<‰JˆC�Ý&4°UÑ&;Ô&;ˆF•:˜c‘?”?Ñ#Ð#ØˆÝ�#•sÑÔð %Ø�>Š>˜#ÑÔð 	#Ý˜c‘?”?Ð"Ý Ñ$Ô$Ð$Ý�#��s�|Ñ$Ô$ð  Ý˜3ÑÔÐÝ�#•tÑÔð ;ÝÐ:Ð:°cÐ:Ñ:Ô:Ñ:Ô:Ð:Ý
Ø8�4�‰9Œ9Ð8Ð8Ð8ñô ð rm   ry  rn  ro  rq  rp  c                 ó   — t          ¦   «         }| �| |t          d¦  «        <   |                     t          d¦  «        t          |¦  «        i¦  «         |r_t	          |t
          ¦  «        rt          |¦  «        }|                     t          d¦  «        t          d„ |D ¦   «         ¦  «        i¦  «         |s|rUd}|r|t          j	        z  }|r|t          j
        z  }|                     t          d¦  «        t          |¦  «        i¦  «         |S )Nrä  r„  r]  c                 ó,   — g | ]}t          |¦  «        ‘ŒS rl   )rA   )r�  rç   s     rn   rÆ  z(_create_outline_item.<locals>.<listcomp>:  s   € Ð+JÐ+JÐ+J¸q­K¸©N¬NÐ+JÐ+JÐ+Jrm   r   r;  )rK   rC   r|   rM   r‘   r’   rO   r9   r,   rq  rp  rE   )ry  rn  ro  rq  rp  rj  Úformat_flags          rn   rx  rx  '  s1  € õ ‘<”<€LØÐØ)3ˆ•Z Ñ%Ô%Ñ&Ø×Òå�xÑ Ô Õ"6°uÑ"=Ô"=ð	
ñô ð ð
 ð 
Ý�e�SÑ!Ô!ð 	&Ý˜uÑ%Ô%ˆEØ×ÒÝ˜ÑÔ�{Ð+JÐ+JÀEÐ+JÑ+JÔ+JÑKÔKÐLñ	
ô 	
ð 	
ð ð K�ð KØˆØð 	2Ø�?Ô1Ñ1ˆKØð 	0Ø�?Ô/Ñ/ˆKØ×Ò�Z¨Ñ-Ô-­|¸KÑ/HÔ/HÐIÑJÔJÐJØÐrm   )ro   )…r†  ra   ry   rI  r  r¤   rF  Úcollections.abcr   r   Úior   r   r   Ú	itertoolsr   Úpathlibr	   r
   Útypesr   Útypingr   r   r   r   r   r   Úversion_infor   Útyping_extensionsÚ_doc_commonr   r   r·   r   r   Ú_pager   r   Ú_page_labelsr   r   r   r©   r   Ú_utilsr    r!   r"   r#   r$   r%   Ú	constantsr&   r•  r'   rD  r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r»   r2   r˜  r3   rö   r4   r  Úerrorsr5   r6   r7   Úgenericr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   Úgeneric._appearance_streamrQ   Ú	pagerangerR   rS   rT   rU   rV   rW   rX   rY   ÚxmprZ   ÚallrŠ  ÚIntFlagr\   r£   r’   r€   r‚   rH  r…  r¿   r  r›  r’  rx  rl   rm   rn   ú<module>r§     s  ðð< €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ô�wÒÐØÐÐÐÐÐÐà&Ð&Ð&Ð&Ð&Ð&à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ø .Ð .Ð .Ð .Ð .Ð .ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð "Ð !Ð !Ð !Ð !Ð !Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø +Ð +Ð +Ð +Ð +Ð +Ø (Ð (Ð (Ð (Ð (Ð (Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð6 =Ð <Ð <Ð <Ð <Ð <Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  Ð Ð Ð Ð Ð à4Ð0Ô4Ñ6Ô6Ð ð
=ð 
=ð 
=ð 
=ð 
=˜œñ 
=ô 
=ð 
=ðð ˜gð °#ð À#ð ð ð ð ðy1ð y1ð y1ð y1ð y1�ñ y1ô y1ð y1ðxc˜˜d 3¨ 8œn¨c°5¸$¸s¼)ÐCÔDð Èð ð ð ð ð*Ø�d˜NÐ*Ô+ðàðð ��u˜e UÐ*Ô+¨S°$Ð6Ô7ðð ð	ð
 ðð ðð ð ð ð ð rm   