Ë
    vl�jí,  ã                   óx  — d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZ g d¢ZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdededefd„Zdededefd„Zdededefd„Zdededefd„Z de!de"defd„Z#e$e!eez  f   Z%e$e!ee&e   z  e&e   z  f   Z'e$e!eez  e"z  e%z  e'z  f   Z( G d„ d «      Z) G d!„ d"«      Z*y)#é    N)ÚIterable)ÚcalcsizeÚpackÚunpack)ÚBinaryIOÚClassVarÚcast)ÚPDFValueError))ú>LÚnumber)ú>BÚflags)r   Úretention_flags)r   Ú
page_assoc)r   Údata_lengthé€   é@   é?   éà   iÿÿÿé   l   ÿÿ é&   é1   é3   s   —JB2

é   Úbit_posÚvalueÚreturnc                 ó$   — t        || z	  dz  «      S )Nr   ©Úbool)r   r   s     úD/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/jbig2.pyÚbit_setr"   (   s   € Ü�˜'Ñ! QÑ&Ó'Ð'ó    Úflagc                 ó   — t        | |z  «      S ©Nr   )r$   r   s     r!   Ú
check_flagr'   ,   s   € Ü��u‘ÓÐr#   Úmaskc                 ód   — t        d«      D ]  }t        || «      sŒ|| z  |z	  c S  t        d«      ‚©Né   zInvalid mask or value©Úranger"   r
   ©r(   r   r   s      r!   Úmasked_valuer/   0   s<   € Ü˜“9ò -ˆÜ�7˜DÕ!Ø˜D‘L WÑ,Ò,ð-ô Ð/Ó
0Ð0r#   c                 ój   — t        d«      D ]  }t        || «      sŒ|| |z	  z  |z  c S  t        d«      ‚r*   r,   r.   s      r!   Ú
mask_valuer1   8   sA   € Ü˜“9ò :ˆÜ�7˜DÕ!Ø˜T W™_Ñ-°'Ñ9Ò9ð:ô Ð/Ó
0Ð0r#   ÚformatÚbufferc                 óX   — | dv sJ ‚t        t        t           t        | |«      «      \  }|S )N>   r   ú>Ir   )r	   ÚtupleÚintr   )r2   r3   Úresults      r!   Ú
unpack_intr9   @   s/   € ØÐ'Ñ'Ð'Ð'Ü”Eœ#‘J¤ v¨vÓ 6Ó7�H€VØ€Mr#   c                   óž   — e Zd ZdZdeddfd„Zdee   fd„Zde	fd„Z
ded	ed
edefd„Zded	ed
edefd„Zdeded
edefd„Zdeded
edefd„Zy)ÚJBIG2StreamReaderz&Read segments from a JBIG2 byte streamÚstreamr   Nc                 ó   — || _         y r&   ©r<   ©Úselfr<   s     r!   Ú__init__zJBIG2StreamReader.__init__Q   ó	   € Øˆ�r#   c                 ó’  — g }| j                  «       s´i }t        D ]v  \  }}t        |«      }| j                  j	                  |«      }t        |«      |k  rd|d<    n8t        ||«      }t        | d|› �d «      }t        |«      r
 ||||«      }|||<   Œx |j                  d«      s|j                  |«       | j                  «       sŒ´|S )NTÚ_errorÚparse_)Úis_eofÚ
