o
    
ziR                     @   s   d dl Z d dlmZmZmZmZ d dlmZmZm	Z	 d dl
mZmZ dedee fddZee ZG d	d
 d
ZG dd deZG dd deZdedeeef defddZdee ddfddZdS )    N)CallableIteratorMutableSequenceSequence)AnyClassVarcast)PDFExceptionPDFValueErrordatareturnc                 c   s    | E d H  d S N )r   r   r   M/home/air/biblejyuku/back/venv/lib/python3.10/site-packages/pdfminer/ccitt.py	get_bytes   s   r   c                	   @   s|   e Zd ZU eed< eegef dB ed< dddZedede	e
B d	e
ddfd
dZdeddfddZdeddfddZdS )	BitParser_stateN_acceptr   c                 C   s
   d| _ d S )Nr   )_posselfr   r   r   __init__*   s   
zBitParser.__init__rootvbitsc                 C   sz   |}d }t t|D ]&}|dkr&|d usJ || d u r"d d g||< || }|| dkr.dnd}q
|d us7J |||< d S )Nr   1   )rangelen)clsr   r   r   pbir   r   r   add-   s   zBitParser.addr   c                 C   s*   t |D ]}dD ]	}| ||@  qqd S N   @                   r   )r   
_parse_bitr   r   bytemr   r   r   	feedbytes;   s
   zBitParser.feedbytesxc                 C   sX   |r| j d n| j d }|  jd7  _t|tr|| _ d S | jd us$J | || _ d S Nr   r   )r   r   
isinstancelistr   )r   r2   r   r   r   r   r-   @   s   

zBitParser._parse_bitr   N)__name__
__module____qualname__BitParserState__annotations__r   r   r   classmethodintstrr#   bytesr1   objectr-   r   r   r   r   r   #   s   
 
 r   c                   @   s*  e Zd ZU ddgZee ed< eedd eedd eedd eed	d
 eedd eedd eedd eedd eedd eedd eedd eedd eedd eedd eedd  eed!d" eed#d$ eed%d& ddgZ	ee ed'< ee	dd( ee	dd) ee	dd* ee	dd+ ee	d,d- ee	d.d/ ee	d0d1 ee	d2d3 ee	d4d5 ee	d6d7 ee	d8d9 ee	d:d; ee	d<d= ee	d>d ee	d?d@ ee	dAdB ee	dCdD ee	dEdF ee	dGdH ee	dIdJ ee	dKdL ee	dMdN ee	dOd ee	dPdQ ee	dRdS ee	dTdU ee	dVdW ee	dXdY ee	dZd[ ee	d\d] ee	d^d_ ee	d`da ee	dbdc ee	ddde ee	dfdg ee	dhdi ee	djdk ee	dldm ee	dndo ee	dpdq ee	drds ee	dtdu ee	dvdw ee	dxdy ee	dzd{ ee	d|d} ee	d~d ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	ddá ee	ddš ee	ddǡ ee	ddɡ ee	ddˡ ee	dd͡ ee	ddϡ ee	ddѡ ee	ddӡ ee	ddա ee	ddס ee	dd١ ee	ddۡ ee	ddݡ ee	ddߡ ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ee	dd ddgZ
ee ed< ee
dd ee
dd ee
dd ee
dd ee
d,d ee
d.d ee
d0d ee
d2d ee
d4d ee
d6d ee
d8dQ ee
d:d ee
d<d ee
d>d} ee
d?d ee
dAd ee
dCd ee
dEd  ee
dGd ee
dId ee
dKd ee
dMd ee
dOd ee
dPd ee
dRd ee
dTd ee
dVd ee
dXd	 ee
dZd
 ee
