+
    TiB`                        R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^ RI
HtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHtHtHtHt ^ RIHtH t H!t!H"t" R	R
.t#R.t$^RRRRR^RRRRRR]! 4       RRRRRRR3R R llt%^RRRRR^RRRRRR]! 4       RRRRRRR3R R llt&R R lt'R"R R llt(R R lt)R#R R llt*R$R R llt+R%R R llt,R%R R llt-R"R  R! llt.R# )&zi
pdf2image is a light wrapper for the poppler-utils tools that can convert your
PDFs into Pillow images.
N)PopenPIPETimeoutExpired)AnyUnionTupleListDictCallable)PurePath)Image)uuid_generatorcounter_generatorThreadSafeGenerator)parse_buffer_to_pgmparse_buffer_to_ppmparse_buffer_to_jpegparse_buffer_to_png)PDFInfoNotInstalledErrorPDFPageCountErrorPDFSyntaxErrorPDFPopplerTimeoutErrorpngtiffPagesppmFc          /         V ^8  d   QhR\         \        \        3,          R\        R\         \        \        3,          R\        R\        R\        R\        R\        R	\        R
\        R\
        R\
        R\
        R\
        R\        R\         \        \        3,          R\
        R\         \        \        3,          R\
        R\
        R\        R\
        R\        \        P                  ,          /# )   pdf_pathdpioutput_folder
first_page	last_pagefmtjpegoptthread_countuserpwownerpwuse_cropboxstricttransparentsingle_fileoutput_filepoppler_path	grayscalesize
paths_onlyuse_pdftocairotimeouthide_annotationsreturn)
r   strr   intr	   boolr   r   r   r   )formats   "^/home/kuhnn/.local/share/uv/tools/nano-pdf/lib/python3.14/site-packages/pdf2image/pdf2image.py__annotate__r:   %   s4    m mCM"m	m h'm 	m
 m 
m m m m m m m m m m  X&!m" #m$ s

%m& 'm( )m* +m, -m. 
%++/m    c                   V'       d
   VR8X  d   Rp\        V \        4      '       d   V P                  4       p \        V\        4      '       d   VP                  4       p\        V\        4      '       d   VP                  4       p\        WWR7      R,          p\	        VV4      w  ppppT;'       g    T;'       g    T;'       d
    V\
        9   p\        V'       d   RMRVR7      w  ppV^ 8X  d
   V^98:  d   RpV^ 8X  d
   V^S8:  d   Rp\        V\        P                  4      '       g9   \        V\        4      '       g#   V'       d   \        V.4      p^pM\        V4      pV^8  d   ^pVe   V^8  d   ^pVe   VV8  d   TpW48  d   . #  RpVf    V'       d   \        P                  ! 4       pR	pWC,
          ^,           pVV8  d   TpVV,          pTp . p!\        V4       EF  p"\        V4      p#VV,          \!        V^ 8  4      ,           p$\#        R
\%        V4      V .VV V V$,           ^,
          VVV#VV	V
VVVVV4      p%V'       d)   V'       d   \'        R4      h\)        RV4      .V%,           p%M\)        RV4      .V%,           p%V V$,           p V\!        V^ 8  4      ,          p\*        P,                  P/                  4       p&Ve$   VR,           V&P1                  RR4      ,           V&R&   Rp'\2        P4                  ! 4       R8X  d=   \6        P8                  ! 4       p'V';P:                  \6        P<                  ,          un        V!P?                  V#\A        V%V&\B        \B        V'R7      34       EK  	  . p(V! Fr  w  p)p* V*PE                  VR7      w  p+p,RT,9   d$   T'       d   \M        T,PO                  RR4      4      hTe   T(\Q        TT)TTTR7      ,          p(Kc  T(T! T+4      ,          p(Kt  	  V'       d   \R        PT                  ! V4       V(#   \F         d0    T*PI                  4        T*PE                  4       w  p-p.\K        R4      hi ; i  X'       d   \R        PT                  ! T4       i i ; i)a  Function wrapping pdftoppm and pdftocairo

:param pdf_path: Path to the PDF that you want to convert
:type pdf_path: Union[str, PurePath]
:param dpi: Image quality in DPI (default 200), defaults to 200
:type dpi: int, optional
:param output_folder: Write the resulting images to a folder (instead of directly in memory), defaults to None
:type output_folder: Union[str, PurePath], optional
:param first_page: First page to process, defaults to None
:type first_page: int, optional
:param last_page: Last page to process before stopping, defaults to None
:type last_page: int, optional
:param fmt: Output image format, defaults to "ppm"
:type fmt: str, optional
:param jpegopt: jpeg options `quality`, `progressive`, and `optimize` (only for jpeg format), defaults to None
:type jpegopt: Dict, optional
:param thread_count: How many threads we are allowed to spawn for processing, defaults to 1
:type thread_count: int, optional
:param userpw: PDF's password, defaults to None
:type userpw: str, optional
:param ownerpw: PDF's owner password, defaults to None
:type ownerpw: str, optional
:param use_cropbox: Use cropbox instead of mediabox, defaults to False
:type use_cropbox: bool, optional
:param strict: When a Syntax Error is thrown, it will be raised as an Exception, defaults to False
:type strict: bool, optional
:param transparent: Output with a transparent background instead of a white one, defaults to False
:type transparent: bool, optional
:param single_file: Uses the -singlefile option from pdftoppm/pdftocairo, defaults to False
:type single_file: bool, optional
:param output_file: What is the output filename or generator, defaults to uuid_generator()
:type output_file: Any, optional
:param poppler_path: Path to look for poppler binaries, defaults to None
:type poppler_path: Union[str, PurePath], optional
:param grayscale: Output grayscale image(s), defaults to False
:type grayscale: bool, optional
:param size: Size of the resulting image(s), uses the Pillow (width, height) standard, defaults to None
:type size: Union[Tuple, int], optional
:param paths_only: Don't load image(s), return paths instead (requires output_folder), defaults to False
:type paths_only: bool, optional
:param use_pdftocairo: Use pdftocairo instead of pdftoppm, may help performance, defaults to False
:type use_pdftocairo: bool, optional
:param timeout: Raise PDFPopplerTimeoutError after the given time, defaults to None
:type timeout: int, optional
:param hide_annotations: Hide PDF annotations in the output, defaults to False
:type hide_annotations: bool, optional
:raises NotImplementedError: Raised when conflicting parameters are given (hide_annotations for pdftocairo)
:raises PDFPopplerTimeoutError: Raised after the timeout for the image processing is exceeded
:raises PDFSyntaxError: Raised if there is a syntax error in the PDF and strict=True
:return: A list of Pillow images, one for each page between first_page and last_page
:rtype: List[Image.Image]
r   r   )r-   r   
pdftocairopdftoppmNFTz-rz4Hide annotations flag not implemented in pdftocairo.:LD_LIBRARY_PATH Windows)envstdoutstderrstartupinfor2   zRun poppler timeout.s   Syntax Errorutf8ignore)	in_memory)+
isinstancer   as_posixpdfinfo_from_path_parse_formatTRANSPARENT_FILE_TYPES_get_poppler_versiontypesGeneratorTyper   iterr   tempfilemkdtemprangenextr6   _build_commandr5   NotImplementedError_get_command_pathosenvironcopygetplatformsystem
subprocessSTARTUPINFOdwFlagsSTARTF_USESHOWWINDOWappendr   r   communicater   killr   r   decode_load_from_output_foldershutilrmtree)/r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   
page_count
parsed_fmtfinal_extensionparse_buffer_funcuse_pdfcairo_formatuse_pdfcairopoppler_version_majorpoppler_version_minorauto_temp_dirremindercurrent_page	processes_thread_output_filethread_page_countargsrC   rF   imagesuidprocdataerroutserrss/   &&&&&&&&&&&&&&&&&&&&&&                         r9   convert_from_pathr   %   sn   Z #, (H%%$$&-**%..0,))#,,."'J
 KXYKGJ!24G 	 	B 	B	B 	B@@J*@@  4H$*<400 !&;r&A!&;r&A  k5#6#677
(A A }-KL+K8KaZ!^
I
2		a) \$,,.M M +a/
*$%L,!	|$A!%k!2 !+l :SA=N N!s3x*0014" D$ #-N  *,EFM)*lCDtK (*;;LHqL))H**//#C' 3&1BB)GG %& K I-(446##z'F'FF#&#d4[a %r "ICE ,,W,=	c #%&$SZZ%ABB(2!#+  +D11) #, MM-(M- " E		!--/
d,-CDDE& MM-( s9   Q B4Q D'Q 9PQ AQ :QQ !Q&c          /         V ^8  d   QhR\         R\        R\        \        \        3,          R\        R\        R\        R\
        R\        R	\        R
\        R\        R\        R\        R\        R\        \        \        3,          R\        \        \        3,          R\        R\        \        \        3,          R\        R\        R\        R\        R\        \        P                  ,          /# )r   pdf_filer   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   )
bytesr6   r   r5   r   r	   r7   r   r   r   )r8   s   "r9   r:   r:     s4    l! l!l!	l! h'l! 	l!
 l! 
l! l! l! l! l! l! l! l! l! sH}%l!  X&!l!" #l!$ s

%l!& 'l!( )l!* +l!, -l!. 
%++/l!r;   c                   \         P                  ! 4       w  pp \        VR4      ;_uu_ 4       pVP                  V 4       VP	                  4        \        VP                  3/ RVbRVbRVbRVbRVbRVbRVbR	VbR
V	bRV
bRVbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVb uuRRR4       \        P                  ! V4       \        P                  ! V4       #   + '       g   i     M; i \        P                  ! T4       \        P                  ! T4       R#   \        P                  ! T4       \        P                  ! T4       i ; i)a  Function wrapping pdftoppm and pdftocairo.

:param pdf_bytes: Bytes of the PDF that you want to convert
:type pdf_bytes: bytes
:param dpi: Image quality in DPI (default 200), defaults to 200
:type dpi: int, optional
:param output_folder: Write the resulting images to a folder (instead of directly in memory), defaults to None
:type output_folder: Union[str, PurePath], optional
:param first_page: First page to process, defaults to None
:type first_page: int, optional
:param last_page: Last page to process before stopping, defaults to None
:type last_page: int, optional
:param fmt: Output image format, defaults to "ppm"
:type fmt: str, optional
:param jpegopt: jpeg options `quality`, `progressive`, and `optimize` (only for jpeg format), defaults to None
:type jpegopt: Dict, optional
:param thread_count: How many threads we are allowed to spawn for processing, defaults to 1
:type thread_count: int, optional
:param userpw: PDF's password, defaults to None
:type userpw: str, optional
:param ownerpw: PDF's owner password, defaults to None
:type ownerpw: str, optional
:param use_cropbox: Use cropbox instead of mediabox, defaults to False
:type use_cropbox: bool, optional
:param strict: When a Syntax Error is thrown, it will be raised as an Exception, defaults to False
:type strict: bool, optional
:param transparent: Output with a transparent background instead of a white one, defaults to False
:type transparent: bool, optional
:param single_file: Uses the -singlefile option from pdftoppm/pdftocairo, defaults to False
:type single_file: bool, optional
:param output_file: What is the output filename or generator, defaults to uuid_generator()
:type output_file: Any, optional
:param poppler_path: Path to look for poppler binaries, defaults to None
:type poppler_path: Union[str, PurePath], optional
:param grayscale: Output grayscale image(s), defaults to False
:type grayscale: bool, optional
:param size: Size of the resulting image(s), uses the Pillow (width, height) standard, defaults to None
:type size: Union[Tuple, int], optional
:param paths_only: Don't load image(s), return paths instead (requires output_folder), defaults to False
:type paths_only: bool, optional
:param use_pdftocairo: Use pdftocairo instead of pdftoppm, may help performance, defaults to False
:type use_pdftocairo: bool, optional
:param timeout: Raise PDFPopplerTimeoutError after the given time, defaults to None
:type timeout: int, optional
:param hide_annotations: Hide PDF annotations in the output, defaults to False
:type hide_annotations: bool, optional
:raises NotImplementedError: Raised when conflicting parameters are given (hide_annotations for pdftocairo)
:raises PDFPopplerTimeoutError: Raised after the timeout for the image processing is exceeded
:raises PDFSyntaxError: Raised if there is a syntax error in the PDF and strict=True
:return: A list of Pillow images, one for each page between first_page and last_page
:rtype: List[Image.Image]
wbr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   N)
rT   mkstempopenwriteflushr   namer[   closeremove)r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   fhtemp_filenamefs   &&&&&&&&&&&&&&&&&&&&&&   r9   convert_from_bytesr     s   Z !((*B!-&&!GGHGGI$ , &	
 $    *    (  ( ( (  *!" $#$ %& &'(  .)*  +, "2- '&8 	
		- ; '&&8 	
		-  	
		- s#   D A4C"
D C)	$D .E	c          !      2   V ^8  d   QhR\         R\        R\        R\        R\        R\        R\        R\        R	\        R
\        R\        R\        R\        R\
        \        \        \        \        3,          3,          R\        R\         \        ,          /# )r   r{   r    r!   r"   r#   r$   r,   r&   r'   r(   r*   r+   r.   r/   r3   r4   )r   r5   r6   r	   r7   r   r   )r8   s   "r9   r:   r:     s     G G
GG G 	G
 
G G G G G G G G G U38_$
%G G  
#Y!Gr;   c           	         V	'       d   V P                  R 4       V'       d   V P                  R4       V
'       d   V\        9   d   V P                  R4       Ve   V P                  R\        V4      .4       Ve   V P                  R\        V4      .4       VR9  d   V P                  RV,           4       VR9   d%   V'       d   V P                  R\	        V4      .4       V'       d   V P                  R4       Ve/   V P                  \
        P                  P                  W4      4       Ve   V P                  RV.4       Ve   V P                  R	V.4       V'       d   V P                  R
4       Vf    V # \        V\        4      '       d   \        V4      ^8X  d   V^ ,          e.   V P                  R\        \        V^ ,          4      4      .4       MV P                  R\        R4      .4       V^,          e/   V P                  R\        \        V^,          4      4      .4       V # V P                  R\        R4      .4        V # \        V\        4      '       d?   \        V4      ^8X  d/   V P                  R\        \        V^ ,          4      4      .4       V # \        V\        4      '       g   \        V\        4      '       d(   V P                  R\        \        V4      4      .4       V # \        RV R24      h)z-cropboxz-hide-annotationsz-transp-f-l-z-jpegoptz-singlefile-upw-opwz-grayz-scale-to-xz-scale-to-yz	-scale-tozSize z is not a tuple or an integer)pgmr   jpegjpg)re   rO   extendr5   _parse_jpegoptr[   pathjoinrK   tuplelenr6   float
ValueError)r{   r    r!   r"   r#   r$   r,   r&   r'   r(   r*   r+   r.   r/   r3   s   &&&&&&&&&&&&&&&r9   rX   rX     sU   " J'(s44IT3z?+,T3y>*+
. C#I
o'Z!89:M" BGGLL<=VV$%VW%&G|" K! 
D%	 	 SY!^7KKCQL(9:;KKB017KKCQL(9:; K KKB01 K 
D%	 	 SY!^[#c$q'l"345 K 
D#		*T5"9"9[#c$i.12 K 5&CDEEr;   c          
      r    V ^8  d   QhR\         R\        R\        \         \         \        \        3,          /# )r   r#   r.   r4   )r5   r7   r   r
   )r8   s   "r9   r:   r:     s0     4 4s 4t 4c3RV>V8W 4r;   c                     V P                  4       p V ^ ,          R8X  d
   V R,          p V R	9   d   RR\        R3# V R8X  d   RR\        R3# V R
9   d   R# V R8X  d   V'       d   RR\        R3# RR\        R3# )    .   NNr   r   Fr   r   r   r   )tifr   )r   r   NT)lowerr   r   r   r   )r#   r.   s   &&r9   rN   rN     s    
))+C
1v}"g
ou2E99
e|e0%77
o((
e|	e0%77%,e33r;   c                0    V ^8  d   QhR\         R\        /# )r   r$   r4   )r	   r5   )r8   s   "r9   r:   r:     s      D S r;   c                     . pV P                  4        F5  w  r#VR J d   RpVRJ d   RpVP                  RP                  W#4      4       K7  	  RP                  V4      # )TyFnz{}={},)itemsre   r8   r   )r$   partskvs   &   r9   r   r     sV    E9A:AW^^A)*   88E?r;   c                <    V ^8  d   QhR\         R\         R\         /# )r   commandr-   r4   )r5   )r8   s   "r9   r:   r:     s!      s #  r;   c                     \         P                  ! 4       R 8X  d
   V R,           p Ve    \        P                  P	                  W4      p V # )rB   z.exe)r_   r`   r[   r   r   )r   r-   s   &&r9   rZ   rZ     s8    I%F"'',,|5Nr;   c          
      j    V ^8  d   QhR\         R\         R\        R\        \        \        3,          /# )r   r   r-   r2   r4   )r5   r6   r   )r8   s   "r9   r:   r:     s4       #58
