
     ha                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZ dd	lmZm Z m!Z! d
Z"dZ# G d de          Z$ G d de$          Z% G d de$          Z& G d de$          Z' G d de(e$          Z) G d de*e$          Z+ G d de,e$          Z- G d de.e$          Z/ G d de.e$          Z0de.de,fd Z1dS )!    N)	unhexlify)log10)AnyCallableListOptionalTupleUnioncast   )_pdfdoc_encoding_rev)PdfObjectProtocolPdfWriterProtocol)	
StreamTypeb_deprecation_with_replacementhex_str	hexencodelogger_warningread_non_whitespaceread_until_regexstr_)STREAM_TRUNCATED_PREMATURELYPdfReadErrorPdfStreamErrorzMathieu Fenniakzbiziqe@mathieu.fenniak.netc            
           e Zd ZU ej        Zed         ed<   ed         ed<   de	fdZ
de	fdZ	 	 dd
ededeeedf         ee         df         dd fdZ	 dded
ededefdZded          fdZded          fdZdededee	f         ddfdZdS )	PdfObject).zhashlib._Hash	hash_funcIndirectObjectindirect_referencereturnc                 0    d| z                                   S )Nz%s)encodeselfs    O/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/pypdf/generic/_base.pyhash_value_datazPdfObject.hash_value_data;   s    t##%%%    c                     | j         j        d|                     |                                                                                                           S )N:)	__class____name__r   r'   	hexdigestr#   r$   s    r&   
hash_valuezPdfObject.hash_value>   sQ     '''t335566@@BBB
 &((	r(   F pdf_destforce_duplicateignore_fields.Nc                      t          d          )a  
        clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter)
        force_duplicate: in standard if the object has been already cloned and reference,
            the copy is returned; when force_duplicate == True,
            a new copy is always performed
        ignore_fields : list/tuple of Fields names (for dictionaries that will
            be ignored during cloning (apply also to childs duplication)
        in standard, clone function call _reference_clone (see _reference)

        Args:
          pdf_dest:
          force_duplicate:  (Default value = False)
          ignore_fields:

        Returns:
          The cloned PdfObject
        zclone PdfObject)	Exceptionr%   r0   r1   r2   s       r&   clonezPdfObject.cloneG   s    . )***r(   r6   c                    	 |s|j         j        |k    r|S n# t          $ r Y nw xY w	 | j         }n# t          $ r |cY S w xY wt	          |j                  dz   }|t          |j                  |j        vri |j        t          |j                  <   |si|j        |j        t          |j                           v rC|	                    |j        t          |j                           |j                           }|J |S ||j        t          |j                           |j        <   |j        
                    |           t          |d|          |_         |S )aW  
        Reference the object within the _objects of pdf_dest only if
        indirect_reference attribute exists (which means the objects was
        already identified in xref/xobjstm) if object has been already
        referenced do nothing.

        Args:
          clone:
          pdf_dest:

        Returns:
          The clone
           Nr   )r    pdfr4   AttributeErrorlen_objectsid_id_translatedidnum
get_objectappendr   )r%   r6   r0   r1   indiobjs          r&   _reference_clonezPdfObject._reference_clone`   sm    	" u'?'Cx'O'O 	 	 	D		)CC 	 	 	LLL	!""Q&?#'{{("99979'374#I!8CG!EEE))+BswKK8C  
>?H#BswKK0;  '''#1!Q#A#A s    
$$0 ??c                     | S )zResolve indirect references.r/   r$   s    r&   r@   zPdfObject.get_object       r(   c                 L    t          ddd           |                                 S )N	getObjectr@   3.0.0)r   r@   r$   s    r&   rI   zPdfObject.getObject   s$    $[,HHH   r(   streamencryption_keyc                     t           N)NotImplementedErrorr%   rK   rL   s      r&   write_to_streamzPdfObject.write_to_stream   s
     "!r(   Fr/   )F)r,   
__module____qualname__hashlibsha1r   r   __annotations__r   bytesr'   r.   r   boolr
   r	   strr   r6   r   r   rE   r@   rI   r   rQ   r/   r(   r&   r   r   6   s        07Ix,-<<< !12222& & & & &E     !&AC	+ +#+ + U38_d3i=>	+
 
+ + + +4 PU* **$5*HL*	* * * *XH[1    !8K0 ! ! ! !" "27c58H2I"	" " " " " "r(   r   c            
           e Zd Z	 	 ddededeeedf         ee         df         dd fd	Z	d
e
dedeef         ddfdZed
e
dd fd            Zd
e
dedeef         ddfdZdefdZed
e
dd fd            ZdS )
NullObjectFr/   r0   r1   r2   .Nr!   c                 d    t          d|                     t                      ||                    S )Clone object into pdf_dest.r\   )r   rE   r\   r5   s       r&   r6   zNullObject.clone   s1     $//
hXX
 
 	
r(   rK   rL   c                 0    |                     d           d S )N   null)writerP   s      r&   rQ   zNullObject.write_to_stream   s     	Wr(   c                 r    |                      d          }|dk    rt          d          t                      S )N   r`   zCould not read Null object)readr   r\   )rK   nulltxts     r&   read_from_streamzNullObject.read_from_stream   s5    ++a..g;<<<||r(   c                 T    t          ddd           |                     ||           d S NwriteToStreamrQ   rJ   r   rQ   rP   s      r&   ri   zNullObject.writeToStream   3     	%_6GQQQV^44444r(   c                     dS )Nr\   r/   r$   s    r&   __repr__zNullObject.__repr__   s    |r(   c                 X    t          ddd           t                              |           S NreadFromStreamrf   rJ   )r   r\   rf   rK   s    r&   rp   zNullObject.readFromStream   s*    $%57I7SSS**6222r(   rR   )r,   rS   rT   r   rY   r
   r	   rZ   r   r6   r   rX   rQ   staticmethodrf   ri   rm   rp   r/   r(   r&   r\   r\      sZ        !&AC		
 	
#	
 	
 U38_d3i=>		

 
	
 	
 	
 	
 27c58H2I	   
      \5 527c58H2I5	5 5 5 5#     3z 3l 3 3 3 \3 3 3r(   r\   c            
          e Zd ZdeddfdZ	 	 ddeded	eee	d
f         e
e	         df         dd fdZdedefdZde	fdZdedede	ef         ddfdZdedede	ef         ddfdZededd fd            Zededd fd            ZdS )BooleanObjectvaluer!   Nc                     || _         d S rN   ru   )r%   ru   s     r&   __init__zBooleanObject.__init__   s    


r(   Fr/   r0   r1   r2   .c                 p    t          d|                     t          | j                  ||                    S )r^   rt   )r   rE   rt   ru   r5   s       r&   r6   zBooleanObject.clone   s8     !!-
";";XWW
 
 	
r(   _BooleanObject__oc                     t          |t                    r| j        |j        k    S t          |t                    r| j        |k    S dS )NF)
isinstancert   ru   rY   )r%   rz   s     r&   __eq__zBooleanObject.__eq__   sG    c=)) 	:**T"" 	:$$5r(   c                     | j         rdndS )NTrueFalserw   r$   s    r&   rm   zBooleanObject.__repr__   s    0vv0r(   rK   rL   c                 l    | j         r|                    d           d S |                    d           d S )N   trues   false)ru   ra   rP   s      r&   rQ   zBooleanObject.write_to_stream   s>     : 	#LL!!!!!LL"""""r(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zBooleanObject.writeToStream   rk   r(   c                     |                      d          }|dk    rt          d          S |dk    r$|                      d           t          d          S t          d          )Nrc   r   Ts   falsr8   FzCould not read Boolean object)rd   rt   r   )rK   words     r&   rf   zBooleanObject.read_from_stream   s]    {{1~~7?? &&&W__KKNNN '''>???r(   c                 X    t          ddd           t                              |           S ro   )r   rt   rf   rq   s    r&   rp   zBooleanObject.readFromStream   s*    $%57I7SSS--f555r(   rR   )r,   rS   rT   r   rx   r   rY   r
   r	   rZ   r   r6   objectr}   rm   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   rt   rt      s       c d     !&AC	

 

#

 

 U38_d3i=>	


 


 

 

 

& T    1# 1 1 1 1# #27c58H2I#	# # # #5 527c58H2I5	5 5 5 5 @ @ @ @ @ \@ 6z 6o 6 6 6 \6 6 6r(   rt   c            
       b   e Zd ZdedededdfdZ	 	 dd	ed
edee	e
df         ee
         df         dd fdZedd            Zded         fdZde
fdZdedefdZdedefdZdedede
ef         ddfdZdedede
ef         ddfdZedededd fd            Zedededd fd            ZdS )r   r?   
generationr9   r!   Nc                 0    || _         || _        || _        d S rN   )r?   r   r9   )r%   r?   r   r9   s       r&   rx   zIndirectObject.__init__   s    
$r(   Fr/   r0   r1   r2   .c                 \   | j         |k    r|s| S t          | j                   |j        vri |j        t          | j                   <   |sd| j        |j        t          | j                            v r>|                    |j        t          | j                            | j                           }nm|                                 }|-t                      }t          | t          f          sJ | |_        |	                    |
                    |||                    }|J |j        J |j        S )r^   )r9   r=   r>   r?   r@   r\   r|   r   r    _add_objectr6   )r%   r0   r1   r2   duprD   s         r&   r6   zIndirectObject.clone  s    8xKdh<<x66646H#BtxLL1 	4:1HDH1V#V#V%%h&=bll&KDJ&WXXCC//##C{ ll!$(9:::::)-&&&		(O]CC C %111%%r(   c                     | S rN   r/   r$   s    r&   r    z!IndirectObject.indirect_reference   rG   r(   r   c                 f    | j                             |           }|d S |                                S rN   )r9   r@   )r%   rD   s     r&   r@   zIndirectObject.get_object$  s1    h!!$'';4~~r(   c                 R    d| j         d| j        dt          | j                   dS )NzIndirectObject(z, ))r?   r   r=   r9   r$   s    r&   rm   zIndirectObject.__repr__*  s/    UUUUUbllUUUUr(   otherc                     |d uoBt          |t                    o-| j        |j        k    o| j        |j        k    o| j        |j        u S rN   )r|   r   r?   r   r9   r%   r   s     r&   r}   zIndirectObject.__eq__-  sY     &5.11&
ek)& 5#33& EI%	
r(   c                 .    |                      |           S rN   )r}   r   s     r&   __ne__zIndirectObject.__ne__6  s    ;;u%%%%r(   rK   rL   c                 j    |                     t          | j         d| j         d                     d S )N z R)ra   r   r?   r   rP   s      r&   rQ   zIndirectObject.write_to_stream9  s9     	R4:;;;;;<<=====r(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zIndirectObject.writeToStream>  rk   r(   c                    d}	 |                      d          }|st          t                    |                                rn||z  }Fd}	 |                      d          }|st          t                    |                                r|sCn||z  }It	          |           }|dk    r1t          dt          |                                                      t          t          |          t          |          |          S )Nr(   Tr8      Rz0Error reading indirect object reference at byte )
rd   r   r   isspacer   r   r   tellr   int)rK   r9   r?   tokr   rs         r&   rf   zIndirectObject.read_from_streamD  s   	++a..C C$%ABBB{{}} SLE	 
	++a..C C$%ABBB{{}} ! #J	  ''99[76;;==CYCY[[   c%jj#j//3???r(   c                 Z    t          ddd           t                              | |          S ro   )r   r   rf   rK   r9   s     r&   rp   zIndirectObject.readFromStream_  s.     	%%57I7SSS..vs;;;r(   rR   )r!   r   )r,   rS   rT   r   r   rx   r   rY   r
   r	   rZ   r   r6   propertyr    r   r@   rm   r}   r   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   r   r      s,       c s       !&AC	& &#& & U38_d3i=>	&
 
& & & &>    X H[1        V# V V V V
C 
D 
 
 
 
&C &D & & & &> >27c58H2I>	> > > >
5 527c58H2I5	5 5 5 5 @ @# @:J @ @ @ \@4 <<!$<	< < < \< < <r(   r   c            
           e Zd Z	 ddeeef         dee         dd fdZ	 	 dd	ed
edee	edf         e
e         df         dd fdZdefdZdefdZdefdZdededeef         ddfdZdededeef         ddfdZdS )FloatObject0.0Nru   contextr!   c                    	 t          t          |                    }t                               | |          S # t          $ r@}t	          | d| dt
                     t                               | d          cY d }~S d }~ww xY w)Nz : FloatObject (z) invalid; use 0.0 insteadg        )floatr   __new__r4   r   r,   )clsru   r   es       r&   r   zFloatObject.__new__h  s    		+$u++&&E==e,,, 	+ 	+ 	+ GGeGGG   ==c********	+s   69 
B5A>8B>BFr/   r0   r1   r2   .c                 f    t          d|                     t          |           ||                    S )r^   r   )r   rE   r   r5   s       r&   r6   zFloatObject.clonev  s6     !!+d"3"3XOO
 
 	
r(   c                     | dk    rdS t          t          t          |                               }| dt          dd|z
             d                    d                              d          }|S )Nr   r   .r8      f0)r   r   absmaxrstrip)r%   nbss      r&   myreprzFloatObject.myrepr  sn    1995s4yy!!""&c!BrEll&&&&--c2299#>>r(   c                 *    |                                  S rN   )r   r$   s    r&   rm   zFloatObject.__repr__  s    {{}}r(   c                      t          |           S rN   )r   r$   s    r&   
as_numericzFloatObject.as_numeric  s    T{{r(   rK   rL   c                 z    |                     |                                                     d                     d S Nutf8)ra   r   r#   rP   s      r&   rQ   zFloatObject.write_to_stream  s2     	T[[]]))&1122222r(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zFloatObject.writeToStream  rk   r(   )r   NrR   )r,   rS   rT   r
   rZ   r   r   r   rY   r	   r   r6   r   rm   r   r   r   rX   rQ   ri   r/   r(   r&   r   r   g  st       FJ+ +#s(O+6>sm+	+ + + +" !&AC	

 



 

 U38_d3i=>	


 


 

 

 

    #    E    3 327c58H2I3	3 3 3 3
5 527c58H2I5	5 5 5 5 5 5r(   r   c            
       :   e Zd Z ej        d          Zdedd fdZ	 	 ddeded	e	e
ed
f         ee         df         dd fdZdefdZdede	deef         ddfdZdede	deef         ddfdZedede	d         fd            Zedede	d         fd            ZdS )NumberObjects	   [^+-.0-9]ru   r!   c                     	 t                               | t          |                    S # t          $ r7 t          d| dt                     t                               | d          cY S w xY w)NzNumberObject(z) invalid; use 0 insteadr   )r   r   
ValueErrorr   r,   )r   ru   s     r&   r   zNumberObject.__new__  sr    	';;sCJJ/// 	' 	' 	'J5JJJHUUU;;sA&&&&&	's   '* >A+*A+Fr/   r0   r1   r2   .Nc                 f    t          d|                     t          |           ||                    S )r^   r   )r   rE   r   r5   s       r&   r6   zNumberObject.clone  s6     !!,t"4"4hPP
 
 	
r(   c                 `    t          t          |                               d                    S r   )r   reprr#   r$   s    r&   r   zNumberObject.as_numeric  s$    4::$$V,,---r(   rK   rL   c                 p    |                     t          |                               d                     d S r   )ra   r   r#   rP   s      r&   rQ   zNumberObject.write_to_stream  s0     	T$ZZ&&v../////r(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zNumberObject.writeToStream  rk   r(   )r   r   c                     t          | t          j                  }|                    d          dk    rt	          |          S t          |          S )N   .)r   r   NumberPatternfindr   )rK   nums     r&   rf   zNumberObject.read_from_stream  sE    v|'ABB88D>>Rs###C   r(   c                 X    t          ddd           t                              |           S ro   )r   r   rf   rq   s    r&   rp   zNumberObject.readFromStream  s,     	%%57I7SSS,,V444r(   rR   )r,   rS   rT   recompiler   r   r   rY   r
   r	   rZ   r   r6   r   r   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   r   r     s       BJ|,,M'C 'N ' ' ' ' !&AC	

 



 

 U38_d3i=>	


 


 

 

 