SEG_STRUCTr   r<   ÚreadÚlenr9   ÚgetattrÚcallableÚgetÚappend)	r@   ÚsegmentsÚsegmentÚfield_formatÚnameÚ	field_lenÚfieldr   Úparsers	            r!   Úget_segmentszJBIG2StreamReader.get_segmentsT   sË   € Ø')ˆØ—+‘+”-Ø$&ˆGÜ&0ò 
&Ñ"�˜dÜ$ \Ó2�	ØŸ™×(Ñ(¨Ó3�Ü�u“: 	Ò)Ø(,�G˜HÑ%ÙÜ" <°Ó7�Ü  ¨°¨v ¸Ó=�Ü˜FÔ#Ù" 7¨E°5Ó9�EØ %�˜’ð
&ð —;‘;˜xÔ(Ø—‘ Ô(ð —+‘+•-ð  ˆr#   c                 ó–   — | j                   j                  d«      dk(  ry| j                   j                  dt        j                  «       y)Nr   r#   TéÿÿÿÿF)r<   rH   ÚseekÚosÚSEEK_CUR)r@   s    r!   rF   zJBIG2StreamReader.is_eofh   s7   € Ø�;‰;×Ñ˜AÓ #Ò%Øà�K‰K×Ñ˜R¤§¡Ô-Ør#   rO   r   rS   c                 ób   — t        t        |«      t        t        |«      t        t        |«      dœS )N)ÚdeferredÚpage_assoc_longÚtype)r'   ÚHEADER_FLAG_DEFERREDÚHEADER_FLAG_PAGE_ASSOC_LONGr/   ÚSEG_TYPE_MASK)r@   rO   r   rS   s       r!   Úparse_flagszJBIG2StreamReader.parse_flagso   s.   € ô #Ô#7¸Ó?Ü)Ô*EÀuÓMÜ ¤°Ó6ñ
ð 	
r#   c                 ó  — t        t        |«      }g }g }|t        k  r,t        d«      D ]  }|j	                  t        ||«      «       Œ nµ|| j                  j                  d«      z  }t        d|«      }t        t        |«      }t        j                  |dz   dz  «      }t        |«      D ]R  }	t        d| j                  j                  d«      «      }
t        d«      D ]  }|j	                  t        ||
«      «       Œ ŒT |d   }t        |t        «      sJ ‚|d	k  rd}n
|d
k  rd}nd}t        |«      }t        |«      D ]:  }| j                  j                  |«      }t        ||«      }|j	                  |«       Œ< |||dœS )Né   é   r   r   é   r   r   r   é   é   r5   )Ú	ref_countÚretain_segmentsÚref_segments)r/   ÚREF_COUNT_SHORT_MASKÚREF_COUNT_LONGr-   rM   r"   r<   rH   r9   ÚREF_COUNT_LONG_MASKÚmathÚceilÚ
isinstancer7   r   )r@   rO   r   rS   ri   rj   rk   r   Úret_bytes_countÚ_ret_byte_indexÚret_byteÚseg_numÚ
ref_formatÚref_sizeÚ
_ref_indexÚref_dataÚrefs                    r!   Úparse_retention_flagsz'JBIG2StreamReader.parse_retention_flags{   sŽ  € ô !Ô!5°uÓ=ˆ	ØˆØˆà”~Ò%Ü  ›8ò @�Ø×&Ñ&¤w¨w¸Ó'>Õ?ñ@ð �T—[‘[×%Ñ% aÓ(Ñ(ˆEÜ" 4¨Ó/ˆIÜ$Ô%8¸)ÓDˆIÜ"Ÿi™i¨°Q©¸!Ñ(;Ó<ˆOÜ#(¨Ó#9ò G�Ü% d¨D¯K©K×,<Ñ,<¸QÓ,?Ó@�Ü$ Q›xò G�GØ#×*Ñ*¬7°7¸HÓ+EÕFñGðGð
 ˜(Ñ#ˆÜ˜'¤3Ô'Ð'Ð'Ø�cŠ>Ø‰JØ˜ÒØ‰JàˆJä˜JÓ'ˆä 	Ó*ò 	%ˆJØ—{‘{×'Ñ'¨Ó1ˆHÜ˜Z¨Ó2ˆCØ×Ñ Õ$ð	%ð #Ø.Ø(ñ
ð 	
r#   Úpagec                 ó†   — t        t        |d   «      d   r*|| j                  j                  d«      z  }t	        d|«      }|S )Nr   r]   re   r   )r	   ÚJBIG2SegmentFlagsr<   rH   r9   )r@   rO   r|   rS   s       r!   Úparse_page_assocz"JBIG2StreamReader.parse_page_assoc¨   sB   € ÜÔ! 7¨7Ñ#3Ó4Ð5FÒGØ�T—[‘[×%Ñ% aÓ(Ñ(ˆEÜ˜d EÓ*ˆDØˆr#   Úlengthc                 ó¨   — |rOt        t        |d   «      d   t        k(  r|t        k(  rt	        d«      ‚| j
                  j                  |«      |d<   |S )Nr   r^   z:Working with unknown segment length is not implemented yetÚraw_data)r	   r~   ÚSEG_TYPE_IMMEDIATE_GEN_REGIONÚDATA_LEN_UNKNOWNÚNotImplementedErrorr<   rH   )r@   rO   r€   rS   s       r!   Úparse_data_lengthz#JBIG2StreamReader.parse_data_length®   s]   € ñ äÔ&¨°Ñ(8Ó9¸&ÑAÜ0ò1àÔ-Ò-Ü)ØPóð ð '+§k¡k×&6Ñ&6°vÓ&>�˜
Ñ#àˆr#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rA   ÚlistÚJBIG2SegmentrU   r    rF   r7   Úbytesr~   rb   ÚJBIG2RetentionFlagsr{   r   r†   © r#   r!   r;   r;   N   sÙ   „ Ù0ð˜xð ¨Dó ð˜d <Ñ0ó ð(˜ó ð

àð

ð ð

ð ð	

ð
 
ó

ð+
àð+
ð ð+
ð ð	+
ð
 
ó+
ðZ¨ð ¸Cð Èð ÐRUó ðàðð ðð ð	ð
 
ôr#   r;   c                   ó  — e Zd ZU dZd eee   g «       eee   g «      dœZe	e
   ed<   deddfd„Z	 dd	ee   d
edefd„Z	 dd	ee   d
edefd„Zdedefd„Zdededefd„Zde
dedefd„Zdededefd„Zdededefd„Zdedefd„Zy)ÚJBIG2StreamWriterz.Write JBIG2 segments to a file in JBIG2 formatr   )ri   rk   rj   ÚEMPTY_RETENTION_FLAGSr<   r   Nc                 ó   — || _         y r&   r>   r?   s     r!   rA   zJBIG2StreamWriter.__init__Ë   rB   r#   rN   Úfix_last_pagec                 óø  — d}d }d }|D ]™  }| j                  |«      }| j                  j                  |«       |t        |«      z  }t	        t
        d z  |d   «      }|sŒVt	        t
        |j                  d«      «      }t	        t        |d   «      d   t        k(  rd }Œ•|sŒ˜|}Œ› |rS|rQ|�O| j                  |dz   |«      }| j                  |«      }| j                  j                  |«       |t        |«      z  }|S )Nr   r   r   r   r^   r   )