38_r;   c                 j   \        W4      R .p \        P                  P                  4       pVe$   VR,           VP	                  RR4      ,           VR&   \        W\        \        R7      p VP                  VR7      w  rV TP                  RR4      P                  R	4      ^ ,          P                  R
4      R,          P                  R4      p	\        T	^ ,          4      \        T	^,          4      3#   \         d/    TP                  4        TP                  4       w  rx\        R4      hi ; i   Ru # ; i)z-vr?   r@   rA   rC   rD   rE   rG   Run poppler poppler timeout.rH   rI   
 r   r   )r      )rZ   r[   r\   r]   r^   r   r   rf   r   rg   r   rh   splitr6   )
r   r-   r2   rC   r~   r   r   r   r   versions
   &&&       r9   rP   rP     s    !7>G
**//
C!-!3cgg>OQS6T!T$t<DE$$W$5	**VX.44T:1=CCCHLRRSVW71:GAJ//  E		%%'
$%CDDEs   *C0 ?A0D, 09D),D2c                    V ^8  d   QhR\         R\         R\         R\         R\        R\        R\        R\        R	\        /	# )
r   r   r&   r'   r-   rawdatesr2   r!   r"   r4   )r5   r7   r6   r	   )r8   s   "r9   r:   r:     sm     X
 X