.C . . . .0 027c58H2I0	0 0 0 0
5 527c58H2I5	5 5 5 5 ! !6S0T ! ! ! \! 55	,	-5 5 5 \5 5 5r(   r   c            
           e Zd ZdZ	 	 ddededeeedf         e	e         df         d	d fd
Z
ed	efd            Zdededeef         d	dfdZdededeef         d	dfdZdS )ByteStringObjecta>  
    Represents a string object where the text encoding could not be determined.

    This occurs quite often, as the PDF spec doesn't provide an alternate way to
    represent strings -- for example, the encryption data stored in files (like
    /O) is clearly not text, but is still stored in a "String" object.
    Fr/   r0   r1   r2   .Nr!   c           
          t          d|                     t          t          |                     ||                    S )r^   r   )r   rE   r   rX   r5   s       r&   r6   zByteStringObject.clone  sA     !! t--x 
 
 	
r(   c                     | S )z7For compatibility with TextStringObject.original_bytes.r/   r$   s    r&   original_byteszByteStringObject.original_bytes  s	     r(   rK   rL   c                     | }|rddl m}  |||          }|                    d           |                    t          |                     |                    d           d S )Nr   RC4_encrypt   <   >)	_securityr   ra   r   )r%   rK   rL   bytearrr   s        r&   rQ   z ByteStringObject.write_to_stream  sx      	;//////!k.'::GTYw''(((Tr(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zByteStringObject.writeToStream  rk   r(   rR   )r,   rS   rT   __doc__r   rY   r
   r	   rZ   r   r6   r   rX   r   r   rQ   ri   r/   r(   r&   r   r     s         !&AC	
 

 
 U38_d3i=>	

 

 
 
 
     X
 
27c58H2I
	
 
 
 
5 527c58H2I5	5 5 5 5 5 5r(   r   c            
           e Zd ZdZ	 	 ddededeeedf         e	e         df         d	d fd
Z
dZdZed	efd            Zd	efdZdededeef         d	dfdZdededeef         d	dfdZdS )TextStringObjectz
    A string object that has been decoded into a real unicode string.

    If read from a PDF document, this string appeared to match the
    PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding
    to occur.
    Fr/   r0   r1   r2   .Nr!   c                     t          |           }| j        |_        | j        |_        t          d|                     |||                    S )r^   r   )r   autodetect_pdfdocencodingautodetect_utf16r   rE   )r%   r0   r1   r2   rD   s        r&   r6   zTextStringObject.clone  sP     t$$(,(F%#4 5 5c8_ U U
 
 	
r(   c                 *    |                                  S )a-  
        It is occasionally possible that a text string object gets created where
        a byte string object was expected due to the autodetection mechanism --
        if that occurs, this "original_bytes" property can be used to
        back-calculate what the original encoded bytes were.
        )get_original_bytesr$   s    r&   r   zTextStringObject.original_bytes  s     &&(((r(   c                     | j         r"t          j        |                     d          z   S | j        rt          |           S t          d          )Nutf-16bez#no information about original bytes)r   codecsBOM_UTF16_BEr#   r   encode_pdfdocencodingr4   r$   s    r&   r   z#TextStringObject.get_original_bytes!  sS       	C&Z)@)@@@+ 	C(...ABBBr(   rK   rL   c                 X   	 t          |           }n2# t          $ r% t          j        |                     d          z   }Y nw xY w|r9ddlm}  |||          }t          |          }|                    |d            d S |	                    d           |D ]~}t          |                                          s,|dk    r&|	                    t          d|z                       O|	                    t          t          |                               |	                    d           d S )Nr   r   r      (    z\%03o   ))r   UnicodeEncodeErrorr   r   r#   r   r   r   rQ   ra   chrisalnumr   )r%   rK   rL   r   r   rD   cs          r&   rQ   z TextStringObject.write_to_stream.  sD   	D+D11GG! 	D 	D 	D)DKK
,C,CCGGG	D 	//////!k.'::G"7++C-----LL - -1vv~~'' -AII
 LLHqL!1!12222LLCFF,,,,LLs    ,A Ac                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zTextStringObject.writeToStreamK  rk   r(   rR   )r,   rS   rT   r   r   rY   r
   r	   rZ   r   r6   r   r   r   rX   r   r   r   rQ   ri   r/   r(   r&   r   r     s@         !&AC	
 

 
 U38_d3i=>	

 

 
 
 
 !&) ) ) ) X)CE C C C C 27c58H2I	   :5 527c58H2I5	5 5 5 5 5 5r(   r   c            
       v   e Zd Z ej        d          ZdZdddddd  ed	          D             Z	 	 dde	de
deeedf         ee         df         dd fdZdededeef         ddfdZdededeef         ddfdZdefdZededefd            Zedede	dd fd            Zedede	dd fd            ZdS )
NameObjects   \s+|[\(\)<>\[\]{}/%]   /s   #23s   #28s   #29s   #2F)#(r   /c                 Z    i | ](}t          |          d |d                                )S )r   02X)r   r#   ).0rC   s     r&   
<dictcomp>zNameObject.<dictcomp>Z  s4    
;
;
;A3q66;q;;;%%''
;
;
;r(   !   Fr/   r0   r1   r2   .Nr!   c                 f    t          d|                     t          |           ||                    S )r^   r   )r   rE   r   r5   s       r&   r6   zNameObject.clone]  s6     !!*T"2"2HoNN
 
 	
r(   rK   rL   c                 T    |                     |                                            d S rN   )ra   renumberrP   s      r&   rQ   zNameObject.write_to_streami  s$     	T]]__%%%%%r(   c                 T    t          ddd           |                     ||           d S rh   rj   rP   s      r&   ri   zNameObject.writeToStreamn  rk   r(   c                 z   | d                              d          }|dk    rt          d|  dt                     | dd          D ]u}|dk    r4|                     d          D ]}|d|d	                                 z  }<	 || j        |         z  }N# t          $ r ||                     d          z  }Y rw xY w|S )
Nr   utf-8r   z$Incorrect first char in NameObject:(r   r8   ~r   r   )r#   r   r,   renumber_tableKeyError)r%   outr   xs       r&   r  zNameObject.renumbert  s    1gnnW%%$;;I$III8TTTabb 	- 	-A3ww'** 0 0A;q;;;--///CC0-4.q11CC - - -188G,,,CCC-
s   B"B87B8sinc                    |                      dd          }|dk    rl	 | d |         t          | |dz   |dz                      z   | |dz   d          z   } |                      d|dz             }n# t          $ r |dz   }Y nw xY w|dk    l| S )N   #r   r8      )r   r   r   )r  rC   s     r&   unnumberzNameObject.unnumber  s    HHT11ff"1"g	#a!ea!em*< = ==AEGGLHHT1q5))    E	 1ff 
s   AA. .B ?B r9   c                    |                      d          }|t          j        k    rt          d          |t	          | t          j                  z  }	 t                              |          }dD ]8}	 |                    |          }t          |          c S # t          $ r Y 5w xY wt          d|ddd          # t          t          f$ rz}|j        sMt          dt          |           dt                     t          |                    d	                    cY d }~S t          dt          |           d          |d }~ww xY w)
Nr8   zname read error)r  gbk r   zCode Not Foundz"Illegal character in Name Object (r   charmap)rd   r   surfixr   r   delimiter_patternr  decoder4   UnicodeDecodeErrorr   strictr   r   r,   )rK   r9   nameencretr   s         r&   rf   zNameObject.read_from_stream  sy   {{1~~:$$$0111 )EFFF	 &&t,,D'  ++c**C%c??***    D$Rq!5EFFF"$67 		 		 		: FdFFF   "$++i"8"899999999"FdFFF 		sI   B; 2#BB; 
B%"B; $B%%B; ;EAEE !EEc                 Z    t          ddd           t                              | |          S ro   )r   r   rf   r   s     r&   rp   zNameObject.readFromStream  s.     	%%57I7SSS**63777r(   rR   )r,   rS   rT   r   r   r  r  ranger  r   rY   r
   r	   rZ   r   r6   r   rX   rQ   ri   r  rr   r  rf   rp   r/   r(   r&   r   r   R  s       "
#;<<F	 
 <
;r
;
;
;N !&AC	

 



 

 U38_d3i=>	


 


 

 

 

& &27c58H2I&	& & & &
5 527c58H2I5	5 5 5 5%     
e 
 
 
 
 \
  # ,    \6 88!$8	8 8 8 \8 8 8r(   r   unicode_stringr!   c           	          d}| D ]N}	 |t          t          t          |                             z  }.# t          $ r t	          d|ddd          w xY w|S )Nr(   pdfdocencodingr   z#does not exist in translation table)r   r   r   r  r   )r  retvalr   s      r&   r   r     s}    F  	b1!455666FF 	 	 	$ !R-R  	 Ms	   *3A)2r   rU   r   binasciir   mathr   typingr   r   r   r   r	   r
   r   _codecsr   
_protocolsr   r   _utilsr   r   r   r   r   r   r   r   r   errorsr   r   r   
__author____author_email__r   r\   rt   r   r   r   r   r   rX   r   rZ   r   r   r   r/   r(   r&   <module>r+     s  8   				             D D D D D D D D D D D D D D D D D D * * * * * * = = = = = = = =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 P O O O O O O O O O
/ a" a" a" a" a"! a" a" a"H$3 $3 $3 $3 $3 $3 $3 $3N76 76 76 76 76I 76 76 76ti< i< i< i< i<Y i< i< i<X15 15 15 15 15% 15 15 15h05 05 05 05 053	 05 05 05f,5 ,5 ,5 ,5 ,5ui ,5 ,5 ,5^R5 R5 R5 R5 R5sI R5 R5 R5j_8 _8 _8 _8 _8i _8 _8 _8D	# 	% 	 	 	 	 	 	r(   