d\d ee
d^d ee
d`d ee
dbd ee
ddd ee
dfd ee
dhd ee
djd ee
dld ee
dnd ee
dpd ee
drd ee
dtd ee
dvd ee
dxd ee
dzd ee
d|d ee
d~d ee
dd ee
dd ee
dd ee
dd  ee
dd! ee
dd" ee
dd# ee
dd$ ee
dd% ee
dd& ee
dd' ee
dd( ee
dd) ee
dd* ee
dd+ ee
dd, ee
dd- ee
dd ee
dd. ee
dd/ ee
dd0 ee
dd1 ee
dd2 ee
dd3 ee
dd4 ee
dd5 ee
dd6 ee
dd7 ee
dd8 ee
dd9 ee
dd: ee
dd; ee
dd< ee
dd= ee
dĐd> ee
dƐd? ee
dȐd@ ee
dʐdA ee
d̐dB ee
dΐdC ee
dАdD ee
dҐdE ee
dԐdF ee
d֐dG ee
dd١ ee
ddۡ ee
ddݡ ee
ddߡ ee
dd ee
dd ee
dd ee
dd ee
dd ee
dd ee
dd ee
dd ee
dd ddgZee edH< eedd eedIdI eed
d
 eedd eedJdJ eedKdL eedMd_ eedNd] eedOdP eedQdR eedSdT eedUdV eedWdX eedYdZ G d[d\ d\eZG d]d^ d^eZG d_d` d`eZG dadb dbeZeedc< ddeedfedgdfdhdiZdjedgdfdkdlZdmedgefdndoZdpedgefdqdrZdpedgefdsdtZduedB dgefdvdwZdgefdxdyZdzedgefd{d|Zdd}d~Zdedue e dgdfddZ!dddZ"dddZ#dedgdfddZ$dddZ%dededgdfddZ&duedgdfddZ'dS (  CCITTG4ParserNMODEr   r   r   011010h001r    0001r,   000011000010   00000110000010u
0000001111x1
0000001000x2
0000001001x3
0000001010x4
0000001011x5
0000001100x6
0000001101x7
0000001110e000000000001000000000001WHITE0011010100011101111000r+   1011   1100   1110   1111r*   10011	   10100
   00111   01000   001000      110100   110101r)   101010   101011   0100111   0001100   0001000   0010111      0000100   0101000   0101011   0010011   0100100   0011000   00000010   00000011   00011010r(   00011011!   00010010"   00010011#   00010100$   00010101%   00010110&   00010111'   00101000(   00101001)   00101010*   00101011+   00101100,   00101101-   00000100.   00000101/   000010100   000010111   010100102   010100113   010101004   010101015   001001006   001001017   010110008   010110019   01011010:   01011011;   01001010<   01001011=   00110010>   00110011?   00110100r'   11011r&   10010   010111   0110111i@  00110110i  00110111i  01100100i   01100101i@  01101000i  01100111i  	011001100i   	011001101i@  	011010010i  	011010011i  	011010100i   	011010101i@  	011010110i  	011010111i  	011011000i   	011011001i@  	011011010i  	011011011i  	010011000i   	010011001i@  	010011010i  011000i  	010011011i   00000001000i@  00000001100i  00000001101i  000000010010i   000000010011i@  000000010100i  000000010101i  000000010110i 	  000000010111i@	  000000011100i	  000000011101i	  000000011110i 
  000000011111BLACK
0000110111111000110010000110001010001000000101000011100000111	000011000
0000010111
00000110000000110011100001101000000011011000000011011100000101000000000101110000001100000001100101000001100101100001100110000001100110100000110100000000110100100000110101000000110101100001101001000001101001100001101010000001101010100001101011000001101011100000110110000000110110100001101101000001101101100000101010000000101010100000101011000000101011100000110010000000110010100000101001000000101001100000010010000000011011100000011100000000010011100000010100000000101100000000101100100000010101100000010110000000101101000000110011000000110011100001100100000001100100100000101101100000011001100000011010000000011010100000011011000000001101101000000100101000000010010110000001001100000000100110100000011100100000001110011000000111010000000011101010000001110110000000111011100000010100100000001010011000000101010000000010101010000001011010000000101101100000011001000000001100101UNCOMPRESSED010000100000000001T00T10T000	000000011T100	000000010T0000
0000000011T1000
0000000010T0000000000000011T1000000000000010c                   @      e Zd ZdS )zCCITTG4Parser.CCITTExceptionNr7   r8   r9   r   r   r   r   CCITTExceptionC      rn  c                   @   rl  )zCCITTG4Parser.EOFBNrm  r   r   r   r   EOFBF  ro  rp  c                   @   rl  )zCCITTG4Parser.InvalidDataNrm  r   r   r   r   InvalidDataI  ro  rq  c                   @   rl  )zCCITTG4Parser.ByteSkipNrm  r   r   r   r   ByteSkipL  ro  rr  _colorFwidth	bytealignr   c                 C   s"   t |  || _|| _|   d S r   )r   r   rt  ru  reset)r   rt  ru  r   r   r   r   Q  s   
zCCITTG4Parser.__init__r   c              	   C   sh   t |D ]-}zdD ]	}| ||@  q	W q | jy&   | j| _| j| _Y q | jy1   Y  d S w d S r$   )r   r-   rr  _parse_moder   rB   r   rp  r.   r   r   r   r1   W  s   zCCITTG4Parser.feedbytesmodec                 C   s   |dkr|    |   | jS |dkr#d| _| j| _| jr | jS | jS |dkr.| j	| _| j
S |dkr5| jt|trF| | |   | jS | |)Nr    rF   r   rP   r`   )_do_pass_flush_linerB   _n1_parse_horiz1r   rs  rb   r  _parse_uncompressedrY  rp  r4   r=   _do_verticalrq  )r   rx  r   r   r   rw  b  s(   


zCCITTG4Parser._parse_modenc                 C   sP   |d u r| j |  j|7  _|dk rd| _d| j | _| j| _| jr%| jS | jS )Nr'   r   r   )rq  r{  _n2rs  _parse_horiz2r   rb   r  r   r  r   r   r   r|  z  s   zCCITTG4Parser._parse_horiz1c                 C   sh   |d u r| j |  j|7  _|dk r+d| j | _| j| _| | j| j |   | jS | jr1| j	S | j
S )Nr'   r   )rq  r  rs  rw  r   _do_horizontalr{  rz  rB   rb   r  r  r   r   r   r    s   zCCITTG4Parser._parse_horiz2r   c                 C   sR   |s| j |dr!| j| _t|d | _| |dd   | jS | | | jS )NTr   r,   )	rq  
startswithrw  r   r=   rs  _do_uncompressedrB   rY  )r   r   r   r   r   r}    s   