Úencode_segmentr<   ÚwriterI   r	   r7   rL   r~   ÚSEG_TYPE_END_OF_PAGEÚget_eop_segment)	r@   rN   r”   Údata_lenÚcurrent_pageru   rO   ÚdataÚseg_pages	            r!   Úwrite_segmentsz JBIG2StreamWriter.write_segmentsÎ   s  € ð
 ˆØ#'ˆØ"ˆàò 	,ˆGØ×&Ñ& wÓ/ˆDØ�K‰K×Ñ˜dÔ#Øœ˜D›	Ñ!ˆHäœ3 ™: w¨xÑ'8Ó9ˆGâÜ¤ W§[¡[°Ó%>Ó?�ô Ô*¨G°GÑ,<Ó=¸fÑEÜ+ò,ð $(‘LÚØ#+‘Lð!	,ñ$ ™\¨wÐ/BØ×*Ñ*¨7°Q©;¸ÓEˆGØ×&Ñ& wÓ/ˆDØ�K‰K×Ñ˜dÔ#Øœ˜D›	Ñ!ˆHàˆr#   c                 ó´  — t         }t        }|t        d|«      z  }t        dd«      }||z  }| j                  j	                  |«       t        |«      }|| j                  ||«      z  }d}|D ]  }t        t        |d   «      }Œ |rdnd}	| j                  ||	z   «      }
