o
    uhZ                     @   s  d dl Z d dl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mZ d	ed
eeeef fddZ	d4dededeee eeef f d
ed fddZi deddeddeddeddeddeddeddeddedd ed d!ed!d"ed"d#ed#d$ed$d%ed%d&ed&d'ed'ed(ed)d*Zd+Z	d4dededeee eeef f d
ed fd,d-Z	d4d.eeef dedeee eeef f d
eeef fd/d0Zd1ed
efd2d3ZdS )5    N)Union   )_pdfdoc_encoding)
StreamTypelogger_warningread_non_whitespace)STREAM_TRUNCATED_PREMATURELYPdfStreamError   )ByteStringObjectTextStringObjectvaluereturnc                    s   t  fdddD S )Nc                 3   s0    | ]}t  d ||d  dd V  qdS )#r      g     o@N)intlstrip).0ir    J/var/www/html/bot/env/lib/python3.10/site-packages/pypdf/generic/_utils.py	<genexpr>   s   . zhex_to_rgb.<locals>.<genexpr>)r   r      )tupler   r   r   r   
hex_to_rgb
   s   r   streamforced_encoding)r   r   c                 C   s   |  d g }d}	 t| }|stt|dkrn||7 }t|dkr.|t|dd d}q
t|dkr9|d7 }|dkrF|t|dd tt||S )	Nr
       T   >r   r   base   0)	readr   r	   r   lenappendr   create_string_objectbytes)r   r   arrxtokr   r   r   read_hex_string_from_stream   s&   

r+      n   
   r      t   	   b      f      (   )   /   \       %   <r      [   ]   #   _   &   $)rA   rB   \   c           
      C   s  |  d}d}g }	 |  d}|stt|dkr|d7 }n|dkr,|d8 }|dkr+nn|dkr|  d}z	|t|  W q	 ty   d|  krOdkrn nE|  d }td	D ]}|  d}d|  krldkrsn n||7 }q[| d
d  t	|dd}|dkr|t
 | | n|| Y q	|dv r|  d}|dvr| d
d Y q	d|dd }	t|	t |t
 Y nw |t| q
tt||S )Nr
   Tr6   r7   r   r9   r"      7r      r       s   
zUnexpected escaped string: zutf-8ignore)r#   r	   r   r%   __ESCAPE_DICT__KeyErrortellrangeseekr   __BACKSLASH_CODE__decoder   __name__ordr&   r'   )
r   r   r*   parenstxtsav_ntokr   msgr   r   r   read_string_from_stream>   s\   









#3rX   stringc              	   C   s  t | tr	t| S t | trt |ttfr@d}| D ]}z||| 7 }W q ty6   |t|fd7 }Y qw t|}| |_|S t |trY|dkrMt	| S t| |}| |_|S zd| 
tjtjfrzt| d}| |_d|_| dd |_|W S | 
drt| d	}| |_d|_tj|_|W S | d
d dkrt| d}| |_d|_tj|_|W S tt| }| |_d|_|W S  ty   t	|  Y S w td)a?  
    Create a ByteStringObject or a TextStringObject from a string to represent the string.

    Args:
        string: The data being used
        forced_encoding: Typically None, or an encoding string

    Returns:
        A ByteStringObject

    Raises:
        TypeError: If string is not of type str or bytes.

     charmapr'   zutf-16TNr       zutf-16ber
   zutf-16lez3create_string_object should have str or unicode arg)
isinstancestrr   r'   listdict	ExceptionrO   _original_bytesr   
startswithcodecsBOM_UTF16_BEBOM_UTF16_LEautodetect_utf16	utf16_bomdecode_pdfdocencodingautodetect_pdfdocencodingUnicodeDecodeError	TypeError)rY   r   outr)   objretvalr   r   r   r&   {   s^   



r&   
byte_arrayc                 C   s>   d}| D ]}t | }|dkrtdt|ddd||7 }q|S )NrZ    pdfdocencodingrE   z#does not exist in translation table)r   rk   	bytearray)rp   ro   bcr   r   r   ri      s   
ri   )N)rd   typingr   _codecsr   _utilsr   r   r   errorsr   r	   _baser   r   r^   r   floatr   r_   r`   r   r+   rQ   rI   rN   rX   r'   r&   ri   r   r   r   r   <module>   s    
	

?


H