Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 1øªjdsã@s‚ddlZddlZddlZddlZddlmZddlmZddlmZddl m Z m Z m Z m Z mZmZmZmZddlmZddlmZmZdd lmZmZmZmZmZdd lmZmZm Z d Z!d Z"Gd d„deƒZ#Gdd„de#ƒZ$e e%dœdd„Z&Gdd„de#ƒZ'Gdd„de#ƒZ(dZ)Gdd„de*e#ƒZ+Gdd„de,e#ƒZ-Gdd„de.e#ƒZ/Gdd „d e0e#ƒZ1Gd!d"„d"e0e#ƒZ2e0e.d#œd$d%„Z3dS)&éN)Ú unhexlify)Úlog10)Ú iter_unpack)ÚAnyÚCallableÚClassVarÚDictÚOptionalÚSequenceÚUnionÚcasté)Ú_pdfdoc_encoding_rev)ÚPdfObjectProtocolÚPdfWriterProtocol)Ú StreamTypeÚdeprecate_no_replacementÚlogger_warningÚread_non_whitespaceÚread_until_regex)ÚSTREAM_TRUNCATED_PREMATURELYÚ PdfReadErrorÚPdfStreamErrorzMathieu Fenniakzbiziqe@mathieu.fenniak.netc@s¾eZdZUejZedede dœdd„Z e dœdd„Z e dœd d „Z d ffeeeeeee fdd œd d„Zdeeeedœdd„Zeddœdd„Zdeedee fddœdd„ZdS)Ú PdfObject.ú hashlib._HashÚIndirectObject)ÚreturncCst|jj›d�ƒ‚dS)zp Used to detect modified object. Returns: Hash considering type and value. z& does not implement .hash_bin() so farN)ÚNotImplementedErrorÚ __class__Ú__name__)Úself©r!ú4/tmp/pip-build-_d5lkt3n/pypdf/pypdf/generic/_base.pyÚhash_bin8szPdfObject.hash_bincCs d|jƒS)Nz%s)Úencode)r r!r!r"Úhash_value_dataCszPdfObject.hash_value_datacCs"d|jj|j|jƒƒjƒfjƒS)Nz%s:%s)rrÚ hash_funcr%Ú hexdigestr$)r r!r!r"Ú hash_valueFszPdfObject.hash_valueF)Úpdf_destÚforce_duplicateÚ ignore_fieldsrcCst|jj›d�ƒ‚dS)aš Clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter). By default, this method will call ``_reference_clone`` (see ``_reference``). Args: pdf_dest: Target to clone to. force_duplicate: By default, if the object has already been cloned and referenced, the copy will be returned; when ``True``, a new copy will be created. (Default value = ``False``) ignore_fields: List/tuple of field names (for dictionaries) that will be ignored during cloning (applies to children duplication as well). If fields are to be considered for a limited number of levels, you have to add it as integer, for example ``[1,"/B","/TOTO"]`` means that ``"/B"`` will be ignored at the first level only but ``"/TOTO"`` on all levels. Returns: The cloned PdfObject z! does not implement .clone so farN)rrr)r r)r*r+r!r!r"ÚcloneOszPdfObject.clone)r,r)r*rcCs„y| r|jj|kr|SWntk r.YnXy |j}Wntk rN|SX|jr‚|dk r‚|j|jkr‚|jt|jƒkr‚|j}nt|jƒd}|dk �r2t |jƒ|j krÐi|j t |jƒ<|j|j t |jƒd<| oê|j|j t |jƒk�r|j |j t |jƒ|jƒ}|dk �st ‚|S||j t |jƒ|j<y||j|d<Wn,t k �rp|jj|ƒt|jƒ}YnXt|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 NéZ PreventGCr)Úindirect_referenceÚpdfÚ ExceptionÚAttributeErrorÚ incrementalZ_readerÚidnumÚlenÚ_objectsÚidÚ_id_translatedÚ get_objectÚAssertionErrorÚ IndexErrorÚappendr)r r,r)r*ÚindÚiÚobjr!r!r"Ú_reference_clonemsB    zPdfObject._reference_clonecCs|S)zResolve indirect references.r!)r r!r!r"r8¦szPdfObject.get_objectN)ÚstreamÚencryption_keyrcCst‚dS)N)r)r r@rAr!r!r"Úwrite_to_streamªszPdfObject.write_to_stream).r)F)N)rÚ __module__Ú __qualname__ÚhashlibÚsha1r&rr r.Úintr#Úbytesr%r(rÚboolr r Ústrr,rrr?r8rrBr!r!r!r"r3s   7rc@s„eZdZdffeeeeeee fddœdd„Z e dœdd„Z de edee fdd œd d „Zee dd œd d„ƒZedœdd„ZdS)Ú NullObjectF)r)r*r+rcCstd|jtƒ||ƒƒS)zClone object into pdf_dest.rK)r r?rK)r r)r*r+r!r!r"r,±szNullObject.clone)rcCs t|jfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )Úhashr)r r!r!r"r#¼szNullObject.hash_binN)r@rArcCs |dk rtddƒ|jdƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0snull)rÚwrite)r r@rAr!r!r"rBÅszNullObject.write_to_stream)r@rcCs |jdƒ}|dkrtdƒ‚tƒS)NésnullzCould not read Null object)ÚreadrrK)r@Znulltxtr!r!r"Úread_from_streamÎs zNullObject.read_from_streamcCsdS)NrKr!)r r!r!r"Ú__repr__ÕszNullObject.__repr__)N)rrCrDrrIr r r rJrGr,r#rrHrBÚ staticmethodrPrQr!r!r!r"rK°s rK)ÚxrcCs |dkpt|tƒot|jƒtƒS)z; Returns: True if x is None or NullObject. N)Ú isinstancerr8rK)rSr!r!r"Úis_null_or_noneÙsrUc@s¤eZdZeddœdd„Zdffeeeee e e fddœdd„Z e d œd d „Z eed œd d„Ze d œdd„Zdee de efddœdd„Zeeddœdd„ƒZdS)Ú BooleanObjectN)ÚvaluercCs ||_dS)N)rW)r rWr!r!r"Ú__init__äszBooleanObject.__init__F)r)r*r+rcCstd|jt|jƒ||ƒƒS)zClone object into pdf_dest.rV)r r?rVrW)r r)r*r+r!r!r"r,çszBooleanObject.clone)rcCst|j|jfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrrW)r r!r!r"r#ószBooleanObject.hash_bin)Ú_BooleanObject__orcCs2t|tƒr|j|jkSt|tƒr*|j|kSdSdS)NF)rTrVrWrI)r rYr!r!r"Ú__eq__üs     zBooleanObject.__eq__cCs|jr dSdS)NÚTrueÚFalse)rW)r r!r!r"rQszBooleanObject.__repr__)r@rArcCs2|dk rtddƒ|jr$|jdƒn |jdƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0struesfalse)rrWrM)r r@rAr!r!r"rBs  zBooleanObject.write_to_stream)r@rcCs@|jdƒ}|dkrtdƒS|dkr4|jdƒtdƒStdƒ‚dS)NrNstrueTsfalsr-FzCould not read Boolean object)rOrVr)r@Úwordr!r!r"rPs  zBooleanObject.read_from_stream)N)rrCrDrrXrrIr r r rJrGr,r#ÚobjectrZrQrrHrBrRrPr!r!r!r"rVãs  rVc@sJeZdZeeeddœdd„Zedœdd„Zedœdd „Zd ffee e e e e efdd œd d „Zeddœdd„ƒZe ddœdd„Zeddœdd„Ze ddœdd„Ze edœdd„Zeedœdd„Ze dœdd„Ze dœd d!„Ze dœd"d#„Zee d$œd%d&„Zee d$œd'd(„Zd/ee de efdd)œd*d+„Zeeedd,œd-d.„ƒZ dS)0rN)r3Ú generationr/rcCs||_||_||_dS)N)r3r_r/)r r3r_r/r!r!r"rX szIndirectObject.__init__)rcCst|j|jt|jƒfƒS)N)rLr3r_r6r/)r r!r!r"Ú__hash__%szIndirectObject.__hash__cCst|j|j|jt|jƒfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrr3r_r6r/)r r!r!r"r#(szIndirectObject.hash_binF)r)r*r+rcCsþ|j|kr| r|St|jƒ|jkr4i|jt|jƒ<|j|jt|jƒkrž|j|jt|jƒ|jƒ}|rÞ|dk svt‚|jdk s„t‚|j}t|j|j|jƒSn@|jƒ}|dkrÊt ƒ}t |tfƒsÄt‚||_|j |j |||ƒƒ}|dk sêt‚|jdk søt‚|jS)zClone object into pdf_dest.N) r/r6r7r3r8r9r.rr_rKrTZ _add_objectr,)r r)r*r+ÚdupZidrefr>r!r!r"r,1s*  zIndirectObject.clonecCs|S)Nr!)r r!r!r"r.Usz!IndirectObject.indirect_referencercCs |jj|ƒS)N)r/r8)r r!r!r"r8YszIndirectObject.get_object)ÚmemorcCst|j|j|jƒS)N)rr3r_r/)r rbr!r!r"Ú __deepcopy__\szIndirectObject.__deepcopy__cCs0|jƒ}t|tƒr,t|jƒ›d|jƒ›�ƒ‚|S)Nz references an IndirectObject )r8rTrrrQ)r Úor!r!r"Ú_get_object_with_check_s  z%IndirectObject._get_object_with_check)Únamerc Cs8yt|jƒ|ƒStk r2td|›d�ƒ‚YnXdS)Nz No attribute z* found in IndirectObject or pointed object)Úgetattrrer1)r rfr!r!r"Ú __getattr__hs zIndirectObject.__getattr__)ÚkeyrcCs |jƒ|S)N)re)r rir!r!r"Ú __getitem__qszIndirectObject.__getitem__cCs |jƒjƒS)N)r8Ú __float__)r r!r!r"rkuszIndirectObject.__float__cCs |jƒjƒS)N)r8Ú__str__)r r!r!r"rlyszIndirectObject.__str__cCs"d|j›d|j›dt|jƒ›d�S)NzIndirectObject(z, ú))r3r_r6r/)r r!r!r"rQ}szIndirectObject.__repr__)ÚotherrcCs6|dk o4t|tƒo4|j|jko4|j|jko4|j|jkS)N)rTrr3r_r/)r rnr!r!r"rZ€s    zIndirectObject.__eq__cCs |j|ƒ S)N)rZ)r rnr!r!r"Ú__ne__‰szIndirectObject.__ne__)r@rArcCs4|dk rtddƒ|j|j›d|j›d�jƒƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0ú z R)rrMr3r_r$)r r@rAr!r!r"rBŒszIndirectObject.write_to_stream)r@r/rcCs¤d}x,|jdƒ}|sttƒ‚|jƒr&P||7}qWd}x2|jdƒ}|sNttƒ‚|jƒr^|s\q8P||7}q8Wt|ƒ}|dkr�tdt|jƒƒ›�ƒ‚tt |ƒt |ƒ|ƒS)Nór-óRz0Error reading indirect object reference at byte ) rOrrÚisspacerrÚhexÚtellrrG)r@r/r3Útokr_Úrr!r!r"rP•s.    zIndirectObject.read_from_stream)N)!rrCrDrGrrXr`r#rrIr r r rJr,Úpropertyr.r8rcrerhrjrkrlrQr^rZrorrHrBrRrPr!r!r!r"rs,    réc@s¤eZdZdeeeddœdd„Zdffeeeeee e fddœdd „Z e d œd d „Z e d œd d„Z e d œdd„Zed œdd„Zdeede efddœdd„ZdS)Ú FloatObjectú0.0N)rWÚcontextrcCsXyt|ƒ}tj||ƒStk rR}z"t|›d|›d�tƒtj|dƒSd}~XnXdS)Nz : FloatObject (z) invalid; use 0.0 insteadg)ÚfloatÚ__new__r0rr)ÚclsrWr|Úer!r!r"r~µs zFloatObject.__new__F)r)r*r+rcCstd|jt|ƒ||ƒƒS)zClone object into pdf_dest.rz)r r?rz)r r)r*r+r!r!r"r,ÃszFloatObject.clone)rcCst|j|jfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrÚ as_numeric)r r!r!r"r#ÏszFloatObject.hash_bincCsF|dkr dStttt|ƒƒƒ}|dtd|ƒ›d�›jdƒjdƒ}|S)Nrz0.0Ú.r-ÚfÚ0)ÚFLOAT_WRITE_PRECISIONrGrÚabsÚmaxÚrstrip)r ÚnbÚsr!r!r"ÚmyreprØs "zFloatObject.myreprcCs|jƒS)N)r‹)r r!r!r"rQßszFloatObject.__repr__cCst|ƒS)N)r})r r!r!r"r�âszFloatObject.as_numeric)r@rArcCs*|dk rtddƒ|j|jƒjdƒƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0Úutf8)rrMr‹r$)r r@rAr!r!r"rBåszFloatObject.write_to_stream)r{N)N)rrCrDrr r~rIr r rJrGr,r#r‹rQr}r�rrHrBr!r!r!r"rz´s  rzc@s¢eZdZejdƒZeddœdd„Zdffeee e e e e fddœdd„Ze d œd d „Ze d œd d „Zdee de efddœdd„Zeee ddœdd„ƒZdS)Ú NumberObjects [^+-.0-9])rWrc CsDytj|t|ƒƒStk r>td|›d�tƒtj|dƒSXdS)Nz NumberObject(z) invalid; use 0 insteadr)rGr~Ú ValueErrorrr)rrWr!r!r"r~òs zNumberObject.__new__F)r)r*r+rcCstd|jt|ƒ||ƒƒS)zClone object into pdf_dest.r�)r r?r�)r r)r*r+r!r!r"r,ùszNumberObject.clone)rcCst|j|jƒfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrr�)r r!r!r"r#szNumberObject.hash_bincCstt|ƒjdƒƒS)NrŒ)rGÚreprr$)r r!r!r"r�szNumberObject.as_numericN)r@rArcCs*|dk rtddƒ|jt|ƒjdƒƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0rŒ)rrMr�r$)r r@rAr!r!r"rBszNumberObject.write_to_streamrz)r@rcCs*t|tjƒ}|jdƒdkr"t|ƒSt|ƒS)Nó.r-éÿÿÿÿ)rr�Ú NumberPatternÚfindrz)r@Únumr!r!r"rPs zNumberObject.read_from_stream)N)r�rz)rrCrDÚreÚcompiler’rr~rIr r r rJrGr,r#r�rrHrBrRrPr!r!r!r"r�ïs   r�c@sxeZdZdZdffeeeeee e fddœdd„Z e dœdd„Z e edœd d „ƒZdeed e efd d œd d„Zd 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. F)r)r*r+rcCstd|jtt|ƒƒ||ƒƒS)zClone object into pdf_dest.r—)r r?r—rH)r r)r*r+r!r!r"r,+szByteStringObject.clone)rcCst|jt|ƒfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrrH)r r!r!r"r#9szByteStringObject.hash_bincCs|S)z7For compatibility with TextStringObject.original_bytes.r!)r r!r!r"Úoriginal_bytesBszByteStringObject.original_bytesN)r@rArcCs:|dk rtddƒ|jdƒ|jtj|ƒƒ|jdƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0ó<ó>)rrMÚbinasciiÚhexlify)r r@rAr!r!r"rBGs  z ByteStringObject.write_to_stream)N)rrCrDÚ__doc__rrIr r r rJrGr,r#rxrHr˜rrBr!r!r!r"r—"s  r—c@s¾eZdZUdZeeedZ e e e ddœdd„Z dffe ee e eeefddœdd „Zed œd d „Zeed œd d„ƒZed œdd„Zed œdd„Zdeedeefddœdd„ZdS)Ú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. N)rWrcCsd}t|tƒr|}|jdƒ}tj||ƒ}||_d|_d|_d|_|j d ƒrà|dk sVt ‚ytj||jdƒƒ}WnVt k rÂ}z:t |›d|j ›�tƒtj||j d|j…jdƒƒ}WYdd}~XnX||_d|_|dd …|_n8yt|ƒd|_Wn$tk �rd|_tj|_YnX|S) NÚcharmapFrqõþÿõÿþzutf-16z initial string:Tr )r r¡)rTrHÚdecoderJr~Ú_original_bytesÚautodetect_utf16Úautodetect_pdfdocencodingÚ utf16_bomÚ startswithr9ÚUnicodeDecodeErrorrr^rÚstartÚencode_pdfdocencodingÚUnicodeEncodeErrorÚcodecsÚ BOM_UTF16_BE)rrWÚorgrdÚexcr!r!r"r~as8     0 zTextStringObject.__new__F)r)r*r+rcCs<t|ƒ}|j|_|j|_|j|_|j|_td|j|||ƒƒS)zClone object into pdf_dest.rž)ržr£r¥r¤r¦r r?)r r)r*r+r>r!r!r"r,�szTextStringObject.clone)rcCst|j|jfƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLrr˜)r r!r!r"r#‘szTextStringObject.hash_bincCs|jdk r|jS|jƒSdS)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. N)r£Úget_original_bytes)r r!r!r"r˜šs zTextStringObject.original_bytescCsd|jrJ|jtjkr"tj|jdƒS|jtjkr>tj|jdƒS|jdƒSn|jrXt|ƒStdƒ‚dS)Nzutf-16lezutf-16bez#no information about original bytes) r¤r¦r¬Ú BOM_UTF16_LEr$r­r¥rªr0)r r!r!r"r°§s   z#TextStringObject.get_original_bytesc Cs’y2|jdk r|jS|jr(tdddddƒ‚t|ƒ}WnZtk rŒ|jtjkr`tj|jdƒ}n(|jtjkr~tj|jdƒ}n |jdƒ}YnX|S)NÚZforcedr-zutf-16lezutf-16ber‘r‘) r£r¤r«rªr¦r¬r±r$r­)r Úbytearrr!r!r"Úget_encoded_bytes¹s    z"TextStringObject.get_encoded_bytes)r@rArcCs„|dk rtddƒ|jƒ}|jdƒxPtd|ƒD]B}tt|dƒ}|jƒ rh|dkrh|jdt|ƒƒq0|j|ƒq0W|jdƒdS) Nz/the encryption_key parameter of write_to_streamz5.0.0ó(Úcró s\%03oó))rr´rMrr rHÚisalnumÚord)r r@rAr³Zc_r¶r!r!r"rBÌs z TextStringObject.write_to_stream)N)rrCrDr�rIr¥r¤rHr¦r£r rr~r r rJrGr,r#rxr˜r°r´rrBr!r!r!r"ržSs  #   ržc@sàeZdZUejdƒZdZddddddœd d „ed ƒDƒ–Ze e e e fd ffe eeeee efdd œdd„Zedœdd„Zd"eede e fddœdd„Ze dœdd„Zee e dœdd„ƒZd#Zeee ddœd d!„ƒZdS)$Ú NameObjects\s+|[\(\)<>\[\]{}/%]ó/s#23s#28s#29s#2Fs#25)ú#ú(rmú/ú%cCs"i|]}d|d›�jƒt|ƒ“qS)r½Ú02X)r$Úchr)Ú.0r=r!r!r"ú ëszNameObject.é!F)r)r*r+rcCstd|jt|ƒ||ƒƒS)zClone object into pdf_dest.r»)r r?r»)r r)r*r+r!r!r"r,îszNameObject.clone)rcCst|j|fƒS)zp Used to detect modified object. Returns: Hash considering type and value. )rLr)r r!r!r"r#úszNameObject.hash_binN)r@rArcCs$|dk rtddƒ|j|jƒƒdS)Nz/the encryption_key parameter of write_to_streamz5.0.0)rrMÚrenumber)r r@rAr!r!r"rBszNameObject.write_to_streamc Csª|djdƒ}|dkr(td|›d�dƒx||dd…D]l}|dkrlx^|jdƒD]}|d |d ›�jƒ7}qNWq6y||j|7}Wq6tk r ||jdƒ7}Yq6Xq6W|S) Nrzutf-8r¼z|j s¾t d|›d�tƒt|jdƒƒStd|›d �ƒ|‚WYdd}~XnXdS) Nr-zname read errorr²rzCode Not Foundz!Illegal character in NameObject (z-), you may need to adjust NameObject.CHARSETSrŸz.). You may need to adjust NameObject.CHARSETS.)rOr»ÚsurfixrrÚdelimiter_patternrÎÚCHARSETSr¢r0r¨r«Ústrictrr)r@r/rfÚencÚretr€r!r!r"rP-s,        zNameObject.read_from_stream)N)rÏrÐrÑ)rrCrDr•r–rÓrÒÚrangerÈrrrJrHrrIr r r rGr,r#rrBrÆrRrÎrÔrPr!r!r!r"r»âs(  $  r»)Úunicode_stringrc Cs<ytdd„|DƒƒStk r6td|dddƒ‚YnXdS)NcSsg|] }t|‘qSr!)r)rÃÚkr!r!r"ú Osz)encode_pdfdocencoding..Zpdfdocencodingr-z#does not exist in translation tabler‘r‘)rHrÉr«)rÙr!r!r"rªMsrª)4r›r¬rEr•rÚmathrÚstructrÚtypingrrrrr r r r Ú_codecsrZ _protocolsrrÚ_utilsrrrrrÚerrorsrrrÚ __author__Ú__author_email__rrKrIrUrVrr…r}rzrGr�rHr—rJržr»rªr!r!r!r"Ús6   ( }) <;31k