| j                  |
«      }| j                  j	                  |«       |t        |«      z  }|S )Nr   r   r   r   r   é   )ÚFILE_HEADER_IDÚFILE_HEAD_FLAG_SEQUENTIALr   r<   r—   rI   rž   r	   r7   Úget_eof_segmentr–   )r@   rN   r”   ÚheaderÚheader_flagsÚnumber_of_pagesrš   ru   rO   Úseg_num_offsetÚeof_segmentrœ   s               r!   Ú
write_filezJBIG2StreamWriter.write_fileñ   sâ   € ô
  ˆÜ0ˆØ”$�t˜\Ó*Ñ*ˆô ˜t Q›-ˆØ�/Ñ!ˆØ�‰×Ñ˜&Ô!Ü�v“;ˆà�D×'Ñ'¨°-Ó@Ñ@ˆàˆØò 	3ˆGÜœ3 ¨Ñ 1Ó2‰Gð	3ñ ,™°ˆØ×*Ñ*¨7°^Ñ+CÓDˆØ×"Ñ" ;Ó/ˆà�‰×Ñ˜$ÔØ”C˜“IÑˆàˆr#   rO   c                 ó´   — d}t         D ]L  \  }}|j                  |«      }t        | d|› �d «      }t        |«      r
 |||«      }nt	        ||«      }||z  }ŒN |S )Nr#   Úencode_)rG   rL   rJ   rK   r   )r@   rO   rœ   rP   rQ   r   ÚencoderrS   s           r!   r–   z JBIG2StreamWriter.encode_segment  sn   € ØˆÜ",ò 	ÑˆL˜$Ø—K‘K Ó%ˆEÜ˜d g¨d¨VÐ$4°dÓ;ˆGÜ˜Ô Ù  wÓ/‘ä˜\¨5Ó1�Ø�E‰M‰Dð	ð ˆr#   r   c                 ó  — d}|j                  d«      r	|t        z  }d|v r||d   rt        n|z  }n.|t        t        |j                  dd«      «      dkD  rt        n|z  }|t        t        |d   «      z  }t        d|«      S )Nr   r\   r]   r|   éÿ   r^   r   )rL   r_   r`   r	   r7   r1   ra   r   )r@   r   rO   r   s       r!   Úencode_flagszJBIG2StreamWriter.encode_flags  sŒ   € ØˆØ�9‰9�ZÔ ØÔ)Ñ)ˆEà Ñ%Ø°EÐ:KÒ4LÕ0ÐRWÑW‰Eàäœ˜WŸ[™[¨°Ó3Ó4°sÒ:õ ,àñˆEð 	”œM¨5°©=Ó9Ñ9ˆä�D˜%Ó Ð r#   c                 ó0  — g }d}|d   }t        |t        «      sJ ‚t        t        t           |j                  dg «      «      }|dk  r@t        t        |«      }t        |«      D ]  \  }}	|	sŒ	|d|z  z  }Œ |j                  |«       n›t        j                  |dz   dz  «      }
dd|
z  z   }t        t        t        «      d	z  }|j                  |«       t        |
«      D ]B  }d
}||dz  |dz  dz    }t        |«      D ]  \  }}||rd|z  n|z  }Œ |j                  |«       ŒD t        t        t           |j                  dg «      «      }t        t        |d   «      }|dk  rd}n
|dk  rd}nd}|D ]  }||z  }|j                  |«       Œ t        |g|¢­Ž S )Nr   ri   rj   é   r   rf   r   ÚBé   r   rk   r   rg   rh   ÚIÚL)rq   r7   r	   r‹   r    rL   r1   rl   Ú	enumeraterM   ro   rp   rm   r-   r   )r@   r   rO   r   Úflags_formatri   rj   Ú
flags_byteÚ	ref_indexÚ
ref_retainÚbytes_countÚflags_dwordÚ
byte_indexrt   Úret_partr   Úret_segrk   ru   rv   rz   s                        r!   Úencode_retention_flagsz(JBIG2StreamWriter.encode_retention_flags-  sÄ  € ð
 ˆØˆØ˜+Ñ&ˆ	Ü˜)¤SÔ)Ð)Ð)Üœt¤D™z¨5¯9©9Ð5FÈÓ+KÓLˆà˜Š>Ü#Ô$8¸)ÓDˆJÜ)2°?Ó)Cò 1Ñ%�	˜:ÚØ ! y¡.Ñ0‘Jð1ð �L‰L˜Õ$äŸ)™) Y°¡]°aÑ$7Ó8ˆKØ 3¨Ñ#4Ñ5ˆLÜ$Ô%9¼>ÓJÈbÑPˆKØ�L‰L˜Ô%ä# KÓ0ò '�
