
    kh:                         d Z ddlZddlmZ ddlmZ  ej                  d      Z ej                  d      Zde	de	fd	Z
 ej                  d
      Zde	de	fdZy)zBPython implementation of ASCII85/ASCIIHex decoder (Adobe version).    N)	a85decode)	unhexlifys   ^\s*<?\s*~\s*s   \s*~\s*>?\s*$datareturnc                 p    t         j                  d|       } t        j                  d|       } t        |       S )a  In ASCII85 encoding, every four bytes are encoded with five ASCII
    letters, using 85 different types of characters (as 256**4 < 85**5).
    When the length of the original bytes is not a multiple of 4, a special
    rule is used for round up.

    Adobe's ASCII85 implementation expects the input to be terminated
    by `b"~>"`, and (though this is absent from the PDF spec) it can
    also begin with `b"<~"`.  We can't reliably expect this to be the
    case, and there can be off-by-one errors in stream lengths which
    mean we only see `~` at the end.  Worse yet, `<` and `>` are
    ASCII85 digits, so we can't strip them.  We settle on a compromise
    where we strip leading `<~` or `~` and trailing `~` or `~>`.
        )start_resubend_rer   )r   s    L/var/www/teggl/fontify/venv/lib/python3.12/site-packages/pdfminer/ascii85.pyascii85decoder      s.     <<T"D::c4 DT?r   s   \sc                     t         j                  d|       } | j                  d      }|dk7  r| d| } |dz  dk(  r| dz  } t        |       S )a  ASCIIHexDecode filter: PDFReference v1.4 section 3.3.1
    For each pair of ASCII hexadecimal digits (0-9 and A-F or a-f), the
    ASCIIHexDecode filter produces one byte of binary data. All white-space
    characters are ignored. A right angle bracket character (>) indicates
    EOD. Any other characters will cause an error. If the filter encounters
    the EOD marker after reading an odd number of hexadecimal digits, it
    will behave as if a 0 followed the last digit.
    r      >N         0)bws_rer
   findr   )r   idxs     r   asciihexdecoder   !   sQ     ::c4 D
))D/C
byDSz7a<DLDT?r   )__doc__rebase64r   binasciir   compiler	   r   bytesr   r   r    r   r   <module>r      sk    H 	  2::'(	%	& % & 
F	 5 r   