§
    Æ‡tj¢   ã                   ó  — 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mZmZ d dlmZmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZmZ  ej        e¦  «        Z  ed¦  «        Z! ed¦  «        Z" G d„ d¦  «        Z#dS )é    N)Ú	ContainerÚIterator)ÚAnyÚBinaryIOÚClassVar)Úsettings)ÚPDFDocumentÚPDFNoPageLabelsÚPDFTextExtractionNotAllowed)ÚPDFObjectNotFoundÚPDFValueError)Ú	PDFParser)Ú
dict_valueÚ	int_valueÚ
list_valueÚresolve1)ÚLIT)ÚRectÚ
parse_rectÚPageÚPagesc                   ó6  — e Zd ZU dZdededededz  ddf
d„Zdefd	„Zh d
£Z	e
ee                  ed<   ededed          fd„¦   «         Ze	 	 	 	 	 ddedee         dz  dededededed          fd„¦   «         Zdedefd„Zdededefd„Zdedee         fd„ZdS )ÚPDFPageaz  An object that holds the information about a page.

    A PDFPage object is merely a convenience class that has a set
    of keys and values, which describe the properties of a page
    and point to its contents.

    Attributes
    ----------
      doc: a PDFDocument object.
      pageid: any Python object that can uniquely identify the page.
      attrs: a dictionary of page attributes.
      contents: a list of PDFStream objects that represents the page content.
      lastmod: the last modified time of the page.
      resources: a dictionary of resources used by the page.
      mediabox: the physical size of the page.
      cropbox: the crop rectangle of the page.
      rotate: the page rotation (in degree).
      annots: the page annotations.
      beads: a chain that represents natural reading order.
      label: the page's label (typically, the logical page number).

    ÚdocÚpageidÚattrsÚlabelNÚreturnc                 ó$  — || _         || _        t          |¦  «        | _        || _        t          | j                             d¦  «        ¦  «        | _        t          | j                             di ¦  «        ¦  «        | _        |  	                    | j                             d¦  «        ¦  «        | _
        |                      | j                             d¦  «        | j
        ¦  «        | _        |                      | j                             d¦  «        ¦  «        | _        t          | j                             dd¦  «        ¦  «        dz   dz  | _        | j                             d	¦  «        | _        | j                             d
¦  «        | _        dS )zßInitialize a page object.

        doc: a PDFDocument object.
        pageid: any Python object that can uniquely identify the page.
        attrs: a dictionary of page attributes.
        label: page label string.
        ÚLastModifiedÚ	ResourcesÚMediaBoxÚCropBoxÚContentsÚRotater   ih  ÚAnnotsÚBN)r   r   r   r   r   r   ÚgetÚlastmodÚ	resourcesÚ_parse_mediaboxÚmediaboxÚ_parse_cropboxÚcropboxÚ_parse_contentsÚcontentsr   ÚrotateÚannotsÚbeads)Úselfr   r   r   r   s        úN/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/pdfpage.pyÚ__init__zPDFPage.__init__1   s/  € ð ˆŒØˆŒÝ Ñ&Ô&ˆŒ
ØˆŒ
Ý ¤
§¢¨~Ñ >Ô >Ñ?Ô?ˆŒÝ/7ØŒJ�NŠN˜;¨Ñ+Ô+ñ0
ô 0
ˆŒð ×,Ò,¨T¬Z¯^ª^¸JÑ-GÔ-GÑHÔHˆŒØ×*Ò*¨4¬:¯>ª>¸)Ñ+DÔ+DÀdÄmÑTÔTˆŒØ×,Ò,¨T¬Z¯^ª^¸JÑ-GÔ-GÑHÔHˆŒå  ¤§¢°¸!Ñ!<Ô!<Ñ=Ô=ÀÑCÀsÑJˆŒØ”j—n’n XÑ.Ô.ˆŒØ”Z—^’^ CÑ(Ô(ˆŒ
ˆ
ˆ
ó    c                 ó(   — d| j         ›d| j        ›d�S )Nz<PDFPage: Resources=z, MediaBox=ú>)r*   r,   )r4   s    r5   Ú__repr__zPDFPage.__repr__P   s   € ØU d¤nÐUÐUÀ4Ä=ÐUÐUÐUÐUr7   >   r%   r#   r"   r!   ÚINHERITABLE_ATTRSÚdocumentc              #   ó`  ‡ ‡‡	K  — 	 d
dt           dt          t          t           f         dt          t                    d z  dt          t
          t          t          t           t          t           t           f         f         f                  fˆ ˆ	ˆfd„Š		 ‰                     ¦   «         }n$# t          $ r t          j
        d ¦  «        }Y nw xY wd}d‰j        v rC ‰	‰j        d         ‰j        ¦  «        }|D ]$\  }} ‰ ‰||t          |¦  «        ¦  «        V — d}Œ%|s•‰j        D ]�}|                     ¦   «         D ]v}	 ‰                     |¦  «        }t!          |t          ¦  «        r9|                     d	¦  «        t$          u r ‰ ‰||t          |¦  «        ¦  «        V — Œg# t&          $ r Y Œsw xY wŒŽd S d S )NÚobjÚparentÚvisitedr   c              3   ó   •K  — t          | t          ¦  «        r7| }t          ‰                     |¦  «        ¦  «                             ¦   «         }n(| j        }t          | ¦  «                             ¦   «         }|€t          ¦   «         }||v rd S |                     |¦  «         |                     ¦   «         D ]\  }}|‰	j	        v r	||vr|||<   Œ| 
                    d¦  «        }|€!t          j        s| 
                    d¦  «        }|t          u rRd|v rNt                               d|d         ¦  «         t!          |d         ¦  «        D ]} ‰