X
X
 X
 	X

 X
 X
 X
 X
 
X
r;   c                r    \        RV4      V .pVe   VP                  RV.4       Ve   VP                  RV.4       V'       d   VP                  R.4       V'       d   VP                  R\        V4      .4       V'       d   VP                  R\        V4      .4       \        P                  P                  4       p	Ve$   VR,           V	P                  RR	4      ,           V	R&   \        W\        \        R
7      p
 V
P                  VR7      w  r/ pTP                  RR4      P                  R4       Fu  pTP                  R4      pT^ ,          RP                  TR,          4      ppTR	8w  g   K>  T\         9   d   \#        TP%                  4       4      MTP%                  4       TT&   Kw  	  RT9  d   \&        hT#   \         d/    T
P                  4        T
P                  4       w  r\        R4      hi ; i  \(         d    \+        R4      h\&         d     \-        RXP                  RR4       24      hi ; i)a  Function wrapping poppler's pdfinfo utility and returns the result as a dictionary.

:param pdf_path: Path to the PDF that you want to convert
:type pdf_path: str
:param userpw: PDF's password, defaults to None
:type userpw: str, optional
:param ownerpw: PDF's owner password, defaults to None
:type ownerpw: str, optional
:param poppler_path: Path to look for poppler binaries, defaults to None
:type poppler_path: Union[str, PurePath], optional
:param rawdates: Return the undecoded data strings, defaults to False
:type rawdates: bool, optional
:param timeout: Raise PDFPopplerTimeoutError after the given time, defaults to None
:type timeout: int, optional
:param first_page: First page to process, defaults to None
:type first_page: int, optional
:param last_page: Last page to process before stopping, defaults to None
:type last_page: int, optional
:raises PDFPopplerTimeoutError: Raised after the timeout for the image processing is exceeded
:raises PDFInfoNotInstalledError: Raised if pdfinfo is not installed
:raises PDFPageCountError: Raised if the output could not be parsed
:return: Dictionary containing various information on the PDF
:rtype: Dict
pdfinfor   r   z	-rawdatesr   r   r?   r@   rA   r   rG   r   rH   rI   r   r   r   z;Unable to get page count. Is poppler installed and in PATH?zUnable to get page count.
)rZ   r   r5   r[   r\   r]   r^   r   r   rf   r   rg   r   rh   r   r   PDFINFO_CONVERT_TO_INTr6   stripr   OSErrorr   r   )r   r&   r'   r-   r   r2   r!   r"   r   rC   r~   outr   r   r   dfieldsfkeyvalues   &&&&&&&&            r9   rM   rM     s   D6
$Y=xHNNFF+,NNFG,-NNK=)NND#j/23NND#i.12 jjoo#%1C%7#''BSUW:X%XC!"Wd4@	I'''8HC ZZ177=ES!BAB 0Cby 44 & #	 > !'  	IIIK))+JD()GHH	I*  
&I
 	
  
)#**VX*F)GH
 	

