
    ,h                     V   d dl Z d dlmZmZ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mZ ddlmZmZ d	ed
eeeef   fdZ	 dde	dedeee   eeef   f   d
ed   fdZ	 dde	dedeee   eeef   f   d
ed   fdZ	 ddeeef   dedeee   eeef   f   d
eeef   fdZded
efdZy)    N)DictListTupleUnion   )_pdfdoc_encoding)
StreamTypeb_logger_warningread_non_whitespace)STREAM_TRUNCATED_PREMATURELYPdfStreamError   )ByteStringObjectTextStringObjectvaluereturnc                 ,     t         fddD              S )Nc              3   f   K   | ](  }t        j                  d       ||dz    d      dz   * yw)#r      g     o@N)intlstrip).0ir   s     W/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/PyPDF2/generic/_utils.py	<genexpr>zhex_to_rgb.<locals>.<genexpr>   s1     R1U\\#&q1q5126>Rs   .1)r   r      )tuple)r   s   `r   
hex_to_rgbr    
   s    R	RRR    streamforced_encoding)r   r   c                 n   | j                  d       d}d}	 t        |       }|st        t              |dk(  rn/||z  }t	        |      dk(  r|t        t        |d            z  }d}Qt	        |      dk(  r|dz  }t	        |      dk(  r|t        t        |d            z  }t        t        |      |      S )	Nr    r!      >r   r   base   0)	readr   r   r   lenchrr   create_string_objectr
   )r"   r#   txtxtoks        r   read_hex_string_from_streamr1      s     KKN
CA
!&) !=>>$;	Sq6Q;3s12''CA  1v{	T	
1v{s3qr?##399r!   c           	      N   | j                  d      }d}g }	 | j                  d      }|st        t              |dk(  r|dz  }ng|dk(  r|dz  }|dk(  rXni|dk(  rR| j                  d      }i dddd	d
ddddddddddddddddddddddddddddddddd}	 ||   }|j                  |       t        d%j                  |      |      S # t        $ r d|k  ri|dk  rdt	        d       D ]6  }| j                  d      }d|k  r|dk  r||z  }$| j                  d!d        n t        t        t        |d"#                  }nR|d$v r*| j                  d      }|d$vr| j                  d!d       d%}n$d&|j                  d'       }t        |t               Y w xY w)(Nr      (   )r      \   n   
   r      t   	   b      f      cs   \c   /       %   <r&      [   ]   #   _   &   $)rH   rI   rJ   r)      7r      r'   s   
r!   zUnexpected escaped string: utf8)r*   r   r   KeyErrorrangeseekr
   r,   r   decoder   __name__appendr-   join)	r"   r#   r0   parensr.   escape_dict_ntokmsgs	            r   read_string_from_streamr[   &   sd    ++a.CF
C
kk!n !=>>$;aKFD[aKF{E\++a.Cee e e	
 e f d d d u d d d d d  d!" d#$ )K,2!#&: 	

3A B  ??;  23;3$; #1X "%{{1~4<DDL4KC"KKA.!" SSq!123CG^ !++a.C')B* C8F9K8LMC"3172s   &C C	F$#F$stringc                    t        | t              rt        |       S t        | t              rt        |t        t
        f      rd}| D ]  }	 |||   z  } t        |      S t        |t              r*|dk(  rt        |       S t        | j                  |            S 	 | j                  t        j                        r#t        | j                  d            }d|_        |S t        t        |             }d|_        |S t!        d      # t        $ r! |t        |f      j                  d      z  }Y w xY w# t        $ r t        |       cY S w xY w)z
    Create a ByteStringObject or a TextStringObject from a string to represent the string.

    :param Union[str, bytes] string: A string

    :raises TypeError: If string is not of type str or bytes.
    r%   charmapbyteszutf-16Tz3create_string_object should have str or unicode arg)
isinstancestrr   r_   listdict	ExceptionrR   r   
startswithcodecsBOM_UTF16_BEautodetect_utf16decode_pdfdocencodingautodetect_pdfdocencodingUnicodeDecodeError	TypeError)r\   r#   outr/   retvals        r   r-   r-   q   sD    &#''	FE	"od|4C 99?1--C9
 $C((-')'//#FMM/$BCC0$$V%8%89-fmmH.EFF.2F+!M ..CF.KLF7;F4!M MNN1 ! 95!;--i88C9* & 0'//0s+   
DAD1 D1 'D.-D.1EE
byte_arrayc                 n    d}| D ]-  }t         |   }|dk(  rt        dt        |      ddd      ||z  }/ |S )Nr%    pdfdocencodingrL   z#does not exist in translation table)r   rk   	bytearray)ro   rn   bcs       r   ri   ri      sY    F 
Q=$ !5  	!
 Mr!   )N)rf   typingr   r   r   r   _codecsr   _utilsr	   r
   r   r   errorsr   r   _baser   r   ra   floatr    r   r1   r[   r_   r-   ri    r!   r   <module>r}      sA    + + & H H A 5Sc SeE5%$78 S DH::4d3ic3h?@: 12:4 DHH@H@4d3ic3h?@H@ 12H@Z DH+O#u*+O4d3ic3h?@+O --.+O\e  r!   