+
    f0i                     b   ^ RI t ^ RIt^ RIt^ RI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HtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t# ^ RI$H%t% ^ RI&H't' ^ R	I(H)t) ^ R
I*H+t+H,t, ^ RI-H.t.H/t/ ^ RI0H1t1 ^ RI2H3t3 ^ RI4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t? ]P                  ! ]A4      tB ! R R]'4      tC ! R R]C4      tD]
! R]	]]54      tE ! R R]C]]E,          4      tF ! R R]F]5,          4      tG ! R R]F]5,          4      tH ! R R]F]5,          4      tI ! R R]F]5,          4      tJR# )    N)Sequence)BinaryIOClassVarGenericTextIOTypeVarcast)utils)ImageWriter)LAParamsLTAnnoLTCharLTComponentLTContainerLTCurveLTFigureLTImageLTItemLTLayoutContainerLTLineLTPageLTRectLTText	LTTextBoxLTTextBoxVerticalLTTextGroup
LTTextLineTextGroupElement)PDFColorSpace)PDFTextDevice)PDFValueError)PDFFontPDFUnicodeNotDefined)PDFGraphicStatePDFResourceManagerPDFPage)	PDFStream)AnyIOMatrixPathSegmentPointRectapply_matrix_ptapply_matrix_rectbbox2strencmake_compat_strmult_matrixc                      a  ] tR t^=t o RV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )PDFLayoutAnalyzerNc                >   < V ^8  d   QhRS[ RS[RS[R,          RR/#    rsrcmgrpagenolaparamsNreturnr%   intr   )format__classdict__s   "X/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/pdfminer/converter.py__annotate__PDFLayoutAnalyzer.__annotate__A   s7     	2 	2#	2 	2 T/		2
 
	2    c                X    \         P                  ! W4       W n        W0n        . V n        R # N)r    __init__r:   r;   _stackselfr9   r:   r;   s   &&&&rA   rG   PDFLayoutAnalyzer.__init__A   s#     	t- /1rD   c                *   < V ^8  d   QhRS[ RS[RR/# )r8   pagectmr<   N)r'   r*   )r?   r@   s   "rA   rB   rC   L   s"     6 6w 6V 6 6rD   c                    \        W!P                  4      w  r4rV^ ^ \        W5,
          4      \        WF,
          4      3p\        V P                  V4      V n        R# r   N)r/   mediaboxabsr   r:   cur_item)rJ   rM   rN   x0y0x1y1rQ   s   &&&     rA   
begin_pagePDFLayoutAnalyzer.begin_pageL   sA    ,S--@q#bg,BG5t{{H5rD   c                $   < V ^8  d   QhRS[ RR/# )r8   rM   r<   Nr&   )r?   r@   s   "rA   rB   rC   Q   s     + +W + +rD   c                   V P                   '       d$   Q \        \        V P                   4      4      4       h\        V P                  \
        4      '       g$   Q \        \        V P                  4      4      4       hV P                  e&   V P                  P                  V P                  4       V ;P                  ^,          un	        V P                  V P                  4       R # rF   )rH   strlen
isinstancerS   r   typer;   analyzer:   receive_layout)rJ   rM   s   &&rA   end_pagePDFLayoutAnalyzer.end_pageQ   s    ;;;5C$4 55$--00J#d4==6I2JJ0==$MM!!$--0qDMM*rD   c                0   < V ^8  d   QhRS[ RS[RS[RR/# )r8   namebboxmatrixr<   N)r\   r-   r*   )r?   r@   s   "rA   rB   rC   Y   s/     L L LD L& LT LrD   c                    V P                   P                  V P                  4       \        W\	        W0P
                  4      4      V n        R # rF   )rH   appendrS   r   r3   rN   )rJ   re   rf   rg   s   &&&&rA   begin_figurePDFLayoutAnalyzer.begin_figureY   s/    4==) [-JKrD   c                $   < V ^8  d   QhRS[ RR/# )r8   _r<   Nr\   )r?   r@   s   "rA   rB   rC   ]   s      C D rD   c                   V P                   p\        V P                   \        4      '       g$   Q \        \	        V P                   4      4      4       hV P
                  P                  4       V n         V P                   P                  V4       R # rF   )rS   r^   r   r\   r_   rH   popadd)rJ   rm   figs   && rA   
end_figurePDFLayoutAnalyzer.end_figure]   sY    mm$--22LCT]]8K4LL2)#rD   c                *   < V ^8  d   QhRS[ RS[RR/# r8   re   streamr<   Nr\   r(   )r?   r@   s   "rA   rB   rC   c   s"          i  D  rD   c                   \        V P                  \        4      '       g$   Q \        \	        V P                  4      4      4       h\        VVV P                  P                  V P                  P                  V P                  P                  V P                  P                  34      pV P                  P                  V4       R # rF   )r^   rS   r   r\   r_   r   rT   rU   rV   rW   rq   )rJ   re   rw   items   &&& rA   render_imagePDFLayoutAnalyzer.render_imagec   s    $--22LCT]]8K4LL2]]t}}//1A1A4==CSCST

 	$rD   c                L   < V ^8  d   QhRS[ RS[RS[RS[RS[S[,          RR/# r8   gstatestrokefillevenoddpathr<   Nr$   boolr   r+   )r?   r@   s   "rA   rB   rC   l   sT     {) {){) {) 	{)
 {) {#{) 
{)rD   c                   RP                  R V 4       4      pVR,          R8w  d   R# VP                  R4      ^8  dV   \        P                  ! RV4       F8  pWWP	                  ^ 4      VP                  ^ 4       pV P                  WW4V4       K:  	  R# V U	u. uF0  p	\        \        V	^ ,          R8w  d   V	RR MV^ ,          RR 4      NK2  	  p
p	V
 Uu. uF  p\        V P                  V4      NK  	  ppV Uu. uF  p\        V^ ,          4      NK  	  ppV UUUu. uF\  p\        VR,          VR	,          R
R7       UUu. uF0  w  pp\        V P                  \        V4      \        V4      34      NK2  	  uppNK^  	  pppp\        VVR
R7       UU	u. uF  w  pp	\        \        V.V	O54      NK  	  ppp	\        V4      ^8  d<   VRR R8X  d2   VR,          V^ ,          8X  d   VRR R,           pVP!                  4        VR9   di   \#        VP$                  V^ ,          V^,          VVVVP&                  VP(                  VVP*                  R7
      pV P,                  P/                  V4       R# VR9   Ed[   Vw  w  ppw  ppw  ppw  pppV^ ,          V^,          8H  pVV8H  ;'       d(    VV8H  ;'       d    VV8H  ;'       d    VV8H  ;'       g-    VV8H  ;'       d     VV8H  ;'       d    VV8H  ;'       d    VV8H  pV'       dt   V'       dl   \1        VP$                  . V^ ,          OV^,          O5VVVVP&                  VP(                  VVP*                  4	      p V P,                  P/                  V 4       R# \3        VP$                  VVVVVP&                  VP(                  VVP*                  4	      p!V P,                  P/                  V!4       R# \3        VP$                  VVVVVP&                  VP(                  VVP*                  4	      p!V P,                  P/                  V!4       R# u up	i u upi u upi u uppi u upppi u up	pi )z@Paint paths described in section 4.4 of the PDF reference manual c              3   2   "   T F  q^ ,          x  K  	  R# 5irP    ).0xs   & rA   	<genexpr>/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>u   s     +d!ds   :N   Nmzm[^m]+hN:r   Nr8   :r8   Nr8   F)strictlh)original_pathdashing_style>   mlmlh>   mlllhmllll)joincountrefinditerstartend
paint_pathr	   r,   r.   rN   r\   zipfloatr+   r]   rp   r   	linewidthscolorncolordashrS   rq   r   r   )"rJ   r   r   r   r   r   shaper   subpathpraw_ptsptpts	operation	operatorsoperand1operand2transformed_pointsotransformed_pathlinerT   rU   rV   rW   x2y2x3y3rm   is_closed_loophas_square_coordinatesrectcurves"   &&&&&&                            rA   r   PDFLayoutAnalyzer.paint_pathl   s    +d++9 [[![[E2wwqzAEE!H5wG 3 OSNRUadckAbcFtAwrs|Dd   <CC7R?488R07CC<@ADyYq\*DIA "&" "&I	 /2!$4//*( $DHHuXh.PQ/ "&  "  	+=eL LDAq [1'q'*L    5zA~%*"4RCF9Jcr
S(	%
 $$FFMMMM"2"(++ !!$',,<?9R(2rHRhr2!$Q3q6!1"HCCrCCbBhCC28*G *GBhEE28EEbEER2X ' "&<!((*#a&*3q6*(
D MM%%d+#(((
E MM%%e,$$MMMM$KK
 !!%(s DA" s0   6P*P/9P4$P? 6P96P? Q9P?c                P   < V ^8  d   QhRS[ RS[RS[RS[RS[RS[RS[RS[R	S[/	# )
r8   rg   fontfontsizescalingrisecidncsgraphicstater<   )r*   r"   r   r>   r   r$   )r?   r@   s   "rA   rB   rC      se        	
     & 
rD   c	                    VP                  V4      p	\        V	\        4      '       g   Q \        \        V	4      4      4       h VP                  V4      p
VP                  V4      p\        VVVVVV	V
VVV4
      pV P                  P                  V4       VP                  #   \         d    T P                  Y&4      p	 L{i ; irF   )	to_unichrr^   r\   r_   r#   handle_undefined_char
char_width	char_dispr   rS   rq   adv)rJ   rg   r   r   r   r   r   r   r   text	textwidthtextdisprz   s   &&&&&&&&&    rA   render_charPDFLayoutAnalyzer.render_char   s    	9>>#&DdC((9#d4j/9( OOC(	>>#&
 	$xx# $ 	9--d8D	9s   A B   B?>B?c                ,   < V ^8  d   QhRS[ RS[RS[/# )r8   r   r   r<   )r"   r>   r\   )r?   r@   s   "rA   rB   rC   
  s"      '   rD   c                H    \         P                  R V: RV: 24       RV R2# )zundefined: , z(cid:))logdebug)rJ   r   r   s   &&&rA   r   'PDFLayoutAnalyzer.handle_undefined_char
  s)    		Kxr#12se1~rD   c                $   < V ^8  d   QhRS[ RR/# r8   ltpager<   Nr   )r?   r@   s   "rA   rB   rC     s      V  rD   c                    R # rF   r   rJ   r   s   &&rA   ra    PDFLayoutAnalyzer.receive_layout  s    rD   c                2   < V ^8  d   Qh/ S[ ;R&   S[;R&   # )r8   rS   rN   )r   r*   )r?   r@   s   "rA   rB   rC   =   s      	K rD   )rH   rS   r;   r:   r   N)__name__
__module____qualname____firstlineno__rG   rX   rb   rj   rs   r{   r   r   r   ra   __annotate_func____static_attributes____classdictcell__r@   s   @rA   r5   r5   =   sw     	2 	26 6
+ +L L    {) {)z B  c  rD   r5   c                   Z   a  ] tR tRt o R
V 3R lR lltV 3R lR ltV 3R lR ltR	tV tR# )PDFPageAggregatori  Nc                >   < V ^8  d   QhRS[ RS[RS[R,          RR/# r7   r=   )r?   r@   s   "rA   rB   PDFPageAggregator.__annotate__  s7     * *#* * T/	*
 
*rD   c                B    \         P                  WW#R 7       RV n        R# )r:   r;   N)r5   rG   resultrI   s   &&&&rA   rG   PDFPageAggregator.__init__  s     	""4"S%)rD   c                $   < V ^8  d   QhRS[ RR/# r   r   )r?   r@   s   "rA   rB   r     s      V  rD   c                    Wn         R # rF   r   r   s   &&rA   ra    PDFPageAggregator.receive_layout  s    rD   c                    < V ^8  d   QhRS[ /# )r8   r<   r   )r?   r@   s   "rA   rB   r     s      F rD   c                :    V P                   f   Q hV P                   # rF   r   rJ   s   &rA   
get_resultPDFPageAggregator.get_result  s    {{&&&{{rD   r   r   )	r   r   r   r   rG   ra   r   r   r   r   s   @rA   r   r     s#     * *  rD   r   IOTypec                   R   a  ] tR tRt o RV 3R lR llt]V 3R lR l4       tRtV tR# )	PDFConverteri(  Nc                J   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RR/# )r8   r9   outfpcodecr:   r;   Nr<   )r%   r   r\   r>   r   )r?   r@   s   "rA   rB   PDFConverter.__annotate__)  sK     ? ?#? ? 	?
 ? T/? 
?rD   c                    \         P                  WWER 7       W n        W0n        V P	                  V P                  4      V n        R# r   )r5   rG   r   r   _is_binary_streamoutfp_binary)rJ   r9   r   r   r:   r;   s   &&&&&&rA   rG   PDFConverter.__init__)  s8     	""4"S"

 224::>rD   c                &   < V ^8  d   QhRS[ RS[/# )r8   r   r<   )r)   r   )r?   r@   s   "rA   rB   r   7  s       4 rD   c                    R\        V RR4      9   d   R# \        V R4      '       d   R# \        V \        P                  4      '       d   R# \        V \        P
                  \        P                  34      '       d   R# R# )z"Test if an stream is binary or notbmoder   TF)getattrhasattrr^   ioBytesIOStringIO
TextIOBase)r   s   &rA   r  PDFConverter._is_binary_stream6  s\     '%,,UF##rzz**R]];<<rD   )r   r   r  )utf-8r   N)	r   r   r   r   rG   staticmethodr  r   r   r   s   @rA   r   r   (  s#     ? ?  rD   r   c                      a a ] tR tRt oRV3R lV 3R llltV3R lR ltV3R lR ltV3R lR	 ltV3R
 lR ltRt	Vt
V ;t# )TextConverteriF  c                d   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RS[RS[R,          R	R/# )
r8   r9   r   r   r:   r;   N
showpagenoimagewriterr<   )r%   r)   r\   r>   r   r   r   )r?   r@   s   "rA   rB   TextConverter.__annotate__G  sd     ' '#' ' 	'
 ' T/' ' !4'' 
'rD   c                D   < \         SV `  WW4VR 7       W`n        Wpn        R# )r   r:   r;   N)superrG   r  r  )	rJ   r9   r   r   r:   r;   r  r  	__class__s	   &&&&&&&&rA   rG   TextConverter.__init__G  s$     	uhW$&rD   c                $   < V ^8  d   QhRS[ RR/# r8   r   r<   Nrn   )r?   r@   s   "rA   rB   r  U  s     1 1s 1t 1rD   c                0   \         P                  ! WP                  R 4      pV P                  '       d:   \	        \
        V P                  4      P                  VP                  4       4       R# \	        \        V P                  4      P                  V4       R# )ignoreN)
r
   compatible_encode_methodr   r  r	   r   r   writeencoder   rJ   r   s   &&rA   
write_textTextConverter.write_textU  s\    --dJJI4::&,,T[[];$**40rD   c                $   < V ^8  d   QhRS[ RR/# r   r   )r?   r@   s   "rA   rB   r  \  s      V  rD   c                   a a R  VV 3R lloS P                   '       d    S P                  RVP                   R24       S! V4       S P                  R4       R# )c                (    V ^8  d   QhR\         RR/# r8   rz   r<   Nr   )r?   s   "rA   rB   2TextConverter.receive_layout.<locals>.__annotate__]  s     		4 		4 		4D 		4rD   c                   < \        V \        4      '       d   V  F  pS! V4       K  	  M5\        V \        4      '       d    SP                  V P	                  4       4       \        V \
        4      '       d   SP                  R 4       R# \        V \        4      '       d.   SP                  e   SP                  P                  V 4       R# R# R# )
N)	r^   r   r   r%  get_textr   r   r  export_image)rz   childrenderrJ   s   & rA   r2  ,TextConverter.receive_layout.<locals>.render]  s    $,,!E5M "D&))0$	**%D'**t/?/?/K  --d3 0L*rD   zPage r.  N)r  r%  pageidrJ   r   r2  s   f&@rA   ra   TextConverter.receive_layout\  sD    		4 		4 ???OOeFMM?"56vrD   c                *   < V ^8  d   QhRS[ RS[RR/# rv   rx   )r?   r@   s   "rA   rB   r  p  s"     : : :i :D :rD   c                R    V P                   e   \        P                  WV4       R # R # rF   )r  r   r{   )rJ   re   rw   s   &&&rA   r{   TextConverter.render_imagep  s#    '%%d&9 (rD   c                L   < V ^8  d   QhRS[ RS[RS[RS[RS[S[,          RR/# r~   r   )r?   r@   s   "rA   rB   r  t  sL        	
  {# 
rD   c                    R # rF   r   )rJ   r   r   r   r   r   s   &&&&&&rA   r   TextConverter.paint_patht  s     	rD   )r  r  )r  r   NFN)r   r   r   r   rG   r%  ra   r{   r   r   r   __classcell__)r  r@   s   @@rA   r  r  F  s<     ' '1 1 (: :  rD   r  c                   j  a  ] tR tRt o RRRRRRRR	R
RRR/tRRRR/tR1V 3R lR lltV 3R lR ltV 3R lR ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltR2V 3R# lR$ lltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltV 3R- lR. ltV 3R/ ltR0tV tR# )3HTMLConverteri  figureyellowtextlinemagentatextboxcyan	textgroupredr   blackrM   graybluecharNc                   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RS[RS[R	S[R
S[RS[RS[R,          RS[RS[S[S[3,          R,          RS[S[S[3,          R,          RR/# )r8   r9   r   r   r:   r;   Nscale	fontscale
layoutmoder  
pagemarginr  r   rect_colorstext_colorsr<   )	r%   r)   r\   r>   r   r   r   r   dict)r?   r@   s   "rA   rB   HTMLConverter.__annotate__  s     3 3#3 3 	3
 3 T/3 3 3 3 3 3 !4'3 3 #s(^d*3 #s(^d*3  
!3rD   c           	     ~   \         P                  V VVVVVR 7       V P                  '       d   V P                  '       g   \	        R4      hV P                  '       g   V P                  '       d   \	        R4      hVf   RR/pVf   RRRR/pW`n        Wpn        Wn        Wn        Wn	        Wn
        Wn        Wn        V'       dK   V P                  P                  V P                  4       V P                  P                  V P                  4       V P                  V n        RV n        . V n        V P'                  4        R# )	r  )Codec is required for a binary I/O outputz1Codec must not be specified for a text I/O outputNrL  rI  r   rM   rJ  )r   rG   r  r   r!   rN  rO  rP  r  rQ  r  rR  rS  updateRECT_COLORSTEXT_COLORS_yoffset_font
_fontstackwrite_header)rJ   r9   r   r   r:   r;   rN  rO  rP  r  rQ  r  r   rR  rS  s   &&&&&&&&&&&&&&&rA   rG   HTMLConverter.__init__  s   " 	 	 	
 TZZZ KLL   TZZZ STT!7+K"GVV<K
"$$$&&&##D$4$45##D$4$45#/3
:<rD   c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   rU         1 1# 1$ 1rD   c                   V P                   '       dE   \        \        V P                  4      P	                  VP                  V P                   4      4       R # \        \        V P                  4      P	                  V4       R # rF   r   r	   r   r   r"  r#  r   r$  s   &&rA   r"  HTMLConverter.write  J    :::4::&,,T[[-DE$**40rD   c                   < V ^8  d   QhRR/# r8   r<   Nr   )r?   r@   s   "rA   rB   rU    s     
& 
&d 
&rD   c                    V P                  R 4       V P                  '       d   RV P                   R2pMRpV P                  V4       V P                  R4       R# )z<html><head>
z<<meta http-equiv="Content-Type" content="text/html; charset=">
z5<meta http-equiv="Content-Type" content="text/html">
z</head><body>
N)r"  r   )rJ   ss   & rA   r^  HTMLConverter.write_header  sR    

#$:::::,d, 
 IA

1

$%rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   rU    s     ' 'd 'rD   c                    \        ^V P                  4       Uu. uF  pRV RV R2NK  	  ppRRP                  V4       R2pV P                  V4       V P                  R4       R# u upi )	r   z
<a href="#">z</a>z/<div style="position:absolute; top:0px;">Page: r   </div>
z</body></html>
N)ranger:   r   r"  )rJ   i
page_linksrj  s   &   rA   write_footerHTMLConverter.write_footer  sr    9>q$++9NO9NA
1#Rs$/9N
OYYz*+85 	
 	

1

%& Ps   A&c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   rU    s      s t rD   c                :    V P                  \        V4      4       R # rF   )r"  r1   r$  s   &&rA   r%  HTMLConverter.write_text  s    

3t9rD   c                B   < V ^8  d   QhRS[ RS[RS[RS[RS[RS[RR/# )	r8   colorborderwidthr   ywr   r<   Nr\   r>   r   )r?   r@   s   "rA   rB   rU    sQ        	
    
rD   c                8   V P                   P                  V4      pVe{   RV RV RW0P                  ,           RV P                  V,
          V P                  ,           RWPP                  ,           RW`P                  ,           R2pV P	                  V4       R # R # )Nz(<span style="position:absolute; border:  zpx solid; left:px; top:
px; width:px; height:zpx;"></span>
)rR  getrN  r[  r"  )	rJ   ry  rz  r   r{  r|  r   color2rj  s	   &&&&&&&  rA   
place_rectHTMLConverter.place_rect  s     !!%%e,!(!K= 1JJ' ()TZZ78 9ZZ( )jj.)9  JJqM rD   c                0   < V ^8  d   QhRS[ RS[RS[RR/# )r8   ry  rz  rz   r<   N)r\   r>   r   )r?   r@   s   "rA   rB   rU    s/     W W# WC W{ Wt WrD   c                    V P                  WVP                  VP                  VP                  VP                  4       R # rF   )r  rT   rW   widthheight)rJ   ry  rz  rz   s   &&&&rA   place_borderHTMLConverter.place_border  s&    DGGTWWdjj$++VrD   c                B   < V ^8  d   QhRS[ RS[RS[RS[RS[RS[RR/# )	r8   rz   rz  r   r{  r|  r   r<   N)r   r>   r   )r?   r@   s   "rA   rB   rU    sQ        	
    
rD   c                ^   V P                   e   V P                   P                  V4      pR\        V4       RV RW0P                  ,           RV P                  V,
          V P                  ,           RWPP                  ,           RW`P                  ,           R2pV P                  V4       R # R # )Nz
<img src="z
" border="z!" style="position:absolute; left:r  zpx;" width="
" height="" />
)r  r0  r1   rN  r[  r"  )	rJ   rz   rz  r   r{  r|  r   re   rj  s	   &&&&&&&  rA   place_imageHTMLConverter.place_image  s     '##006DSYKz+ ?JJ' ()TZZ78 9jj.) *zz>*&2  JJqM (rD   c                <   < V ^8  d   QhRS[ RS[ RS[RS[RS[RR/# )r8   ry  r   r   r{  sizer<   Nr\   r   )r?   r@   s   "rA   rB   rU    sG     $ $$ $ 	$
 $ $ 
$rD   c           	     r   V P                   P                  V4      pVe   RV RW0P                  ,           RV P                  V,
          V P                  ,           RWPP                  ,          V P                  ,           R2	pV P                  V4       V P                  V4       V P                  R4       R # R # )Nz&<span style="position:absolute; color:; left:r  zpx; font-size:px;"></span>
)rS  r  rN  r[  rO  r"  r%  )rJ   ry  r   r   r{  r  r  rj  s   &&&&&&  rA   
place_textHTMLConverter.place_text  s     !!%%e, !JJ' ()TZZ78 9!JJ.?@	G  JJqMOOD!JJ{# rD   c                H   < V ^8  d   QhRS[ RS[RS[RS[RS[RS[RS[ RR	/# )
r8   ry  rz  r   r{  r|  r   writing_moder<   Nr}  )r?   r@   s   "rA   rB   rU  #  s[        	
     
rD   c                T   V P                   P                  V P                  4       R V n        RV RV RV RW0P                  ,           RV P                  V,
          V P                  ,           RWPP                  ,           RW`P                  ,           R2pV P                  V4       R # )	Nz'<div style="position:absolute; border: r  zpx solid; writing-mode:r  r  r  r  r  )r]  ri   r\  rN  r[  r"  )	rJ   ry  rz  r   r{  r|  r   r  rj  s	   &&&&&&&& rA   	begin_divHTMLConverter.begin_div#  s     	tzz*
gQ{m ,(> *

N# $MMA%34 5^$ %**n%U, 	
 	

1rD   c                $   < V ^8  d   QhRS[ RR/# )r8   ry  r<   Nrn   )r?   r@   s   "rA   rB   rU  :  s      S T rD   c                    V P                   e   V P                  R4       V P                  P                  4       V n         V P                  R4       R # )N</span>z</div>)r\  r"  r]  rp   )rJ   ry  s   &&rA   end_divHTMLConverter.end_div:  s8    ::!JJy!__((*


8rD   c                0   < V ^8  d   QhRS[ RS[ RS[RR/# )r8   r   fontnamer   r<   Nr  )r?   r@   s   "rA   rB   rU  @  s)      S C 5 T rD   c                :   W#3pW@P                   8w  dw   V P                   e   V P                  R4       VP                  R4      R,          pV P                  RV RW0P                  ,          V P                  ,           R24       W@n         V P                  V4       R # )Nr  +z<span style="font-family: z; font-size:zpx">)r\  r"  splitrN  rO  r%  )rJ   r   r  r   r   fontname_without_subset_tags   &&&&  rA   put_textHTMLConverter.put_text@  s    #::zz%

9%*2..*=b*A'JJ  ;< =%

2T^^CDDJ
 JrD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   rU  O  s      T rD   c                (    V P                  R 4       R# )z<br>Nr"  r   s   &rA   put_newlineHTMLConverter.put_newlineO  s    

6rD   c                $   < V ^8  d   QhRS[ RR/# r   r   )r?   r@   s   "rA   rB   rU  R  s     T) T)V T) T)rD   c                   a aa R  V V3R lloR VV V3R lloS! V4       S ;P                   S P                  ,          un         R# )c                >    V ^8  d   QhR\         \        ,          RR/# r*  )r   r   )r?   s   "rA   rB   2HTMLConverter.receive_layout.<locals>.__annotate__S  s      	& 	&[+;; 	& 	&rD   c                    < \        V \        4      '       d'   SP                  R ^V 4       V  F  pS! V4       K  	  R# R# )rG  N)r^   r   r  rz   r1  rJ   
show_groups   & rA   r  0HTMLConverter.receive_layout.<locals>.show_groupS  s9    $,,!!+q$7!Eu% " -rD   c                (    V ^8  d   QhR\         RR/# r*  r+  )r?   s   "rA   rB   r  Y  s     J	1 J	1 J	1D J	1rD   c           
      B	  < \        V \        4      '       d   S;P                  V P                  ,          un        SP	                  R ^V 4       SP
                  '       dm   SP                  RSP                  V P                  ,
          SP                  ,           24       SP                  RV P                   RV P                   R24       V  F  pS! V4       K  	  V P                  e   V P                   F  pS! V4       K  	  R# R# \        V \        4      '       d   SP	                  R^V 4       R# \        V \        4      '       dc   SP                  R^V P                  V P                  V P                  V P                  4       V  F  pS! V4       K  	  SP!                  R4       R# \        V \"        4      '       dA   SP%                  V ^V P                  V P                  V P                  V P                  4       R# SP&                  R8X  Ed*   \        V \(        4      '       d'   SP	                  R	^V 4       V  F  pS! V4       K  	  R# \        V \*        4      '       dj   SP	                  R
^V 4       SP-                  R
\/        V P0                  ^,           4      V P                  V P                  ^4       V  F  pS! V4       K  	  R# \        V \2        4      '       dW   SP	                  R^V 4       SP-                  RV P5                  4       V P                  V P                  V P6                  4       R# R# \        V \(        4      '       d7   V  F  pS! V4       K  	  SP&                  R8w  d   SP9                  4        R# R# \        V \*        4      '       dr   SP                  R
^V P                  V P                  V P                  V P                  V P;                  4       4       V  F  pS! V4       K  	  SP!                  R
4       R# \        V \2        4      '       dB   \=        V P>                  4      pSPA                  V P5                  4       W0P6                  4       R# \        V \B        4      '       d"   SPE                  V P5                  4       4       R# R# )rM   z*<div style="position:absolute; top:%dpx;">z	<a name="z">Page z</a></div>
Nr   rA  exactrC  rE  rL  loose)#r^   r   r[  rW   r  r  r"  rN  r5  groupsr   r   r  rT   r  r  r  r   r  rP  r   r   r  r\   indexr   r/  r  r  get_writing_moder2   r  r  r   r%  )rz   r1  groupr  r2  rJ   r  s   &   rA   r2  ,HTMLConverter.receive_layout.<locals>.renderY  s]   $''(!!&!T2???JJD MMDGG3tzzABD JJ#DKK=}LQ "E5M ";;*!%"5) "- + D'**!!'1d3D(++xDGGTWWdjj$++V!E5M "X&D'**  q$''477DJJTG+dJ//%%j!T:!%u "&i00%%iD9OO!DJJN+ "&u "&f--%%fa6OO		 . D*--!E5M "??g-$$& .D),,GGGGJJKK))+ "E5M "Y'D&))*4==9dmmoxCD&))0 *rD   N)r[  rQ  rJ   r   r2  r  s   f&@@rA   ra   HTMLConverter.receive_layoutR  s5    	& 	&J	1 J	1X 	v(rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   rU          t rD   c                &    V P                  4        R # rF   rs  r   s   &rA   closeHTMLConverter.close      rD   c                ~   < V ^8  d   Qh/ S[ S[S[S[3,          ,          ;R&   S[ S[S[S[3,          ,          ;R&   # )r8   rY  rZ  )r   rT  r\   )r?   r@   s   "rA   rB   rU    s;     $sCx.)   $sCx.)  rD   )r\  r]  r[  rO  r  rP  rQ  rR  rN  r  rS  )r  r   Nr   g      ?normalT2   Nr   NN)False)r   r   r   r   rY  rZ  rG   r"  r^  rs  r%  r  r  r  r  r  r  r  r  ra   r  r   r   r   r   s   @rA   r@  r@    s     (I6U-K 	6-K
3 3j1 1
& 
&' '  *W W *$ $* .   T) T)l S	  rD   r@  c                      a  ] tR tRt o ]P
                  ! R4      tRV 3R lR lltV 3R lR ltV 3R lR	 lt	V 3R
 lR lt
V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )XMLConverteri  z[ ---]Nc                d   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RS[R,          RS[R	R/# )
r8   r9   r   r   r:   r;   Nr  stripcontrolr<   )r%   r)   r\   r>   r   r   r   )r?   r@   s   "rA   rB   XMLConverter.__annotate__  sd      #  	
  T/ !4'  
rD   c           	         \         P                  V VVVVVR 7       V P                  V P                  '       * 8X  d   \	        R4      hW`n        Wpn        V P                  4        R# )r  rW  N)r   rG   r  r   r!   r  r  r^  )rJ   r9   r   r   r:   r;   r  r  s   &&&&&&&&rA   rG   XMLConverter.__init__  sc     	 	 	
 TZZ0 KLL&(rD   c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   r    ra  rD   c                   V P                   '       dE   \        \        V P                  4      P	                  VP                  V P                   4      4       R # \        \        V P                  4      P	                  V4       R # rF   rc  r$  s   &&rA   r"  XMLConverter.write  re  rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    s        d  rD   c                    V P                   '       d!   V P                  R V P                    R24       MV P                  R4       V P                  R4       R# )z<?xml version="1.0" encoding="z" ?>
z<?xml version="1.0" ?>
z<pages>
Nr   r"  r   s   &rA   r^  XMLConverter.write_header  s>    :::JJ7

|6JKJJ12

;rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    s     ! !d !rD   c                (    V P                  R 4       R# )z	</pages>
Nr  r   s   &rA   rs  XMLConverter.write_footer  s    

< rD   c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   r    s      s t rD   c                    V P                   '       d   V P                  P                  R V4      pV P                  \	        V4      4       R# r   N)r  CONTROLsubr"  r1   r$  s   &&rA   r%  XMLConverter.write_text  s4    <<##B-D

3t9rD   c                $   < V ^8  d   QhRS[ RR/# r   r   )r?   r@   s   "rA   rB   r    s     e eV e erD   c                F   a aa R  V V3R lloR VV V3R lloS! V4       R# )c                (    V ^8  d   QhR\         RR/# r*  r+  )r?   s   "rA   rB   1XMLConverter.receive_layout.<locals>.__annotate__  s     		- 		-V 		- 		-rD   c                 f  < \        V \        4      '       d8   SP                  R V P                   R\	        V P
                  4       R24       R# \        V \        4      '       dM   SP                  R\	        V P
                  4       R24       V  F  pS! V4       K  	  SP                  R4       R# R# )<textbox id="" bbox="r  z<textgroup bbox="ri  z</textgroup>
N)r^   r   r"  r  r0   rf   r   r  s   & rA   r  /XMLConverter.receive_layout.<locals>.show_group  s    $	**

#DJJ<x8K7LFS D+..

.x		/B.C4HI!Eu% "

+,	 /rD   c                (    V ^8  d   QhR\         RR/# r*  r+  )r?   s   "rA   rB   r    s     W	? W	? W	?D W	?rD   c                 	  < \        V \        4      '       d   R V P                   R\        V P                  4       RV P
                   R2pSP                  V4       V  F  pS! V4       K  	  V P                  e>   SP                  R4       V P                   F  pS! V4       K  	  SP                  R4       SP                  R4       R# \        V \        4      '       d:   RV P                   R\        V P                  4       R	2pSP                  V4       R# \        V \        4      '       d:   R
V P                   R\        V P                  4       R	2pSP                  V4       R# \        V \        4      '       dK   RV P                   R\        V P                  4       RV P                  4        R2pSP                  V4       R# \        V \        4      '       d\   RV P                   R\        V P                  4       R2pSP                  V4       V  F  pS! V4       K  	  SP                  R4       R# \        V \        4      '       dM   SP                  R\        V P                  4       R24       V  F  pS! V4       K  	  SP                  R4       R# \        V \         4      '       dy   Rp\        V \"        4      '       d   RpRV P$                   R\        V P                  4       RV R2pSP                  V4       V  F  pS! V4       K  	  SP                  R4       R# \        V \&        4      '       d   R\)        V P*                  4       R\        V P                  4       RV P,                  P                   RV P.                  P0                   RV P2                  R R2pSP                  V4       SP5                  V P7                  4       4       SP                  R4       R# \        V \8        4      '       d&   SP                  RV P7                  4        R24       R# \        V \:        4      '       d   SP<                  eV   SP<                  P?                  V 4      pSP                  R \)        V4       R!V P@                   R"V PB                   R	24       R# SP                  R#V P@                   R"V PB                   R	24       R# \E        \G        R$V 34      4      h)%z
<page id="r  z
" rotate="ri  Nz	<layout>
z
</layout>
z</page>
z<line linewidth="r  z<rect linewidth="z<curve linewidth="z" pts="z"/>
z<figure name="z
</figure>
z<textline bbox="z</textline>
r   z wmode="vertical"r  "z>
z</textbox>
z<text font="z" colourspace="z" ncolour="z" size="z.3frn  z</text>
z<text>z<image src="z	" width="r  z<image width="	Unhandled)$r^   r   r5  r0   rf   rotater"  r  r   r   r   r   get_ptsr   re   r   r   r   r  r   r1   r  r   r   r   r  r%  r/  r   r   r  r0  r  r  AssertionErrorr\   )	rz   rj  r1  r  wmodere   r2  rJ   r  s	   &     rA   r2  +XMLConverter.receive_layout.<locals>.render  s'   $''  .%dii01 2#{{m41 
 

1!E5M ";;*JJ|,!%"5) "-JJ}-

;'D&))""&..!1 2%dii019 
 

1D&))""&..!1 2%dii019 
 

1D'**""&..!1 2%dii01 2 LLN+52  

1D(++$TYYKx8K7LDQ

1!E5M "

=)D*--

-htyy.A-B$GH!E5M "

?+D),,d$566/E#DJJ<x8K7LAeWTWX

1!E5M "

>*D&)) /0 1%dii01 2$$(HHMM? 3  $ 1 1 8 89 :!YYsO2/  

10

;'D&))

VDMMO#4I>?D'**##/++88>DJJ  #D	{ +""&** .##';;-v7 JJ(Jt{{m6R %S+t)<%=>>rD   Nr   r  s   f&@@rA   ra   XMLConverter.receive_layout  s#    		- 		-W	? W	?r 	vrD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r  F  r  rD   c                &    V P                  4        R # rF   r  r   s   &rA   r  XMLConverter.closeF  r  rD   )r  r  )r  r   NNF)r   r   r   r   r   compiler  rG   r"  r^  rs  r%  ra   r  r   r   r   s   @rA   r  r    s]     jj89G 61 1   ! ! 
e eN rD   r  c                      a  ] tR tRt o Rt]P                  ! R4      tRV 3R lR lltV 3R lR lt	V 3R	 lR
 lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )HOCRConverteriJ  zKExtract an hOCR representation from explicit text information within a PDF.z[\x00-\x08\x0b-\x0c\x0e-\x1f]Nc                L   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RS[/# )r8   r9   r   r   r:   r;   Nr  )r%   r)   r\   r>   r   r   )r?   r@   s   "rA   rB   HOCRConverter.__annotate__]  sK      #  	
  T/ rD   c           	     v    \         P                  V VVVVVR 7       W`n        RV n        V P	                  4        R# )r  FN)r   rG   r  within_charsr^  )rJ   r9   r   r   r:   r;   r  s   &&&&&&&rA   rG   HOCRConverter.__init__]  sE     	 	 	
 )!rD   c                &   < V ^8  d   QhRS[ RS[/# )r8   rf   r<   )r-   r\   )r?   r@   s   "rA   rB   r  r  s     ; ;d ;s ;rD   c                    Vw  r#rE\        V4      p\        V P                  ^,          V,
          4      p\        V4      p\        V P                  ^,          V,
          4      p	RV RV RV RV	 2# )   zbbox r  )r>   	page_bbox)
rJ   rf   in_x0in_y0in_x1in_y1out_x0out_y0out_x1out_y1s
   &&        rA   	bbox_reprHOCRConverter.bbox_reprr  sm    '+$uUT^^A&./UT^^A&./vhaxq&::rD   c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   r  {  s     1 1# 1$ 1rD   c                   V P                   '       dG   VP                  V P                   4      p\        \        V P                  4      P                  V4       R # \        \        V P                  4      P                  V4       R # rF   )r   r#  r	   r   r   r"  r   )rJ   r   encoded_texts   && rA   r"  HOCRConverter.write{  sO    :::;;tzz2L4::&,,\:$**40rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    s      d rD   c                z   V P                   '       d!   V P                  R V P                    R24       MV P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R	4       R
# )zL<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en' charset=''>
zD<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
z<head>
z<title></title>
zE<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
zA<meta name='ocr-system' content='pdfminer.six HOCR Converter' />
zR  <meta name='ocr-capabilities' content='ocr_page ocr_block ocr_line ocrx_word'/>
z</head>
z<body>
Nr  r   s   &rA   r^  HOCRConverter.write_header  s    :::JJ448JJ<tE
 JJW 	

:

&'

T	
 	

P	
 	

C	
 	

;

:rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    s     
 
d 
rD   c                J    V P                  R 4       V P                  R4       R# )z0<!-- comment in the following line to debug -->
zD<!--script src='https://unpkg.com/hocrjs'></script--></body></html>
Nr  r   s   &rA   rs  HOCRConverter.write_footer  s    

FG

S	
rD   c                $   < V ^8  d   QhRS[ RR/# r  rn   )r?   r@   s   "rA   rB   r    s      s t rD   c                    V P                   '       d   V P                  P                  R V4      pV P                  V4       R# r  )r  r  r  r"  r$  s   &&rA   r%  HOCRConverter.write_text  s0    <<##B-D

4rD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    s     " "D "rD   c                   \        V P                  4      ^ 8  d   RpRV P                  9   d   RpRV P                  9   d
   VR,          pV P                  RV P                   RV P                   RV R	V P                  V P                  4       R
V P                   RV P                   RV P                  P                  4        R24       RV n        R# )r   r   Italiczfont-style: italic; Boldzfont-weight: bold; z<span style='font:"z"; font-size:z; z' class='ocrx_word' title='z	; x_font z
; x_fsize '>r  FN)	r]   working_textworking_fontr"  working_sizer  working_bboxstripr  )rJ   bold_and_italic_styless   & rA   
write_wordHOCRConverter.write_word  s    t  !A%%'"4,,,)?&***&*??&JJ&t'8'8&9 :!../r)* +..):):;< =++, -,,-R$$**,-W6	 "rD   c                $   < V ^8  d   QhRS[ RR/# r   r   )r?   r@   s   "rA   rB   r    s     < <V < <rD   c                .   a a R  VV 3R lloS! V4       R# )c                (    V ^8  d   QhR\         RR/# r*  r+  )r?   s   "rA   rB   2HOCRConverter.receive_layout.<locals>.__annotate__  s     9	 9	 9	D 9	rD   c                    < SP                   '       d'   \        V \        4      '       d   SP                  4        \        V \        4      '       dq   V P
                  Sn        SP                  R V P                   RSP                  V P
                  4       R24       V  F  pS! V4       K  	  SP                  R4       R	# \        V \        4      '       dS   SP                  RSP                  V P
                  4       R24       V  F  pS! V4       K  	  SP                  R4       R	# \        V \        4      '       d`   SP                  RV P                   RSP                  V P
                  4       R24       V  F  pS! V4       K  	  SP                  R4       R	# \        V \        4      '       Ed   SP                   '       gR   RSn         V P                  4       Sn        V P
                  Sn        V P"                  Sn        V P&                  Sn        R	# \+        V P                  4       P-                  4       4      ^ 8X  d2   SP                  4        SP                  V P                  4       4       R	# SP                   ^,          V P
                  ^,          8w  g7   SP$                  V P"                  8w  g   SP(                  V P&                  8w  dD   SP                  4        V P
                  Sn        V P"                  Sn        V P&                  Sn        S;P                  V P                  4       ,          un        SP                   ^ ,          SP                   ^,          V P
                  ^,          SP                   ^,          3Sn        R	# R	# )
z<div class='ocr_page' id='z	' title='r  ro  z<span class='ocr_line' title='r&  r  z<div class='ocr_block' id='TN)r  r^   r   r-  r   rf   r	  r"  r5  r  r   r   r  r   r/  r'  r*  r  r(  r  r)  r]   r+  )rz   r1  
child_liner2  rJ   s   &  rA   r2  ,HOCRConverter.receive_layout.<locals>.render  s      Zf%=%=!$''!%

;;- ("nnTYY78> "E5M "

:&D*--

4T^^DII5N4OrR #'J:& #'

;'D),,

::, '"nnTYY78> "E5M "

:&D&))((((,D%(,D%(,		D%(,D%(,		D%..01Q6OO%JJt}}/ ))!,		!<,,=,,		9),0II),0MM),0II)%%8%))!,))!,		!))!,	)D%+ *rD   Nr   r6  s   f&@rA   ra   HOCRConverter.receive_layout  s    9	 9	v 	vrD   c                   < V ^8  d   QhRR/# rg  r   )r?   r@   s   "rA   rB   r    r  rD   c                &    V P                  4        R # rF   r  r   s   &rA   r  HOCRConverter.close  r  rD   )r	  r  r  r*  r(  r)  r'  )utf8r   NF)r   r   r   r   __doc__r   r  r  rG   r  r"  r^  rs  r%  r-  ra   r  r   r   r   s   @rA   r   r   J  st     U  jj9:G *; ;1 1 2
 
 
" "&< <| rD   r   )Kr  loggingr   collections.abcr   typingr   r   r   r   r   r	   pdfminerr
   pdfminer.imager   pdfminer.layoutr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pdfminer.pdfcolorr   pdfminer.pdfdevicer    pdfminer.pdfexceptionsr!   pdfminer.pdffontr"   r#   pdfminer.pdfinterpr$   r%   pdfminer.pdfpager'   pdfminer.pdftypesr(   pdfminer.utilsr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   	getLoggerr   r   r5   r   r   r   r  r@  r  r   r   rD   rA   <module>rK     s   	  	 $   &     * , , 0 : B $ '    !R Rj) & 
68U	3$gfo <6L' 6rjL' jZ	[<& [|nL' nrD   