sE   AG7 G7  #G7 A7G7 <F; AG7 1A	G7 ;9G44G7 7H6 H6c                    V ^8  d   QhR\         R\        R\        R\        R\        R\        R\        R\        R	\        /	# )
r   	pdf_bytesr&   r'   r-   r   r2   r!   r"   r4   )r   r5   r7   r6   r	   )r8   s   "r9   r:   r:   h  sb     0! 0!0!0! 0! 	0!
 0! 0! 0! 0! 
0!r;   c                   \         P                  ! 4       w  r \        V	R4      ;_uu_ 4       p
V
P                  V 4       V
P	                  4        RRR4       \        V	VVVVVVVR7      \        P                  ! V4       \        P                  ! V	4       #   + '       g   i     LO; i  \        P                  ! T4       \        P                  ! T	4       i ; i)a  Function wrapping poppler's pdfinfo utility and returns the result as a dictionary.

:param pdf_bytes: Bytes of the PDF that you want to convert
:type pdf_bytes: bytes
:param userpw: PDF's password, defaults to None
:type userpw: str, optional
:param ownerpw: PDF's owner password, defaults to None
:type ownerpw: str, optional
:param poppler_path: Path to look for poppler binaries, defaults to None
:type poppler_path: Union[str, PurePath], optional
:param rawdates: Return the undecoded data strings, defaults to False
:type rawdates: bool, optional
:param timeout: Raise PDFPopplerTimeoutError after the given time, defaults to None
:type timeout: int, optional
:param first_page: First page to process, defaults to None
:type first_page: int, optional
:param last_page: Last page to process before stopping, defaults to None
:type last_page: int, optional
:return: Dictionary containing various information on the PDF
:rtype: Dict
r   N)r&   r'   r-   r   r2   r!   r"   )	rT   r   r   r   r   rM   r[   r   r   )r   r&   r'   r-   r   r2   r!   r"   r   r   r   s   &&&&&&&&   r9   pdfinfo_from_bytesr   h  s    > !((*B!-&&!GGIGGI ' !%!	
 	
		-  '& 	
		- s"   B) "BB) B&	!B) ).Cc                    V ^8  d   QhR\         R\         R\         R\        R\        R\        \        P                  ,          /# )r   r    r,   extr0   rJ   r4   )r5   r7   r   r   )r8   s   "r9   r:   r:     sM       
 	
  
%++r;   c           	         . p\        \        P                  ! V 4      4       F  pVP                  V4      '       g   K  VP	                  R 4      R,          V8X  g   K;  V'       d1   VP                  \        P                  P                  W4      4       Ks  VP                  \        P                  ! \        P                  P                  W4      4      4       V'       g   K  VR,          P                  4        K  	  V# )r   r   )sortedr[   listdir
startswithr   re   r   r   r   r   load)r    r,   r   r0   rJ   r|   r   s   &&&&&  r9   ri   ri     s     FBJJ}-.<<$$b)9S)@bggll=<=ejjm)GHI92JOO% / Mr;   )F)N)NN)NNNFNNN)/__doc__r[   r_   rT   rQ   rj   ra   r   r   r   typingr   r   r   r   r	   r
   pathlibr   PILr   pdf2image.generatorsr   r   r   pdf2image.parsersr   r   r   r   pdf2image.exceptionsr   r   r   r   rO   r   r   r   rX   rN   r   rZ   rP   rM   r   ri    r;   r9   <module>r      s&  
 
      2 2 : :   W W     ! 
 *.%')-" "-md *.(6(8)-" "-l!^GT4 4X
v0!f r;   