Ø�Ø*¨:¸©>¸JÈ¹NÈQÑ<NÐO�Ü(1°(Ó(;ò FÑ$�G˜WØ±  W¢¸XÑE‘HðFð —‘˜XÕ&ð'ô œD¤™I u§y¡y°ÀÓ'DÓEˆä”s˜G HÑ-Ó.ˆØ�cŠ>Ø‰JØ˜ÒØ‰JàˆJàò 	ˆCØ˜JÑ&ˆLØ�L‰L˜Õð	ô �LÐ) 5Ò)Ð)r#   c                 óJ   — t        d|«      }|t        t        |d   «      z  }|S )Nr   r‚   )r   r	   r�   )r@   r   rO   rœ   s       r!   Úencode_data_lengthz$JBIG2StreamWriter.encode_data_length\  s)   € Ü�D˜%Ó ˆØ””U˜G JÑ/Ó0Ñ0ˆØˆr#   Ú
seg_numberÚpage_numberc                 ó>   — ddt         dœ||dt        j                  dœS ©Nr   F)r\   r^   r#   )r   r   r   r   r‚   r   )r˜   r‘   r’   )r@   rÃ   rÄ   s      r!   r™   z!JBIG2StreamWriter.get_eop_segmenta  s*   € àØ"'Ô1EÑFØ Ø%ØÜ0×FÑFñ
ð 	
r#   c                 ó>   — ddt         dœ|ddt        j                  dœS rÆ   )ÚSEG_TYPE_END_OF_FILEr‘   r’   )r@   rÃ   s     r!   r£   z!JBIG2StreamWriter.get_eof_segmentk  s*   € àØ"'Ô1EÑFØ ØØÜ0×FÑFñ
ð 	
r#   )T)r‡   rˆ   r‰   rŠ   r	   r‹   r7   r    r’   r   rŽ   Ú__annotations__r   rA   r   rŒ   rž   r©   r�   r–   r~   r¯   rÀ   rÂ   r™   r£   r�   r#   r!   r‘   r‘   Â   s<  … Ù8ð Ù˜T #™Y¨Ó+Ù  T¡
¨BÓ/ñ<Ð˜8Ð$7Ñ8ó ð˜xð ¨Dó ð #ñ!à˜<Ñ(ð!ð ð!ð 
ó	!ðL #ñà˜<Ñ(ðð ðð 
ó	ð<
 lð 
°uó 
ð!Ð"3ð !¸lð !Èuó !ð$-*à"ð-*ð ð-*ð 
ó	-*ð^¨ð °lð Àuó ð

¨#ð 
¸Cð 
ÀLó 
ð
¨#ð 
°,ô 
r#   r‘   )+ro   rY   Úcollections.abcr   Ústructr   r   r   Útypingr   r   r	   Úpdfminer.pdfexceptionsr
   rG   r_   r`   ra   rl   rn   rm   r„   rƒ   r˜   rÈ   r¡   r¢   r7   r    r"   r'   r/   r1   Ústrr�   r9   Údictr~   r‹   rŽ   rŒ   r;   r‘   r�   r#   r!   ú<module>rÐ      sk  ðÛ Û 	Ý $ß )Ñ )ß +Ñ +å 0ò€
ð "Ð Ø(Ð à€à!Ð Ø Ð Ø€àÐ ð !#Ð ØÐ ØÐ ð 5€Ø&Ð ð(�Sð ( ð (¨ó (ð�Sð  ð ¨ó ð1�sð 1 3ð 1¨3ó 1ð1�Sð 1 ð 1¨ó 1ð�sð  Eð ¨có ð ˜˜c D™j˜Ñ)Ð Ø˜3  d¨3¡i¡°$°t±*Ñ <Ð<Ñ=Ð ØØØˆ3�J�ÑÐ*Ñ*Ð-@Ñ@ðBñ€÷qñ q÷hq
ò q
r#   