|||¦  «        E d {V —† Œd S |t"          u r#t                               d|¦  «         ||fV — d S d S )NÚTypeÚtypeÚKidszPages: Kids=%rzPage: %r)Ú
isinstanceÚintr   ÚgetobjÚcopyÚobjidÚsetÚaddÚitemsr;   r(   r   ÚSTRICTÚLITERAL_PAGESÚlogÚdebugr   ÚLITERAL_PAGE)r>   r?   r@   Ú	object_idÚobject_propertiesÚkÚvÚobject_typeÚchildÚclsÚdepth_first_searchr<   s            €€€r5   rY   z0PDFPage.create_pages.<locals>.depth_first_search\   sØ  øè è € õ
 ˜#�sÑ#Ô#ð ;Ø�	Ý$.¨x¯ª¸yÑ/IÔ/IÑ$JÔ$J×$OÒ$OÑ$QÔ$QÐ!Ð!ð  œI�	Ý$.¨s¡O¤O×$8Ò$8Ñ$:Ô$:Ð!ð ˆÝ™%œ%�Ø˜GÐ#Ð#Ø�Ø�KŠK˜	Ñ"Ô"Ð"àŸš™œð -ð -‘��1Ø˜Ô-Ð-Ð-°!Ð;LÐ2LÐ2LØ+,Ð% aÑ(øà+×/Ò/°Ñ7Ô7ˆKØÐ"­8¬?Ð"Ø/×3Ò3°FÑ;Ô;�à�mÐ+Ð+°Ð:KÐ0KÐ0KÝ—	’	Ð*Ð,=¸fÔ,EÑFÔFÐFÝ'Ð(9¸&Ô(AÑBÔBð Uð U�EØ1Ð1°%Ð9JÈGÑTÔTÐTÐTÐTÐTÐTÐTÐTÐTðUð Uð ¥Ð,Ð,Ý—	’	˜*Ð&7Ñ8Ô8Ð8Ø Ð"3Ð4Ð4Ð4Ð4Ð4Ð4ð -Ð,r7   Fr   TrB   ©N)r   ÚdictÚstrrJ   r   ÚtuplerF   Úget_page_labelsr
   Ú	itertoolsÚrepeatÚcatalogÚnextÚxrefsÚ
get_objidsrG   rE   r(   rQ   r   )
rX   r<   Úpage_labelsÚpagesÚobjectsrI   ÚtreeÚxrefr>   rY   s
   ``       @r5   Úcreate_pageszPDFPage.create_pagesZ   s  øøøè è € ð
 (,ð$	5ð $	5Ýð$	5å��c˜”Nð$	5õ �”X ‘_ð$	5õ •e�C¥¥c­4µµS°¬>Ð&9Ô!:Ð:Ô;Ô<ð	$	5ð $	5ð $	5ð $	5ð $	5ð $	5ð $	5ð $	5ðL	1Ø08×0HÒ0HÑ0JÔ0JˆKˆKøÝð 	1ð 	1ð 	1Ý#Ô*¨4Ñ0Ô0ˆKˆKˆKð	1øøøð ˆØ�hÔ&Ð&Ð&Ø(Ð(¨Ô)9¸'Ô)BÀHÔDTÑUÔUˆGØ&ð ð ‘��tØ�c˜( E¨4µ°kÑ1BÔ1BÑCÔCÐCÐCÐCØ��Øð 		à œð ð �Ø!Ÿ_š_Ñ.Ô.ð ð �EðØ&Ÿošo¨eÑ4Ô4˜Ý% c­4Ñ0Ô0ð O°S·W²W¸V±_´_ÍÐ5TÐ5TØ"% # h°°s½DÀÑ<MÔ<MÑ"NÔ"NÐNÐNÐNøøÝ,ð ð ð Ø˜ðøøøðð		ð 		ðð s%   ÂB# Â#CÃCÄ7A#FÆ
F(Æ'F(r   Ú TFÚfpÚpagenosÚmaxpagesÚpasswordÚcachingÚcheck_extractablec              #   óH  K  — t          |¦  «        }t          |||¬¦  «        }|j        s6|rd|›�}	t          |	¦  «        ‚d|›d�}
t                               |
¦  «         t          |                      |¦  «        ¦  «        D ]\  }}|r||vrŒ|V — |r||dz   k    r d S Œd S )N)ro   rp   z Text extraction is not allowed: zThe PDF z¸ contains a metadata field indicating that it should not allow text extraction. Ignoring this field and proceeding. Use the check_extractable if you want to raise an error in this caseé   )r   r	   Úis_extractabler   rO   ÚwarningÚ	enumeraterj   )rX   rl   rm   rn   ro   rp   rq   Úparserr   Ú	error_msgÚwarning_msgÚpagenoÚpages                r5   Ú	get_pageszPDFPage.get_pages˜   sù   è è € õ ˜2‘”ˆå˜&¨8¸WÐEÑEÔEˆð Ô!ð 	)Ø ð )ØE¸rÐEÐE�	Ý1°)Ñ<Ô<Ð<ðA˜rð Að Að Að õ —’˜KÑ(Ô(Ð(å% c×&6Ò&6°sÑ&;Ô&;Ñ<Ô<ð 	ð 	‰LˆF�DØð ˜F¨'Ð1Ð1ØØˆJˆJˆJØð ˜H¨°©
Ò2Ð2Ø��øð	ð 	r7   Úvaluec                 óè   — d}|€t                                d¦  «         |S 	 t          d„ t          |¦  «        D ¦   «         ¦  «        S # t          $ r t                                d¦  «         |cY S w xY w)N)ç        r   g      ƒ@g     Àˆ@zHMediaBox missing from /Page (and not inherited), defaulting to US Letterc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rZ   ©r   ©Ú.0Úvals     r5   ú	<genexpr>z*PDFPage._parse_mediabox.<locals>.<genexpr>È   ó(   è è € ÐGÐG°�h s™mœmÐGÐGÐGÐGÐGÐGr7   z2Invalid MediaBox in /Page, defaulting to US Letter)rO   ru   r   r   r   )r4   r}   Ú	us_letters      r5   r+   zPDFPage._parse_mediabox½   s‘   € Ø,ˆ	àˆ=Ý�KŠKð*ñô ð ð Ðð	ÝÐGÐGµxÀ±´ÐGÑGÔGÑGÔGÐGøåð 	ð 	ð 	Ý�KŠKÐLÑMÔMÐMØÐÐÐð	øøøs   ¢%A Á&A1Á0A1r,   c                 ó°   — |€|S 	 t          d„ t          |¦  «        D ¦   «         ¦  «        S # t          $ r t                               d¦  «         |cY S w xY w)Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rZ   r�   r‚   s     r5   r…   z)PDFPage._parse_cropbox.<locals>.<genexpr>Ô   r†   r7   z0Invalid CropBox in /Page, defaulting to MediaBox)r   r   r   rO   ru   )r4   r}   r,   s      r5   r-   zPDFPage._parse_cropboxÎ   sk   € Øˆ=àˆOð	ÝÐGÐGµxÀ±´ÐGÑGÔGÑGÔGÐGøåð 	ð 	ð 	Ý�KŠKÐJÑKÔKÐKØˆOˆOˆOð	øøøs   †%, ¬&AÁAc                 ó\   — g }|�'t          |¦  «        }t          |t          ¦  «        s|g}|S rZ   )r   rE   Úlist)r4   r}   r0   s      r5   r/   zPDFPage._parse_contentsÚ   s6   € Ø ˆØÐÝ ‘”ˆHÝ˜h­Ñ-Ô-ð &Ø$˜:�Øˆr7   )Nr   rk   TF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   Úobjectr\   r6   r:   r;   r   rJ   Ú__annotations__Úclassmethodr   rj   r   r   rF   Úboolr|   r   r   r+   r-   r‹   r/   © r7   r5   r   r      sâ  € € € € € € ðð ð.)àð)ð ð)ð ð	)ð
 �T‰zð)ð 
ð)ð )ð )ð )ð>V˜#ð Vð Vð Vð Vð-ð -ð -Ð�x  C¤Ô)ð ð ñ ð ð; Kð ;°H¸YÔ4Gð ;ð ;ð ;ñ „[ð;ðz ð *.ØØØØ"'ð"ð "àð"ð ˜3” $Ñ&ð"ð ð	"ð
 ð"ð ð"ð  ð"ð 
�)Ô	ð"ð "ð "ñ „[ð"ðH Sð ¨Tð ð ð ð ð"
 Cð 
°4ð 
¸Dð 
ð 
ð 
ð 
ð Sð ¨T°#¬Yð ð ð ð ð ð r7   r   )$r_   ÚloggingÚcollections.abcr   r   Útypingr   r   r   Úpdfminerr   Úpdfminer.pdfdocumentr	   r
   r   Úpdfminer.pdfexceptionsr   r   Úpdfminer.pdfparserr   Úpdfminer.pdftypesr   r   r   r   Úpdfminer.psparserr   Úpdfminer.utilsr   r   Ú	getLoggerrŒ   rO   rQ   rN   r   r”   r7   r5   ú<module>r       sy  ðØ Ð Ð Ð Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 DÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ (Ð (Ð (Ð (Ð (Ð (Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ !Ð !Ð !Ð !Ð !Ð !Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à€gÔ˜Ñ!Ô!€ð ˆs�6‰{Œ{€Ø��G‘”€ðGð Gð Gð Gð Gñ Gô Gð Gð Gð Gr7   