z!CCITTG4Parser._parse_uncompressedc                 C   s    d dd | jd | j D S )N c                 s       | ]}t |V  qd S r   r>   .0r!   r   r   r   	<genexpr>      z*CCITTG4Parser._get_bits.<locals>.<genexpr>)join_curline_curposr   r   r   r   	_get_bits  s    zCCITTG4Parser._get_bitsr"   c                 C   s   |dk rdd dd | jD  S t| j|kr%d dd | jD d S d dd | jd | D d t| j|  d	 d d
d | j|d d  D  S )Nr   z[]r  c                 s   r  r   r  r  r   r   r   r    r  z-CCITTG4Parser._get_refline.<locals>.<genexpr>c                 s   r  r   r  r  r   r   r   r    r  c                 s   r  r   r  r  r   r   r   r    r  []c                 s   r  r   r  r  r   r   r   r    r  r   )r  _refliner   r>   )r   r"   r   r   r   _get_refline  s    zCCITTG4Parser._get_reflinec                 C   s8   d| _ tddg| j | _|   | j| _| j| _d S )Nr   r!   r   )	_yarrayrt  r  _reset_linerw  r   rB   r   r   r   r   r   rv    s
   zCCITTG4Parser.resetyc                 C   s   t |ddd |D  d S )Nr  c                 s   r  r   r  r  r   r   r   r    r  z,CCITTG4Parser.output_line.<locals>.<genexpr>)printr  )r   r  r   r   r   r   output_line  s   zCCITTG4Parser.output_linec                 C   s.   | j | _tddg| j | _ d| _d| _d S )Nr!   r   rD   )r  r  r  rt  r  rs  r   r   r   r   r    s   
zCCITTG4Parser._reset_linec                 C   sF   | j | jkr| | j| j |  jd7  _|   | jr!| jd S d S Nr   )rt  r  r  r  r  r  ru  rr  r   r   r   r   rz    s   zCCITTG4Parser._flush_linedxc                 C   s   | j d }	 |dkr| jdkr| j| | jkrn n|t| jks2| j|d  | jkr3| j| | jkr3n|d7 }q||7 }td| j }tdt| j|}||k r^t||D ]}| j| j|< qTn||k rpt||D ]}| j| j|< qg|| _ d| j | _d S r3   )	r  rs  r  r   maxminrt  r   r  )r   r  rR   x0r2   r   r   r   r~    s0   

