Ë
    ìì�iÐ  ã                   óÒ   — d dl 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 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 ddl	mZ  G d„ de
«      Z G d„ de«      Z G d„ de«      Zy)é    N)ÚBytesIOé   )ÚPSStackParser)ÚPSSyntaxError)ÚPSEOF)ÚKWD)ÚSTRICT)ÚPDFException)Ú	PDFStream)Ú	PDFObjRef)Ú	int_value)Ú
dict_valuec                   ó   — e Zd Zy)ÚPDFSyntaxErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úw/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/pdfminer/pdfparser.pyr   r      s   „ Ør   r   c                   ó‚   — e Zd ZdZd„ Zd„ Z ed«      Z ed«      Z ed«      Z	 ed«      Z
 ed«      Z ed	«      Zd
„ Zy)Ú	PDFParsera£  
    PDFParser fetch PDF objects from a file stream.
    It can handle indirect references by referring to
    a PDF document set by set_document method.
    It also reads XRefs at the end of every PDF file.

    Typical usage:
      parser = PDFParser(fp)
      parser.read_xref()
      parser.read_xref(fallback=True) # optional
      parser.set_document(doc)
      parser.seek(offset)
      parser.nextobject()

    c                 óL   — t        j                  | |«       d | _        d| _        y )NF)r   Ú__init__ÚdocÚfallback)ÚselfÚfps     r   r   zPDFParser.__init__*   s#   € Ü×Ñ˜t RÔ(ØˆŒØˆŒØr   c                 ó   — || _         y)z0Associates the parser with a PDFDocument object.N)r   )r   r   s     r   Úset_documentzPDFParser.set_document0   s   € àˆŒØr   ó   Rs   nulls   endobjs   streams   xrefs	   startxrefc           	      ó8  — || j                   | j                  fv r | j                  | j                  d«      Ž  y|| j                  u r | j                  | j                  d«      Ž  y|| j
                  u r| j                  |df«       y|| j                  u r\	 | j                  d«      \  \  }}\  }}t        |«      t        |«      }}t        | j                  ||«      }| j                  ||f«       y|| j                  u �r“| j                  d«      \  \  }}t        |«      }d}| j                  s	 t        |d   «      }| j'                  |«       	 | j)                  «       \  }}	|t-        |	«      z  }| j.                  j'                  |«       | j.                  j1                  |«      }
| j'                  ||z   «       	 	 | j)                  «       \  }}	d	|	v r+|	j3                  d	«      }||z  }| j                  r|
|	d| z  }
n |t-        |	«      z  }| j                  r|
|	z  }
Œc| j'                  ||z   «       | j4                  rt7        j4                  d
||||
dd fz  «       t9        ||
| j                  j:                  «      }| j                  ||f«       y| j                  ||f«       y# t        $ r Y yw xY w# t         $ r t"        rt%        d|z  «      ‚Y �Œ˜w xY w# t*        $ r t"        rt%        d«      ‚Y yw xY w# t*        $ r t"        rt%        d«      ‚Y Œ÷w xY w)zHandles PDF-related keywords.r   é   Né   r   ÚLengthz/Length is undefined: %rzUnexpected EOFs	   endstreamz-Stream: pos=%d, objlen=%d, dic=%r, data=%r...é
   )ÚKEYWORD_XREFÚKEYWORD_STARTXREFÚadd_resultsÚpopÚKEYWORD_ENDOBJÚKEYWORD_NULLÚpushÚ	KEYWORD_RÚintr   r   r   ÚKEYWORD_STREAMr   r   r   ÚKeyErrorr	   r   ÚseekÚnextliner   Úlenr   ÚreadÚindexÚdebugÚloggingr   Údecipher)r   ÚposÚtokenÚ_ÚobjidÚgennoÚobjÚdicÚobjlenÚlineÚdataÚlineposÚis                r   Ú
