
    h5j=                    x   d Z ddlmZ ddlZddlmZ dZ ej                  e      Z e	d eD              Z
 G d dej                        Z G d	 d
ej                        Z G d dej                        Z G d deej"                        Z G d deej&                        ZddZ ej,                  e       g dZy)zImplement pdfdoc codec.

PdfDocEncoding character mapping codec following the standard Python codec pattern.
See PDF Reference Manual 1.7, Table D.2 for the encoding specification.
    )annotationsN)Anyu   	
˘ˇˆ˙˝˛˚˜ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~￾•†‡…—–ƒ⁄‹›−‰„“”‘’‚™ﬁﬂŁŒŠŸŽıłœšž￾€¡¢£¤¥¦§¨©ª«¬￾®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿc              #  >   K   | ]  }|d k7  s	t        |        yw)u   ￾N)ord).0chs     C/var/www/html/qr/venv/lib/python3.12/site-packages/pikepdf/codec.py	<genexpr>r
     s     PxSWPs   
c                  $    e Zd ZdZdddZdddZy)PdfDocCodecz8Implement PdfDocEncoding character map used inside PDFs.c                8    t        j                  ||t              S )z&Encode string to PdfDocEncoding bytes.)codecscharmap_encodeencoding_tableselfinputerrorss      r	   encodezPdfDocCodec.encode"      $$UFNCC    c                8    t        j                  ||t              S )z&Decode PdfDocEncoding bytes to string.)r   charmap_decodedecoding_tabler   s      r	   decodezPdfDocCodec.decode&  r   r   N)strict)r   strr   r   returnztuple[bytes, int])r   r   r   r   r   ztuple[str, int])__name__
__module____qualname____doc__r   r    r   r	   r   r     s    BDDr   r   c                      e Zd ZdZdddZy)PdfDocIncrementalEncoderz-Implement PdfDocEncoding incremental encoder.c                R    t        j                  || j                  t              d   S )zEncode string incrementally.r   )r   r   r   r   r   r   finals      r	   r   zPdfDocIncrementalEncoder.encode.       $$UDKKHKKr   NF)r   r   r(   boolr   bytes)r   r    r!   r"   r   r#   r   r	   r%   r%   +      7Lr   r%   c                      e Zd ZdZdddZy)PdfDocIncrementalDecoderz-Implement PdfDocEncoding incremental decoder.c                R    t        j                  || j                  t              d   S )zDecode bytes incrementally.r   )r   r   r   r   r'   s      r	   r   zPdfDocIncrementalDecoder.decode6  r)   r   Nr*   )r   r   r(   r+   r   r   )r   r    r!   r"   r   r#   r   r	   r/   r/   3  r-   r   r/   c                      e Zd ZdZy)PdfDocStreamWriterz'Implement PdfDocEncoding stream writer.Nr   r    r!   r"   r#   r   r	   r2   r2   ;      1r   r2   c                      e Zd ZdZy)PdfDocStreamReaderz'Implement PdfDocEncoding stream reader.Nr3   r#   r   r	   r6   r6   A  r4   r   r6   c           	         | dv rPt        j                  | t               j                  t               j                  t
        t        t        t              S y)a  Register pdfdoc codec with Python.

    Both pdfdoc and pdfdoc_pikepdf are registered. Use "pdfdoc_pikepdf" if pikepdf's
    codec is required. If another third party package installs a codec named pdfdoc,
    the first imported by Python will be registered and will service all encoding.
    Unfortunately, Python's codec infrastructure does not give a better mechanism
    for resolving conflicts.
    )pdfdocpdfdoc_pikepdf)namer   r   incrementalencoderincrementaldecoderstreamwriterstreamreaderN)	r   	CodecInfor   r   r   r%   r/   r2   r6   )encodings    r	   find_pdfdocrA   G  sJ     //=''=''77++
 	
 r   )r   r2   r6   PDFDOC_ENCODABLE)r@   r   r   zcodecs.CodecInfo | None)r"   
__future__r   r   typingr   r   charmap_buildr   	frozensetrB   Codecr   IncrementalEncoderr%   IncrementalDecoderr/   StreamWriterr2   StreamReaderr6   rA   register__all__r#   r   r	   <module>rN      s    #   J &%%n5 P~PP 	D&,, 	DLv88 LLv88 L	f&9&9 		f&9&9 	,  r   