zCCITTG4Parser._do_verticalc                 C   s   | j d }	 |dkr| jdkr| j| | jkrn n|t| jks2| j|d  | jkr3| j| | jkr3n|d7 }q	 |dkrL| jdkrK| j| | jkrKn n|t| jkse| j|d  | jkrf| j| | jkrfn|d7 }q9t| j |D ]}| j| j|< qq|| _ d S r3   )r  rs  r  r   r   r  )r   rR   r2   r   r   r   ry    s4   



zCCITTG4Parser._do_passn1n2c                 C   s   | j dk rd| _ | j }t|D ]}t| j|kr n| j| j|< |d7 }qt|D ]}t| j|kr4 nd| j | j|< |d7 }q)|| _ d S )Nr   r   )r  r   r   r  rs  )r   r  r  r2   _r   r   r   r    s   



zCCITTG4Parser._do_horizontalc                 C   s4   |D ]}t || j| j< |  jd7  _|   qd S r  )r=   r  r  rz  )r   r   cr   r   r   r    s
   
zCCITTG4Parser._do_uncompressedFr6   )(r7   r8   r9   rB   r   r:   r;   r   r#   rb   r  rY  r	   rn  rp  rq  rr  r=   boolr   r?   r1   r@   rw  r   r|  r  r>   r}  r  r  rv  r   r  r  rz  r~  ry  r  r  r   r   r   r   rA   J   s  
 
$$ rA   c                	   @   sT   e Zd Z		ddedededdfddZdefd	d
Zdedee ddfddZ	dS )CCITTFaxDecoderFrt  ru  reversedr   Nc                 C   s    t j| ||d || _d| _d S )Nru      )rA   r   r  _buf)r   rt  ru  r  r   r   r   r     s   
zCCITTFaxDecoder.__init__c                 C   s   | j S r   )r  r   r   r   r   close  s   zCCITTFaxDecoder.closer  r   c                 C   sz   t  ddgt|d d  }| jrdd |D }t|D ]\}}|r1||d   d|d  7  < q|  j| 7  _d S )NBr   rl   r*   c                 S   s   g | ]}d | qS )r   r   r  r   r   r   
<listcomp>%  s    z/CCITTFaxDecoder.output_line.<locals>.<listcomp>r%   )r  r   r  	enumerater  tobytes)r   r  r   arrr"   r!   r   r   r   r  "  s   zCCITTFaxDecoder.output_line)FF)
r7   r8   r9   r=   r  r   r?   r  r   r  r   r   r   r   r    s    

r  paramsc                 C   sl   | d}|dkr)tt| d}tt| d}tt| d}t|||d}nt|||  | S )NKrD   ColumnsEncodedByteAlignBlackIs1)ru  r  )getr   r=   r  r  r
   r1   r  )r   r  r  colsru  r  parserr   r   r   ccittfaxdecode,  s   

r  argvc           
   	   C   s   | dd  sdd l }|  d S G dd dt}| dd  D ]3}t|d$}|d\}}}}}}|t|}	|	|  |	  W d    n1 sLw   Y  qd S )Nr   r   c                   @   sH   e Zd ZddededdfddZded	ee ddfd
dZdddZdS )zmain.<locals>.ParserFrt  ru  r   Nc                 S   s.   dd l }tj| ||d || jdf| _d S )Nr   r  i  )pygamerA   r   Surfacert  img)r   rt  ru  r  r   r   r   r   B  s   zmain.<locals>.Parser.__init__r  r   c                 S   s@   t |D ]\}}|r| j||fd q| j||fd qd S )N)   r  r  )r   r   r   )r  r  set_at)r   r  r   r2   r!   r   r   r   r  H  s
   z main.<locals>.Parser.output_linec                 S   s   dd l }|j| jd d S )Nr   zout.bmp)r  imagesaver  )r   r  r   r   r   r  O  s   zmain.<locals>.Parser.closer  r6   )	r7   r8   r9   r=   r  r   r   r  r  r   r   r   r   ParserA  s    r  rb.)	unittestmainrA   opensplitr=   r1   readr  )
r  r  r  pathfpr  _kw_hr  r   r   r   r  :  s   
r  )r  collections.abcr   r   r   r   typingr   r   r   pdfminer.pdfexceptionsr	   r
   r?   r=   r   r:   r   rA   r  dictr>   r@   r  r5   r  r   r   r   r   <module>   s   '   M