do_keywordzPDFParser.do_keyword<   s)  € ð �T×&Ñ&¨×(>Ñ(>Ð?Ñ?ØˆD×Ñ˜dŸh™h q›kÑ*ðJ 	ðG �d×)Ñ)Ñ)ØˆD×Ñ˜dŸh™h q›kÑ*ðD 	ðA �d×'Ñ'Ñ'à�I‰I�s˜D�kÔ"ð| 	ðy �d—n‘nÑ$ðØ+/¯8©8°A«;Ñ(‘�!�U™Z˜a Ü"% e£*¬c°%«j˜�Ü §¡¨%°Ó7�Ø—	‘	˜3 ˜*Ô%ðl 	ðe �d×)Ñ)Ò)àŸ(™( 1›+‰K‰Xˆa�Ü˜S“/ˆCØˆFØ—=’=ðOÜ& s¨8¡}Ó5�Fð �I‰I�cŒNðØ ŸM™M›O‘	��Dð
 ”3�t“9ÑˆCØ�G‰G�L‰L˜ÔØ—7‘7—<‘< Ó'ˆDØ�I‰I�c˜&‘jÔ!ØðØ&*§m¡m£o‘O�W˜dð
   4Ñ'ØŸ
™
 <Ó0�AØ˜a‘K�FØ—}’}Ø  R a Ñ(˜ØØœ#˜d›)Ñ#�Ø—=’=Ø˜D‘L�Dð ð  �I‰I�c˜&‘jÔ!à�zŠzÜ—‘ÐMØ" F¨C°°c°r°Ð;ñ<ô =ä˜C  t§x¡x×'8Ñ'8Ó9ˆCØ�I‰I�s˜C�jÔ!ð 	ð �I‰I�s˜E�lÔ#àøôk !ò Øðh 	ðkûô  ò OÝÜ,Ð-GÈ#Ñ-MÓNÐNò ðOûô ò ÝÜ(Ð)9Ó:Ð:Ùðûô ò ÝÜ,Ð-=Ó>Ð>ÙðúsI   ÂAJ) Ä2J8 ÅK Æ?K< Ê)	J5Ê4J5Ê8KËKËK9Ë8K9Ë<LÌLN)r   r   r   Ú__doc__r   r    r   r.   r,   r+   r0   r'   r(   rF   r   r   r   r   r      sQ   „ ñò òñ
 �D“	€IÙ�w“<€LÙ˜“^€NÙ˜“^€NÙ�w“<€LÙ˜LÓ)ÐóIr   r   c                   ó2   — e Zd ZdZd„ Zd„ Z ed«      Zd„ Zy)ÚPDFStreamParsera(  
    PDFStreamParser is used to parse PDF content streams
    that is contained in each page and has instructions
    for rendering the page. A reference to a PDF document is
    needed because a PDF content stream can also have
    indirect references to other objects in the same document.
    c                 óB   — t         j                  | t        |«      «       y ©N)r   r   r   )r   rC   s     r   r   zPDFStreamParser.__init__”   s   € Ü×Ñ˜4¤¨£Ô/Ør   c                 ó>   —  | j                   | j                  «       Ž  y rK   )r)   Úpopall)r   s    r   ÚflushzPDFStreamParser.flush˜   s   € Øˆ×Ñ˜$Ÿ+™+›-Ñ(Ør   s   objc                 ót  — || j                   u r\	 | j                  d«      \  \  }}\  }}t        |«      t        |«      }}t        | j                  ||«      }| j                  ||f«       y || j                  | j                  fv rt        rt        d«      ‚y | j                  ||f«       y # t        $ r Y y w xY w)Nr$   zKeyword endobj found in stream)r.   r*   r/   r   r   r-   r   ÚKEYWORD_OBJr+   r	   r   )r   r:   r;   r<   r=   r>   r?   s          r   rF   zPDFStreamParser.do_keyword�   s¼   € Ø�D—N‘NÑ"ðØ+/¯8©8°A«;Ñ(‘�!�U™Z˜a Ü"% e£*¬c°%«j˜�Ü §¡¨%°Ó7�Ø—	‘	˜3 ˜*Ô%ð Ø�t×'Ñ'¨×)<Ñ)<Ð=Ñ=Ýô %Ð%EÓFÐFØà�	‰	�3˜�,ÔØøô !ò ØØðús   �AB+ Â+	B7Â6B7N)	r   r   r   rG   r   rN   r   rP   rF   r   r   r   rI   rI   Š   s!   „ ñòòñ �f“+€Kór   rI   )r8   Úior   Úpsparserr   r   r   r   r	   Úpdftypesr
   r   r   r   r   r   r   rI   r   r   r   ú<module>rT      sP   ðã Ý Ý #Ý #Ý Ý Ý Ý "Ý Ý Ý Ý  ô
	�\ô 	ôm�ô môd&�iõ &r   