Ë
    vl�jäˆ  ã                   ó8  — d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d d	l(m)Z) d d
l*m+Z+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?  ej€                  eA«      ZB G d„ de'«      ZC G d„ deC«      ZD e
de	ee5«      ZE G d„ deCeeE   «      ZF G d„ deFe5   «      ZG G d„ deFe5   «      ZH G d„ deFe5   «      ZI G d„ deFe5   «      ZJy)é    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                   ó  — e Zd ZU eed<   eed<   	 	 d%dedededz  ddfd„Z	d	e
deddfd
„Zd	e
ddfd„Zdedededdfd„Zdeddfd„Zdededdfd„Zdededededee   ddfd„Zdededededededed edefd!„Zdededefd"„Zd#eddfd$„Zy)&ÚPDFLayoutAnalyzerÚcur_itemÚctmNÚrsrcmgrÚpagenoÚlaparamsÚreturnc                 óZ   — t        j                  | |«       || _        || _        g | _        y ©N)r    Ú__init__r8   r9   Ú_stack©Úselfr7   r8   r9   s       úH/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/converter.pyr=   zPDFLayoutAnalyzer.__init__A   s)   € ô 	×Ñ˜t WÔ-ØˆŒØ ˆŒØ/1ˆ�ó    Úpagec                 ó¬   — t        ||j                  «      \  }}}}ddt        ||z
  «      t        ||z
  «      f}t        | j                  |«      | _        y )Nr   )r.   ÚmediaboxÚabsr   r8   r5   )r@   rC   r6   Úx0Úy0Úx1Úy1rE   s           rA   Ú
begin_pagezPDFLayoutAnalyzer.begin_pageL   sK   € Ü,¨S°$·-±-Ó@ÑˆˆR��RØ�qœ#˜b 2™g›,¬¨B°©G«Ð5ˆÜ˜tŸ{™{¨HÓ5ˆ�rB   c                 óž  — | j                   r#J t        t        | j                   «      «      «       ‚t        | j                  t
        «      s#J t        t        | j                  «      «      «       ‚| j                  �%| j                  j                  | j                  «       | xj                  dz  c_	        | j                  | j                  «       y )Né   )r>   ÚstrÚlenÚ
isinstancer5   r   Útyper9   Úanalyzer8   Úreceive_layout)r@   rC   s     rA   Úend_pagezPDFLayoutAnalyzer.end_pageQ   sˆ   € Ø—;’;Ð5¤¤C¨¯©Ó$4Ó 5Ó5ˆÜ˜$Ÿ-™-¬Ô0ÐJ´#´d¸4¿=¹=Ó6IÓ2JÓJÐ0Ø�=‰=Ð$Ø�M‰M×!Ñ! $§-¡-Ô0Ø�Š�qÑ�Ø×Ñ˜DŸM™MÕ*rB   ÚnameÚbboxÚmatrixc                 óš   — | j                   j                  | j                  «       t        ||t	        || j
                  «      «      | _        y r<   )r>   Úappendr5   r   r2   r6   )r@   rU   rV   rW   s       rA   Úbegin_figurezPDFLayoutAnalyzer.begin_figureY   s3   € Ø�‰×Ñ˜4Ÿ=™=Ô)Ü   t¬[¸ÀÇÁÓ-JÓKˆ�rB   Ú_c                 ó
  — | j                   }t        | j                   t        «      s#J t        t	        | j                   «      «      «       ‚| j
                  j                  «       | _         | j                   j                  |«       y r<   )r5   rP   r   rN   rQ   r>   ÚpopÚadd)r@   r[   Úfigs      rA   Ú
end_figurezPDFLayoutAnalyzer.end_figure]   sV   € Ø�m‰mˆÜ˜$Ÿ-™-¬Ô2ÐL´C¼¸T¿]¹]Ó8KÓ4LÓLÐ2ØŸ™Ÿ™Ó)ˆŒØ�‰×Ñ˜#ÕrB   Ústreamc                 óv  — t        | j                  t        «      s#J t        t	        | j                  «      «      «       ‚t        ||| j                  j                  | j                  j                  | j                  j                  | j                  j                  f«      }| j                  j                  |«       y r<   )rP   r5   r   rN   rQ   r   rG   rH   rI   rJ   r^   )r@   rU   ra   Úitems       rA   Úrender_imagezPDFLayoutAnalyzer.render_imagec   s�   € Ü˜$Ÿ-™-¬Ô2ÐL´C¼¸T¿]¹]Ó8KÓ4LÓLÐ2ÜØØØ�]‰]×Ñ˜tŸ}™}×/Ñ/°·±×1AÑ1AÀ4Ç=Á=×CSÑCSÐTó
ˆð
 	�‰×Ñ˜$ÕrB   ÚgstateÚstrokeÚfillÚevenoddÚpathc                 óx  — dj                  d„ |D «       «      }|dd dk7  ry|j                  d«      dkD  rTt        j                  d|«      D ]:  }||j	                  d«      |j                  d«       }| j                  |||||«       Œ< y|D �	cg c]%  }	t        t        |	d   dk7  r|	d	d n|d   d	d «      ‘Œ' }
}	|
D �cg c]  }t        | j                  |«      ‘Œ }}|D �cg c]  }t        |d   «      ‘Œ }}|D ���cg c]W  }t        |ddd
…   |d
dd
…   d¬«      D ��cg c]/  \  }}t        | j                  t        |«      t        |«      f«      ‘Œ1 c}}‘ŒY }}}}t        ||d¬«      D ��	cg c]  \  }}	t        t        |g|	¢­«      ‘Œ }}}	t        |«      dkD  r+|d	d dk(  r#|d	   |d   k(  r|dd	 dz   }|j!                  «        |dv r_t#        |j$                  |d   |d   ||||j&                  |j(                  ||j*                  ¬«
      }| j,                  j/                  |«       y|dv �r|\  \  }}\  }}\  }}\  }}}|d   |d   k(  }||k(  xr ||k(  xr ||k(  xr ||k(  xs ||k(  xr ||k(  xr ||k(  xr ||k(  }|rd|rbt1        |j$                  g |d   ¢|d
   ¢­||||j&                  |j(                  ||j*                  «	      } | j,                  j/                  | «       yt3        |j$                  |||||j&                  |j(                  ||j*                  «	      }!| j,                  j/                  |!«       yt3        |j$                  |||||j&                  |j(                  ||j*                  «	      }!| j,                  j/                  |!«       yc c}	w c c}w c c}w c c}}w c c}}}w c c}	}w )z@Paint paths described in section 4.4 of the PDF reference manualÚ c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   N© )Ú.0Úxs     rA   ú	<genexpr>z/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>u   s   è ø€ Ò+ ˜˜!�Ñ+ùs   ‚NrM   Úmzm[^m]+r   Úhéþÿÿÿé   F)Ústricté   Úlh>   ÚmlÚmlh)Úoriginal_pathÚdashing_style>   ÚmlllhÚmllllé   )ÚjoinÚcountÚreÚfinditerÚstartÚendÚ
paint_pathr	   r+   r-   r6   rN   ÚzipÚfloatr*   rO   r]   r   Ú	linewidthÚscolorÚncolorÚdashr5   r^   r   r   )"r@   re   rf   rg   rh   ri   Úshaperq   ÚsubpathÚpÚraw_ptsÚptÚptsÚ	operationÚ	operatorsÚoperand1Úoperand2Útransformed_pointsÚoÚtransformed_pathÚlinerG   rH   rI   rJ   Úx2Úy2Úx3Úy3r[   Úis_closed_loopÚhas_square_coordinatesÚrectÚcurves"                                     rA   r…   zPDFLayoutAnalyzer.paint_pathl   sü  € ð —‘Ñ+ dÔ+Ó+ˆà��!ˆ9˜Òð à�[‰[˜Ó Ò!ä—[‘[ ¨EÓ2ò H�Ø˜qŸw™w q›z¨A¯E©E°!«HÐ5�Ø—‘ ¨°°g¸wÕGñHð OSöØIJ””U a¨¡d¨c¢k˜A˜b˜c™F°t¸A±w¸r¸s°|ÕDðˆGð ð <CÖC°R”? 4§8¡8¨RÕ0ÐCˆCÐCà<@ÖA¨yœ˜Y q™\Õ*ÐAˆIÐAð "&÷"ð "ð ô	 /2Ø! ! $ Q $™¨°1°4°a°4©Àô/÷á*˜ (ô $ D§H¡H¬u°X«ÄÀhÃÐ.PÕQõð"Ðò "ô   	Ð+=ÀeÔL÷ á�A�qô ”[ 1 ' q¡'Õ*ð Ðñ  ô �5‹z˜AŠ~ %¨¨ *°Ò"4¸¸R¹ÀCÈÁFÒ9JØ˜c˜r˜
 SÑ(�Ø—‘”	à˜Ñ%ô
 Ø×$Ñ$Ø˜‘FØ˜‘FØØØØ—M‘MØ—M‘MØ"2Ø"(§+¡+ô�ð —‘×!Ñ! $Õ'àÐ,Ò,Ø<?Ñ9‘��R™(˜2˜r¡H R¨©h¨r°2¸à!$ Q¡¨3¨q©6Ñ!1�à˜"‘HÒC  r¡ÒC¨b°B©hÒC¸2À¹8ò*Gà˜B‘hÒE 2¨¡8ÒE°°b±ÒE¸RÀ2¹Xð 'ñ "Ñ&<Ü!Ø×(Ñ(Ø*˜#˜a™&Ð* 3 q¡6Ñ*ØØØØŸ™ØŸ™Ø(ØŸ™ó
�Dð —M‘M×%Ñ% dÕ+ä#Ø×(Ñ(ØØØØØŸ™ØŸ™Ø(ØŸ™ó
�Eð —M‘M×%Ñ% eÕ,äØ×$Ñ$ØØØØØ—M‘MØ—M‘MØ$Ø—K‘Kó
�ð —‘×!Ñ! %Õ(ùòsùò DùâAùóùô"ùó s0   Â*NÂ>NÃ!N$Ã>"N/Ä 4N)ÅN/Å/N6Î)N/ÚfontÚfontsizeÚscalingÚriseÚcidÚncsÚgraphicstatec	                 óv  — 	 |j                  |«      }	t        |	t        «      sJ t        t        |	«      «      «       ‚	 |j                  |«      }
|j                  |«      }t        ||||||	|
|||«
      }| j                  j                  |«       |j                  S # t        $ r | j                  ||«      }	Y Œzw xY wr<   )Ú	to_unichrrP   rN   rQ   r#   Úhandle_undefined_charÚ
char_widthÚ	char_dispr   r5   r^   Úadv)r@   rW   r¢   r£   r¤   r¥   r¦   r§   r¨   ÚtextÚ	textwidthÚtextdisprc   s                rA   Úrender_charzPDFLayoutAnalyzer.render_charé   s¸   € ð	9Ø—>‘> #Ó&ˆDÜ˜d¤CÔ(Ð9¬#¬d°4«j«/Ó9Ñ(ð —O‘O CÓ(ˆ	Ø—>‘> #Ó&ˆÜØØØØØØØØØØó
ˆð 	�‰×Ñ˜$ÔØ�x‰xˆøô# $ò 	9Ø×-Ñ-¨d°CÓ8ŠDð	9ús   ‚:B ÂB8Â7B8c                 ó<   — t         j                  d||«       d|› d�S )Nzundefined: %r, %rz(cid:ú))ÚlogÚdebug)r@   r¢   r¦   s      rA   r«   z'PDFLayoutAnalyzer.handle_undefined_char
  s!   € Ü�	‰	Ð% t¨SÔ1Ø�s�e˜1ˆ~ÐrB   Últpagec                  ó   — y r<   rm   ©r@   r·   s     rA   rS   z PDFLayoutAnalyzer.receive_layout  s   € ØrB   ©rM   N)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r)   r%   Úintr   r=   r&   rK   rT   rN   r,   rZ   r`   r'   rd   r$   Úboolr   r*   r…   r"   r‡   r   r²   r«   r   rS   rm   rB   rA   r4   r4   =   s›  … ØÓØ	ƒKð
 Ø$(ñ		2à#ð	2ð ð	2ð ˜T‘/ð		2ð
 
ó	2ð6˜wð 6¨Vð 6¸ó 6ð
+˜Wð +¨ó +ðL ð L¨Dð L¸&ð LÀTó Lð˜Cð  Dó ð  ð  ¨ið  ¸Dó  ð{)àð{)ð ð{)ð ð	{)ð
 ð{)ð �{Ñ#ð{)ð 
ó{)ðzàðð ðð ð	ð
 ðð ðð ðð ðð &ðð 
óðB¨'ð ¸ð Àó ð Vð °ô rB   r4   c            	       óL   — e Zd Z	 	 d
dedededz  ddfd„Zdeddfd„Zdefd	„Z	y)ÚPDFPageAggregatorNr7   r8   r9   r:   c                 óD   — t         j                  | |||¬«       d | _        y ©N)r8   r9   )r4   r=   Úresultr?   s       rA   r=   zPDFPageAggregator.__init__  s"   € ô 	×"Ñ" 4¨¸È(Ð"ÔSØ%)ˆ�rB   r·   c                 ó   — || _         y r<   ©rÅ   r¹   s     rA   rS   z PDFPageAggregator.receive_layout  s	   € Øˆ�rB   c                 ó6   — | j                   €J ‚| j                   S r<   rÇ   ©r@   s    rA   Ú
get_resultzPDFPageAggregator.get_result  s   € Ø�{‰{Ð&Ð&Ð&Ø�{‰{ÐrB   rº   )
r»   r¼   r½   r%   r¿   r   r=   r   rS   rÊ   rm   rB   rA   rÂ   rÂ     sX   „ ð Ø$(ñ	*à#ð*ð ð*ð ˜T‘/ð	*ð
 
ó*ð Vð °ó ð˜Fô rB   rÂ   ÚIOTypec                   óT   — e Zd Z	 	 	 d
dedededededz  ddfd„Ze	de
defd	„«       Zy)ÚPDFConverterNr7   ÚoutfpÚcodecr8   r9   r:   c                 ó’   — t         j                  | |||¬«       || _        || _        | j	                  | j                  «      | _        y rÄ   )r4   r=   rÎ   rÏ   Ú_is_binary_streamÚoutfp_binary)r@   r7   rÎ   rÏ   r8   r9   s         rA   r=   zPDFConverter.__init__)  s@   € ô 	×"Ñ" 4¨¸È(Ð"ÔSØ"ˆŒ
ØˆŒ
Ø ×2Ñ2°4·:±:Ó>ˆÕrB   c                 óÊ   — dt        | dd«      v ryt        | d«      ryt        | t        j                  «      ryt        | t        j
                  t        j                  f«      ryy)z"Test if an stream is binary or notÚbÚmoderk   TF)ÚgetattrÚhasattrrP   ÚioÚBytesIOÚStringIOÚ
TextIOBase)rÎ   s    rA   rÑ   zPDFConverter._is_binary_stream6  sS   € ð ”'˜% ¨Ó,Ñ,ØÜ�U˜FÔ#àÜ˜œrŸz™zÔ*ØÜ˜¤§¡¬R¯]©]Ð;Ô<ØàrB   )úutf-8rM   N)r»   r¼   r½   r%   rË   rN   r¿   r   r=   Ústaticmethodr(   rÀ   rÑ   rm   rB   rA   rÍ   rÍ   (  sr   „ ð
 ØØ$(ñ?à#ð?ð ð?ð ð	?ð
 ð?ð ˜T‘/ð?ð 
ó?ð ð ð ¨4ò ó ñrB   rÍ   c                   ó²   ‡ — e Zd Z	 	 	 	 	 ddedededededz  dede	dz  d	dfˆ fd
„Z
ded	dfd„Zded	dfd„Zdeded	dfd„Zdededededee   d	dfd„Zˆ xZS )ÚTextConverterNr7   rÎ   rÏ   r8   r9   Ú
showpagenoÚimagewriterr:   c                 óJ   •— t         ‰| �  |||||¬«       || _        || _        y )N©rÏ   r8   r9   )Úsuperr=   rà   rá   )	r@   r7   rÎ   rÏ   r8   r9   rà   rá   Ú	__class__s	           €rA   r=   zTextConverter.__init__G  s,   ø€ ô 	‰Ñ˜ %¨u¸VÈhÐÔWØ$ˆŒØ&ˆÕrB   r¯   c                 ó   — t        j                  || j                  d«      }| j                  r8t	        t
        | j                  «      j                  |j                  «       «       y t	        t        | j                  «      j                  |«       y )NÚignore)
r
   Úcompatible_encode_methodrÏ   rÒ   r	   r   rÎ   ÚwriteÚencoder   ©r@   r¯   s     rA   Ú
write_textzTextConverter.write_textU  s[   € Ü×-Ñ-¨d°D·J±JÀÓIˆØ×ÒÜ”˜4Ÿ:™:Ó&×,Ñ,¨T¯[©[«]Õ;ä”˜Ÿ™Ó$×*Ñ*¨4Õ0rB   r·   c                 ó®   ‡ ‡— dt         dd fˆˆ fd„Š‰ j                  r‰ j                  d|j                  › d�«        ‰|«       ‰ j                  d«       y )Nrc   r:   c                 óZ  •— t        | t        «      r| D ]
  } ‰|«       Œ n/t        | t        «      r‰j                  | j	                  «       «       t        | t
        «      r‰j                  d«       y t        | t        «      r)‰j                  �‰j                  j                  | «       y y y )Nú
)	rP   r   r   rì   Úget_textr   r   rá   Úexport_image)rc   ÚchildÚrenderr@   s     €€rA   ró   z,TextConverter.receive_layout.<locals>.render]  s‡   ø€ Ü˜$¤Ô,Ø!ò "�EÙ˜5•Mñ"ä˜D¤&Ô)Ø—‘ §¡£Ô0Ü˜$¤	Ô*Ø—‘ Õ%Ü˜D¤'Ô*¨t×/?Ñ/?Ð/KØ× Ñ ×-Ñ-¨dÕ3ð 0LÐ*rB   zPage rï   ú)r   rà   rì   Úpageid©r@   r·   ró   s   ` @rA   rS   zTextConverter.receive_layout\  sK   ù€ ð		4œð 		4 Dö 		4ð �?Š?Ø�O‰O˜e F§M¡M ?°"Ð5Ô6ÙˆvŒØ�‰˜ÕrB   rU   ra   c                 óL   — | j                   �t        j                  | ||«       y y r<   )rá   rÍ   rd   )r@   rU   ra   s      rA   rd   zTextConverter.render_imagep  s%   € Ø×ÑÐ'Ü×%Ñ% d¨D°&Õ9ð (rB   re   rf   rg   rh   ri   c                  ó   — y r<   rm   )r@   re   rf   rg   rh   ri   s         rA   r…   zTextConverter.paint_patht  s   € ð 	rB   )rÜ   rM   NFN)r»   r¼   r½   r%   r(   rN   r¿   r   rÀ   r   r=   rì   r   rS   r'   rd   r$   r   r*   r…   Ú__classcell__)rå   s   @rA   rß   rß   F  sô   ø„ ð
 ØØ$(Ø Ø*.ñ'à#ð'ð ð'ð ð	'ð
 ð'ð ˜T‘/ð'ð ð'ð ! 4Ñ'ð'ð 
õ'ð1˜sð 1 tó 1ð Vð °ó ð(: ð :¨ið :¸Dó :ðàðð ðð ð	ð
 ðð �{Ñ#ðð 
÷rB   rß   c                   ó  — e Zd ZU dddddddœZeeeef      ed<   d	dd
œZeeeef      ed<   	 	 	 	 	 	 	 	 	 	 	 	 d8de	de
dedededz  dededededededz  dedeeef   dz  deeef   dz  ddfd„Zdeddfd„Zd9d„Zd9d „Zdeddfd!„Zd"ed#ed$ed%ed&ed'eddfd(„Zd"ed#ed)eddfd*„Zd)ed#ed$ed%ed&ed'eddfd+„Zd"eded$ed%ed,eddfd-„Z	 d:d"ed#ed$ed%ed&ed'ed.eddfd/„Zd"eddfd0„Zded1ed2eddfd3„Zd9d4„Zd5eddfd6„Z d9d7„Z!y);ÚHTMLConverterÚyellowÚmagentaÚcyanÚredÚblackÚgray)ÚfigureÚtextlineÚtextboxÚ	textgroupr¡   rC   ÚRECT_COLORSÚblue)r  ÚcharÚTEXT_COLORSNr7   rÎ   rÏ   r8   r9   ÚscaleÚ	fontscaleÚ
layoutmoderà   Ú
pagemarginrá   r¶   Úrect_colorsÚtext_colorsr:   c                 óF  — t         j                  | |||||¬«       | j                  r| j                  st	        d«      ‚| j                  s| j                  rt	        d«      ‚|€ddi}|€dddœ}|| _        || _        || _        |	| _        |
| _	        || _
        || _        || _        |rJ| j                  j                  | j                  «       | j                  j                  | j                  «       | j                  | _        d | _        g | _        | j'                  «        y )Nrã   ú)Codec is required for a binary I/O outputz1Codec must not be specified for a text I/O outputr  r   r  )r¡   rC   )rÍ   r=   rÒ   rÏ   r!   r
  r  r  rà   r  rá   r  r  Úupdater  r	  Ú_yoffsetÚ_fontÚ
_fontstackÚwrite_header)r@   r7   rÎ   rÏ   r8   r9   r
  r  r  rà   r  rá   r¶   r  r  s                  rA   r=   zHTMLConverter.__init__Ž  s  € ô" 	×ÑØØØØØØð 	ô 	
ð ×Ò T§Z¢ZÜÐ KÓLÐLØ× Ò  T§Z¢ZÜÐ SÓTÐTàÐØ! 7Ð+ˆKØÐØ$+°VÑ<ˆKàˆŒ
Ø"ˆŒØ$ˆŒØ$ˆŒØ$ˆŒØ&ˆÔØ&ˆÔØ&ˆÔÙØ×Ñ×#Ñ# D×$4Ñ$4Ô5Ø×Ñ×#Ñ# D×$4Ñ$4Ô5Ø#Ÿ™ˆŒØ/3ˆŒ
Ø:<ˆŒØ×ÑÕrB   r¯   c                 óô   — | j                   rCt        t        | j                  «      j	                  |j                  | j                   «      «       y t        t        | j                  «      j	                  |«       y r<   ©rÏ   r	   r   rÎ   ré   rê   r   rë   s     rA   ré   zHTMLConverter.writeÃ  óH   € Ø�:Š:Ü”˜4Ÿ:™:Ó&×,Ñ,¨T¯[©[¸¿¹Ó-DÕEä”˜Ÿ™Ó$×*Ñ*¨4Õ0rB   c                 ó¨   — | j                  d«       | j                  rd| j                  › d�}nd}| j                  |«       | j                  d«       y )Nz<html><head>
z<<meta http-equiv="Content-Type" content="text/html; charset=ú">
z5<meta http-equiv="Content-Type" content="text/html">
z</head><body>
)ré   rÏ   )r@   Úss     rA   r  zHTMLConverter.write_headerÉ  sP   € Ø�
‰
Ð#Ô$Ø�:Š:ðØŸ:™:˜, dð,ñ ð
 IˆAØ�
‰
�1ŒØ�
‰
Ð$Õ%rB   c                 óÐ   — t        d| j                  «      D �cg c]  }d|› d|› d�‘Œ }}ddj                  |«      › d�}| j                  |«       | j                  d«       y c c}w )	NrM   z
<a href="#ú">z</a>z/<div style="position:absolute; top:0px;">Page: z, ú</div>
z</body></html>
)Úranger8   r   ré   )r@   ÚiÚ
page_linksr  s       rA   Úwrite_footerzHTMLConverter.write_footerÕ  so   € Ü9>¸qÀ$Ç+Á+Ó9NÖO°A˜
 1 # R¨ s¨$Ò/ÐOˆ
ÐOðØ—Y‘Y˜zÓ*Ð+¨8ð5ð 	
ð 	�
‰
�1ŒØ�
‰
Ð%Õ&ùò Ps   ™A#c                 ó8   — | j                  t        |«      «       y r<   )ré   r0   rë   s     rA   rì   zHTMLConverter.write_textÞ  s   € Ø�
‰
”3�t“9ÕrB   ÚcolorÚborderwidthro   ÚyÚwrr   c                 ó  — | j                   j                  |«      }|�hd|› d|› d|| j                  z  › d| j                  |z
  | j                  z  › d|| j                  z  › d|| j                  z  › d�}| j	                  |«       y y )Nz(<span style="position:absolute; border: ú zpx solid; left:úpx; top:ú
px; width:úpx; height:zpx;"></span>
)r  Úgetr
  r  ré   )	r@   r%  r&  ro   r'  r(  rr   Úcolor2r  s	            rA   Ú
place_rectzHTMLConverter.place_rectá  s¤   € ð ×!Ñ!×%Ñ% eÓ,ˆØÐðØ!˜( ! K =ð 1Ø˜DŸJ™J™Ð'ð (ØŸ™¨Ñ)¨T¯Z©ZÑ7Ð8ð 9Ø˜TŸZ™Z™Ð(ð )Ø˜dŸj™j™.Ð)¨ð9ð ð �J‰J�q�Mð rB   rc   c                 ó€   — | j                  |||j                  |j                  |j                  |j                  «       y r<   )r0  rG   rJ   ÚwidthÚheight)r@   r%  r&  rc   s       rA   Úplace_borderzHTMLConverter.place_borderö  s(   € Ø�‰˜˜{¨D¯G©G°T·W±W¸d¿j¹jÈ$Ï+É+ÕVrB   c                 ó4  — | j                   �Œ| j                   j                  |«      }dt        |«      › d|› d|| j                  z  › d| j                  |z
  | j                  z  › d|| j                  z  › d|| j                  z  › d�}| j                  |«       y y )Nz
<img src="z
" border="z!" style="position:absolute; left:r+  zpx;" width="ú
" height="ú" />
)rá   rñ   r0   r
  r  ré   )	r@   rc   r&  ro   r'  r(  rr   rU   r  s	            rA   Úplace_imagezHTMLConverter.place_imageù  s«   € ð ×ÑÐ'Ø×#Ñ#×0Ñ0°Ó6ˆDàœS ›Y˜K z°+°ð ?à˜DŸJ™J™Ð'ð (ØŸ™¨Ñ)¨T¯Z©ZÑ7Ð8ð 9Ø˜dŸj™j™.Ð)ð *Ø˜tŸz™z™>Ð*¨&ð2ð ð �J‰J�q�Mð (rB   Úsizec           	      óF  — | j                   j                  |«      }|�„d|› d|| j                  z  › d| j                  |z
  | j                  z  › d|| j                  z  | j                  z  › d�	}| j                  |«       | j                  |«       | j                  d«       y y )Nz&<span style="position:absolute; color:ú; left:r+  zpx; font-size:úpx;">ú</span>
)r  r.  r
  r  r  ré   rì   )r@   r%  r¯   ro   r'  r9  r/  r  s           rA   Ú
place_textzHTMLConverter.place_text  s®   € ð ×!Ñ!×%Ñ% eÓ,ˆØÐðØ˜ð !Ø˜DŸJ™J™Ð'ð (ØŸ™¨Ñ)¨T¯Z©ZÑ7Ð8ð 9Ø! D§J¡JÑ.°·±Ñ?Ð@Àð	Gð ð �J‰J�qŒMØ�O‰O˜DÔ!Ø�J‰J�{Õ#ð rB   Úwriting_modec                 ó0  — | j                   j                  | j                  «       d | _        d|› d|› d|› d|| j                  z  › d| j                  |z
  | j                  z  › d|| j                  z  › d|| j                  z  › d�}| j                  |«       y )	Nz'<div style="position:absolute; border: r*  zpx solid; writing-mode:r;  r+  r,  r-  r<  )r  rY   r  r
  r  ré   )	r@   r%  r&  ro   r'  r(  rr   r?  r  s	            rA   Ú	begin_divzHTMLConverter.begin_div#  sª   € ð 	�‰×Ñ˜tŸz™zÔ*ØˆŒ
ðØ�g˜Q˜{˜mð ,Ø(˜>ð *Ø˜Ÿ
™
‘NÐ#ð $Ø—M‘M AÑ%¨¯©Ñ3Ð4ð 5Ø˜Ÿ™‘^Ð$ð %Ø˜$Ÿ*™*‘nÐ% Uð,ð 	
ð 	�
‰
�1�rB   c                 óž   — | j                   �| j                  d«       | j                  j                  «       | _         | j                  d«       y )Nú</span>z</div>)r  ré   r  r]   )r@   r%  s     rA   Úend_divzHTMLConverter.end_div:  s8   € Ø�:‰:Ð!Ø�J‰J�yÔ!Ø—_‘_×(Ñ(Ó*ˆŒ
Ø�
‰
�8ÕrB   Úfontnamer£   c                 ó   — ||f}|| j                   k7  rj| j                   �| j                  d«       |j                  d«      d   }| j                  d|› d|| j                  z  | j                  z  › d�«       || _         | j                  |«       y )NrC  ú+éÿÿÿÿz<span style="font-family: z; font-size:zpx">)r  ré   Úsplitr
  r  rì   )r@   r¯   rE  r£   r¢   Úfontname_without_subset_tags         rA   Úput_textzHTMLConverter.put_text@  s“   € Ø˜(Ð#ˆØ�4—:‘:ÒØ�z‰zÐ%Ø—
‘
˜9Ô%à*2¯.©.¸Ó*=¸bÑ*AÐ'Ø�J‰Jð Ø ;Ð<ð =Ø%¨¯
©
Ñ2°T·^±^ÑCÐDÀDðJôð
 ˆDŒJØ�‰˜ÕrB   c                 ó&   — | j                  d«       y )Nz<br>©ré   rÉ   s    rA   Úput_newlinezHTMLConverter.put_newlineO  s   € Ø�
‰
�6ÕrB   r·   c                 ó¤   ‡ ‡‡— dt         t        z  dd fˆ ˆfd„Šdt        dd fˆˆ ˆfd„Š ‰|«       ‰ xj                  ‰ j                  z  c_        y )Nrc   r:   c                 ól   •— t        | t        «      r#‰j                  dd| «       | D ]
  } ‰|«       Œ y y )Nr  rM   )rP   r   r4  ©rc   rò   r@   Ú
show_groups     €€rA   rR  z0HTMLConverter.receive_layout.<locals>.show_groupS  s;   ø€ Ü˜$¤Ô,Ø×!Ñ! +¨q°$Ô7Ø!ò &�EÙ˜uÕ%ñ&ð -rB   c           
      óN  •— t        | t        «      rØ‰xj                  | j                  z  c_        ‰j	                  dd| «       ‰j
                  rd‰j                  d‰j                  | j                  z
  ‰j                  z  › �«       ‰j                  d| j                  › d| j                  › d�«       | D ]
  } ‰|«       Œ | j                  �| j                  D ]
  } ‰|«       Œ y y t        | t        «      r‰j	                  dd| «       y t        | t        «      r_‰j                  dd| j                  | j                  | j                  | j                  «       | D ]
  } ‰|«       Œ ‰j!                  d«       y t        | t"        «      r?‰j%                  | d| j                  | j                  | j                  | j                  «       y ‰j&                  d	k(  �rt        | t(        «      r#‰j	                  d
d| «       | D ]
  } ‰|«       Œ y t        | t*        «      rb‰j	                  dd| «       ‰j-                  dt/        | j0                  dz   «      | j                  | j                  d«       | D ]
  } ‰|«       Œ y t        | t2        «      rU‰j	                  dd| «       ‰j-                  d| j5                  «       | j                  | j                  | j6                  «       y y t        | t(        «      r0| D ]
  } ‰|«       Œ ‰j&                  dk7  r‰j9                  «        y y t        | t*        «      rn‰j                  dd| j                  | j                  | j                  | j                  | j;                  «       «       | D ]
  } ‰|«       Œ ‰j!                  d«       y t        | t2        «      rAt=        | j>                  «      }‰jA                  | j5                  «       || j6                  «       y t        | tB        «      r ‰jE                  | j5                  «       «       y y )NrC   rM   z*<div style="position:absolute; top:%dpx;">z	<a name="z">Page z</a></div>
r¡   r  Úexactr  r  é   r  Úloose)#rP   r   r  rJ   r4  rà   ré   r
  rõ   Úgroupsr   r   rA  rG   r2  r3  rD  r   r8  r  r   r   r>  rN   Úindexr   rð   r9  rN  Úget_writing_moder1   rE  rK  r   rì   )rc   rò   ÚgrouprE  ró   r@   rR  s       €€€rA   ró   z,HTMLConverter.receive_layout.<locals>.renderY  s_  ø€ ä˜$¤Ô'Ø—’ §¡Ñ(•Ø×!Ñ! &¨!¨TÔ2Ø—?’?Ø—J‘JØDØ ŸM™M¨D¯G©GÑ3°t·z±zÑAÐBðDôð —J‘JØ# D§K¡K =°¸¿¹°}ÀLÐQôð "ò "�EÙ˜5•Mð"à—;‘;Ð*Ø!%§¡ò *˜Ù" 5Õ)ñ*ð +ô ˜D¤'Ô*Ø×!Ñ! '¨1¨dÕ3Ü˜D¤(Ô+Ø—‘˜x¨¨D¯G©G°T·W±W¸d¿j¹jÈ$Ï+É+ÔVØ!ò "�EÙ˜5•Mð"à—‘˜XÕ&Ü˜D¤'Ô*Ø× Ñ   q¨$¯'©'°4·7±7¸D¿J¹JÈÏÉÕTØ—‘ GÓ+Ü˜d¤JÔ/Ø×%Ñ% j°!°TÔ:Ø!%ò &˜Ù˜u�ñ&ä ¤iÔ0Ø×%Ñ% i°°DÔ9Ø—O‘OØ!Ü˜DŸJ™J¨™NÓ+ØŸ™ØŸ™Øôð "&ò &˜Ù˜u�ñ&ä ¤fÔ-Ø×%Ñ% f¨a°Ô6Ø—O‘OØØŸ™›ØŸ™ØŸ™ØŸ	™	õð .ô ˜D¤*Ô-Ø!ò "�EÙ˜5•Mð"à—?‘? gÒ-Ø×$Ñ$Õ&ð .ä˜D¤)Ô,Ø—‘ØØØ—G‘GØ—G‘GØ—J‘JØ—K‘KØ×)Ñ)Ó+ôð "ò "�EÙ˜5•Mð"à—‘˜YÕ'Ü˜D¤&Ô)Ü*¨4¯=©=Ó9�Ø—‘˜dŸm™m›o¨x¸¿¹ÕCÜ˜D¤&Ô)Ø—‘ §¡£Õ0ð *rB   )r   r   r   r  r  ©r@   r·   ró   rR  s   ` @@rA   rS   zHTMLConverter.receive_layoutR  sN   ú€ ð	&œ[Ô+;Ñ;ð 	&Àö 	&ðJ	1œð J	1 D÷ J	1ñX 	ˆvŒØ�Š˜Ÿ™Ñ(ŽrB   c                 ó$   — | j                  «        y r<   ©r#  rÉ   s    rA   ÚclosezHTMLConverter.close¨  ó   € Ø×ÑÕrB   )rÜ   rM   NrM   g      ð?ÚnormalTé2   Nr   NN©r:   N)ÚFalse)"r»   r¼   r½   r  r   ÚdictrN   r¾   r	  r%   r(   r¿   r   r‡   rÀ   r   r=   ré   r  r#  rì   r0  r   r4  r   r8  r>  rA  rD  rK  rN  r   rS   r^  rm   rB   rA   rû   rû     s	  … àØØØØØñ-€K�˜$˜s C˜x™.Ñ)ó ð Øñ-€K�˜$˜s C˜x™.Ñ)ó ð ØØ$(ØØØ"ØØØ*.ØØ-1Ø-1ñ3à#ð3ð ð3ð ð	3ð
 ð3ð ˜T‘/ð3ð ð3ð ð3ð ð3ð ð3ð ð3ð ! 4Ñ'ð3ð ð3ð ˜#˜s˜(‘^ dÑ*ð3ð ˜#˜s˜(‘^ dÑ*ð3ð  
ó!3ðj1˜#ð 1 $ó 1ó
&ó'ð˜sð  tó ðàðð ðð ð	ð
 ðð ðð ðð 
óð*W #ð W°Cð W¸{ð WÈtó Wðàðð ðð ð	ð
 ðð ðð ðð 
óð*$àð$ð ð$ð ð	$ð
 ð$ð ð$ð 
ó$ð: $ñàðð ðð ð	ð
 ðð ðð ðð ðð 
óð.˜Sð  Tó ð˜Sð ¨Cð ¸5ð ÀTó óðT) Vð T)°ó T)ôlrB   rû   c                   ó¸   — e Zd Z ej                  d«      Z	 	 	 	 	 ddededede	de
dz  dedz  d	ed
dfd„Zded
dfd„Zdd„Zdd„Zded
dfd„Zded
dfd„Zdd„Zy)ÚXMLConverterz[ ---]Nr7   rÎ   rÏ   r8   r9   rá   Ústripcontrolr:   c                 óÀ   — t         j                  | |||||¬«       | j                  | j                   k(  rt	        d«      ‚|| _        || _        | j                  «        y )Nrã   r  )rÍ   r=   rÒ   rÏ   r!   rá   rg  r  )r@   r7   rÎ   rÏ   r8   r9   rá   rg  s           rA   r=   zXMLConverter.__init__¯  sg   € ô 	×ÑØØØØØØð 	ô 	
ð ×Ñ T§Z¡Z Ò0ÜÐ KÓLÐLà&ˆÔØ(ˆÔØ×ÑÕrB   r¯   c                 óô   — | j                   rCt        t        | j                  «      j	                  |j                  | j                   «      «       y t        t        | j                  «      j	                  |«       y r<   r  rë   s     rA   ré   zXMLConverter.writeÊ  r  rB   c                 ó    — | j                   r | j                  d| j                   › d�«       n| j                  d«       | j                  d«       y )Nz<?xml version="1.0" encoding="z" ?>
z<?xml version="1.0" ?>
z<pages>
©rÏ   ré   rÉ   s    rA   r  zXMLConverter.write_headerÐ  s<   € Ø�:Š:Ø�J‰JÐ7¸¿
¹
°|À6ÐJÕKà�J‰JÐ1Ô2Ø�
‰
�;ÕrB   c                 ó&   — | j                  d«       y )Nz	</pages>
rM  rÉ   s    rA   r#  zXMLConverter.write_footer×  s   € Ø�
‰
�<Õ rB   c                 óˆ   — | j                   r| j                  j                  d|«      }| j                  t	        |«      «       y ©Nrk   )rg  ÚCONTROLÚsubré   r0   rë   s     rA   rì   zXMLConverter.write_textÚ  s1   € Ø×ÒØ—<‘<×#Ñ# B¨Ó-ˆDØ�
‰
”3�t“9ÕrB   r·   c                 óX   ‡ ‡‡— dt         dd fˆ ˆfd„Šdt         dd fˆˆ ˆfd„Š ‰|«       y )Nrc   r:   c                 óD  •— t        | t        «      r6‰j                  d| j                  › dt	        | j
                  «      › d�«       y t        | t        «      rI‰j                  dt	        | j
                  «      › d�«       | D ]
  } ‰|«       Œ ‰j                  d«       y y )Nú<textbox id="ú" bbox="r7  z<textgroup bbox="r  z</textgroup>
)rP   r   ré   rX  r/   rV   r   rQ  s     €€rA   rR  z/XMLConverter.receive_layout.<locals>.show_groupà  sŽ   ø€ Ü˜$¤	Ô*Ø—
‘
Ø# D§J¡J <¨x¼ÀÇÁÓ8KÐ7LÈFÐSõô ˜D¤+Ô.Ø—
‘
Ð.¬x¸¿	¹	Ó/BÐ.CÀ4ÐHÔIØ!ò &�EÙ˜uÕ%ð&à—
‘
Ð+Õ,ð	 /rB   c                 ó	  •— t        | t        «      r¬d| j                  › dt        | j                  «      › d| j
                  › d�}‰j                  |«       | D ]
  } ‰|«       Œ | j                  �;‰j                  d«       | j                  D ]
  } ‰|«       Œ ‰j                  d«       ‰j                  d«       y t        | t        «      r8d| j                  › dt        | j                  «      › d	�}‰j                  |«       y t        | t        «      r8d
| j                  › dt        | j                  «      › d	�}‰j                  |«       y t        | t        «      rId| j                  › dt        | j                  «      › d| j                  «       › d�}‰j                  |«       y t        | t        «      rXd| j                  › dt        | j                  «      › d�}‰j                  |«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t        «      rI‰j                  dt        | j                  «      › d�«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t         «      rod}t        | t"        «      rd}d| j$                  › dt        | j                  «      › d|› d�}‰j                  |«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t&        «      r­dt)        | j*                  «      › dt        | j                  «      › d| j,                  j                  › d| j.                  j0                  › d| j2                  d›d�}‰j                  |«       ‰j5                  | j7                  «       «       ‰j                  d«       y t        | t8        «      r$‰j                  d| j7                  «       › d�«       y t        | t:        «      r�‰j<                  �T‰j<                  j?                  | «      }‰j                  d t)        |«      › d!| j@                  › d"| jB                  › d	�«       y ‰j                  d#| j@                  › d"| jB                  › d	�«       y tE        tG        d$| f«      «      ‚)%Nz
<page id="rt  z
" rotate="r  z	<layout>
z
</layout>
z</page>
z<line linewidth="r7  z<rect linewidth="z<curve linewidth="z" pts="z"/>
z<figure name="z
</figure>
z<textline bbox="z</textline>
rk   z wmode="vertical"rs  ú"z>
z</textbox>
z<text font="z" colourspace="z" ncolour="z" size="z.3fr  z</text>
z<text>z<image src="z	" width="r6  z<image width="Ú	Unhandled)$rP   r   rõ   r/   rV   Úrotateré   rW  r   rˆ   r   r   Úget_ptsr   rU   r   r   r   rX  r   r0   rE  r§   r¨   rŠ   r9  rì   rð   r   r   rá   rñ   r2  r3  ÚAssertionErrorrN   )	rc   r  rò   rZ  ÚwmoderU   ró   r@   rR  s	         €€€rA   ró   z+XMLConverter.receive_layout.<locals>.renderë  s  ø€ ä˜$¤Ô'à  §¡ ð .Ü% d§i¡iÓ0Ð1ð 2Ø#Ÿ{™{˜m¨4ð1ð ð
 —
‘
˜1”Ø!ò "�EÙ˜5•Mð"à—;‘;Ð*Ø—J‘J˜|Ô,Ø!%§¡ò *˜Ù" 5Õ)ð*à—J‘J˜}Ô-Ø—
‘
˜;Õ'Ü˜D¤&Ô)ð"Ø"&§.¡.Ð!1ð 2Ü% d§i¡iÓ0Ð1°ð9ð ð
 —
‘
˜1•Ü˜D¤&Ô)ð"Ø"&§.¡.Ð!1ð 2Ü% d§i¡iÓ0Ð1°ð9ð ð
 —
‘
˜1•Ü˜D¤'Ô*ð"Ø"&§.¡.Ð!1ð 2Ü% d§i¡iÓ0Ð1ð 2Ø ŸL™L›NÐ+¨5ð2ð ð —
‘
˜1•Ü˜D¤(Ô+Ø$ T§Y¡Y K¨x¼ÀÇÁÓ8KÐ7LÈDÐQ�Ø—
‘
˜1”Ø!ò "�EÙ˜5•Mð"à—
‘
˜=Õ)Ü˜D¤*Ô-Ø—
‘
Ð-¬h°t·y±yÓ.AÐ-BÀ$ÐGÔHØ!ò "�EÙ˜5•Mð"à—
‘
˜?Õ+Ü˜D¤)Ô,Ø�Ü˜dÔ$5Ô6Ø/�EØ# D§J¡J <¨x¼ÀÇÁÓ8KÐ7LÈAÈeÈWÐTWÐX�Ø—
‘
˜1”Ø!ò "�EÙ˜5•Mð"à—
‘
˜>Õ*Ü˜D¤&Ô)ðÜ  §¡Ó/Ð0ð 1Ü% d§i¡iÓ0Ð1ð 2$Ø$(§H¡H§M¡M ?ð 3 Ø $× 1Ñ 1× 8Ñ 8Ð9ð :Ø!ŸY™Y s˜O¨2ð/ð ð —
‘
˜1”Ø—‘ §¡£Ô0Ø—
‘
˜;Õ'Ü˜D¤&Ô)Ø—
‘
˜V D§M¡M£OÐ#4°IÐ>Õ?Ü˜D¤'Ô*Ø×#Ñ#Ð/Ø×+Ñ+×8Ñ8¸Ó>�DØ—J‘Jð Ü # D£	˜{ð +"Ø"&§*¡* ð .#Ø#'§;¡; -¨vð7õð —J‘JØ(¨¯©¨°J¸t¿{¹{¸mÈ6ÐRõô %¤S¨+°tÐ)<Ó%=Ó>Ð>rB   ©r   r[  s   ` @@rA   rS   zXMLConverter.receive_layoutß  s6   ú€ ð		-œVð 		-¨ö 		-ðW	?œð W	? D÷ W	?ñr 	ˆv�rB   c                 ó$   — | j                  «        y r<   r]  rÉ   s    rA   r^  zXMLConverter.closeF  r_  rB   )rÜ   rM   NNFrb  )r»   r¼   r½   r�   Úcompilero  r%   r(   rN   r¿   r   r   rÀ   r=   ré   r  r#  rì   r   rS   r^  rm   rB   rA   rf  rf  ¬  sÌ   „ Øˆb�j‰jÐ8Ó9€Gð ØØ$(Ø*.Ø"ñà#ðð ðð ð	ð
 ðð ˜T‘/ðð ! 4Ñ'ðð ðð 
óð61˜#ð 1 $ó 1ó ó!ð˜sð  tó ð
e Vð e°ó eôNrB   rf  c                   óÄ   — e Zd ZdZ ej
                  d«      Z	 	 	 	 ddedede	de
dedz  d	efd
„Zdede	fd„Zde	ddfd„Zdd„Zdd„Zde	ddfd„Zdd„Zdeddfd„Zdd„Zy)ÚHOCRConverterzKExtract an hOCR representation from explicit text information within a PDF.z[\x00-\x08\x0b-\x0c\x0e-\x1f]Nr7   rÎ   rÏ   r8   r9   rg  c                 óv   — t         j                  | |||||¬«       || _        d| _        | j	                  «        y )Nrã   F)rÍ   r=   rg  Úwithin_charsr  )r@   r7   rÎ   rÏ   r8   r9   rg  s          rA   r=   zHOCRConverter.__init__]  sG   € ô 	×ÑØØØØØØð 	ô 	
ð )ˆÔØ!ˆÔØ×ÑÕrB   rV   r:   c                 óÄ   — |\  }}}}t        |«      }t        | j                  d   |z
  «      }t        |«      }t        | j                  d   |z
  «      }	d|› d|› d|› d|	› �S )Nrv   zbbox r*  )r¿   Ú	page_bbox)
r@   rV   Úin_x0Úin_y0Úin_x1Úin_y1Úout_x0Úout_y0Úout_x1Úout_y1s
             rA   Ú	bbox_reprzHOCRConverter.bbox_reprr  sq   € Ø'+Ñ$ˆ��u˜eä�U“ˆÜ�T—^‘^ AÑ&¨Ñ.Ó/ˆÜ�U“ˆÜ�T—^‘^ AÑ&¨Ñ.Ó/ˆØ�v�h˜a ˜x q¨¨°°&°Ð:Ð:rB   r¯   c                 óø   — | j                   rE|j                  | j                   «      }t        t        | j                  «      j                  |«       y t        t        | j                  «      j                  |«       y r<   )rÏ   rê   r	   r   rÎ   ré   r   )r@   r¯   Úencoded_texts      rA   ré   zHOCRConverter.write{  sM   € Ø�:Š:ØŸ;™; t§z¡zÓ2ˆLÜ”˜4Ÿ:™:Ó&×,Ñ,¨\Õ:ä”˜Ÿ™Ó$×*Ñ*¨4Õ0rB   c                 ól  — | j                   r | j                  d| j                   › d�«       n| j                  d«       | j                  d«       | j                  d«       | j                  d«       | j                  d«       | j                  d«       | j                  d	«       | j                  d
«       y )NzL<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>
rk  rÉ   s    rA   r  zHOCRConverter.write_header‚  s¥   € Ø�:Š:Ø�J‰Jð4Ø48·J±J°<¸tðEõð
 �J‰JØWôð 	�
‰
�:ÔØ�
‰
Ð&Ô'Ø�
‰
ØTô	
ð 	�
‰
ØPô	
ð 	�
‰
ðCô	
ð 	�
‰
�;ÔØ�
‰
�:ÕrB   c                 óH   — | j                  d«       | j                  d«       y )Nz0<!-- comment in the following line to debug -->
zD<!--script src='https://unpkg.com/hocrjs'></script--></body></html>
rM  rÉ   s    rA   r#  zHOCRConverter.write_footer›  s   € Ø�
‰
ÐFÔGØ�
‰
ØSõ	
rB   c                 óv   — | j                   r| j                  j                  d|«      }| j                  |«       y rn  )rg  ro  rp  ré   rë   s     rA   rì   zHOCRConverter.write_text¡  s-   € Ø×ÒØ—<‘<×#Ñ# B¨Ó-ˆDØ�
‰
�4ÕrB   c                 óŒ  — t        | j                  «      dkD  r¥d}d| j                  v rd}d| j                  v r|dz  }| j                  d| j                  › d| j                  › d	|› d
| j                  | j                  «      › d| j                  › d| j                  › d| j                  j                  «       › d�«       d| _        y )Nr   rk   Ú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 ú'>rC  F)	rO   Úworking_textÚworking_fontré   Úworking_sizer�  Úworking_bboxÚstripr‚  )r@   Úbold_and_italic_styless     rA   Ú
write_wordzHOCRConverter.write_word¦  sà   € Üˆt× Ñ Ó! AÒ%Ø%'Ð"Ø˜4×,Ñ,Ñ,Ø)?Ð&Ø˜×*Ñ*Ñ*Ø&Ð*?Ñ?Ð&Ø�J‰JØ& t×'8Ñ'8Ð&9ð :Ø!×.Ñ.Ð/¨rØ)Ð*ð +àŸ.™.¨×):Ñ):Ó;Ð<ð =Ø×+Ñ+Ð,ð -Ø×,Ñ,Ð-¨RØ×$Ñ$×*Ñ*Ó,Ð-¨Wð6ô	ð "ˆÕrB   r·   c                 ó6   ‡ ‡— dt         dd fˆˆ fd„Š ‰|«       y )Nrc   r:   c                 ój  •— ‰j                   r t        | t        «      r‰j                  «        t        | t        «      rm| j
                  ‰_        ‰j                  d| j                  › d‰j                  | j
                  «      › d�«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t        «      rO‰j                  d‰j                  | j
                  «      › d�«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t        «      r\‰j                  d| j                  › d‰j                  | j
                  «      › d�«       | D ]
  } ‰|«       Œ ‰j                  d«       y t        | t        «      �r­‰j                   sPd	‰_         | j                  «       ‰_        | j
                  ‰_        | j"                  ‰_        | j&                  ‰_        y t+        | j                  «       j-                  «       «      d
k(  r0‰j                  «        ‰j                  | j                  «       «       y ‰j                   d   | j
                  d   k7  s2‰j$                  | j"                  k7  s‰j(                  | j&                  k7  rC‰j                  «        | j
                  ‰_        | j"                  ‰_        | j&                  ‰_        ‰xj                  | j                  «       z  c_        ‰j                   d
   ‰j                   d   | j
                  d   ‰j                   d   f‰_        y y )Nz<div class='ocr_page' id='z	' title='r‘  r  z<span class='ocr_line' title='r—  r=  z<div class='ocr_block' id='Tr   rM   rt   rv   )r‚  rP   r   rž  r   rV   r„  ré   rõ   r�  r   r   rX  r   rð   r˜  r›  rE  r™  r9  rš  rO   rœ  )rc   rò   Ú
child_lineró   r@   s      €€rA   ró   z,HOCRConverter.receive_layout.<locals>.renderº  sœ  ø€ Ø× Ò ¤Z°´fÔ%=Ø—‘Ô!Ü˜$¤Ô'Ø!%§¡�”Ø—
‘
ðàŸ;™;˜-ð (Ø"Ÿn™n¨T¯Y©YÓ7Ð8¸ð>ôð "ò "�EÙ˜5•Mð"à—
‘
˜:Õ&Ü˜D¤*Ô-Ø—
‘
Ø4°T·^±^ÀDÇIÁIÓ5NÐ4OÈrÐRôð #'ò '�JÙ˜:Õ&ð'à—
‘
˜;Õ'Ü˜D¤)Ô,Ø—
‘
ðàŸ:™:˜,ð 'Ø"Ÿn™n¨T¯Y©YÓ7Ð8¸ð>ôð "ò "�EÙ˜5•Mð"à—
‘
˜:Õ&Ü˜D¤&Õ)Ø×(Ò(Ø(,�DÔ%Ø(,¯©«�DÔ%Ø(,¯	©	�DÔ%Ø(,¯©�DÔ%Ø(,¯	©	�DÕ%Ü˜Ÿ™›×.Ñ.Ó0Ó1°QÒ6Ø—O‘OÔ%Ø—J‘J˜tŸ}™}›Õ/ð ×)Ñ)¨!Ñ,°·	±	¸!±Ò<Ø×,Ñ,°·±Ò=Ø×,Ñ,°·	±	Ò9àŸ™Ô)Ø,0¯I©I˜Ô)Ø,0¯M©M˜Ô)Ø,0¯I©I˜Ô)Ø×%Ò%¨¯©«Ñ8Õ%à×)Ñ)¨!Ñ,Ø×)Ñ)¨!Ñ,ØŸ	™	 !™Ø×)Ñ)¨!Ñ,ð	)�DÕ%ð+ *rB   r|  rö   s   ` @rA   rS   zHOCRConverter.receive_layout¹  s    ù€ ð9	œð 9	 Dö 9	ñv 	ˆv�rB   c                 ó$   — | j                  «        y r<   r]  rÉ   s    rA   r^  zHOCRConverter.close÷  r_  rB   )Úutf8rM   NFrb  )r»   r¼   r½   Ú__doc__r�   r~  ro  r%   r(   rN   r¿   r   rÀ   r=   r,   r�  ré   r  r#  rì   rž  r   rS   r^  rm   rB   rA   r€  r€  J  sÊ   „ ÙUð  ˆb�j‰jÐ9Ó:€Gð ØØ$(Ø"ñà#ðð ðð ð	ð
 ðð ˜T‘/ðð óð*;˜dð ; só ;ð1˜#ð 1 $ó 1óó2
ð˜sð  tó ó
"ð&< Vð <°ó <ô|rB   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.   r/   r0   r1   r2   Ú	getLoggerr»   rµ   r4   rÂ   rË   rÍ   rß   rû   rf  r€  rm   rB   rA   ú<module>r´     s  ðÛ 	Û Û 	Ý $÷÷ õ Ý &÷÷ ÷ ÷ ÷ ñ õ* ,Ý ,Ý 0ß :ß BÝ $Ý '÷÷ ÷ ñ ð €g×Ñ˜Ó!€ôR˜ô RôjÐ)ô ñ& 
�˜6 8¨UÓ	3€ôÐ$ g¨f¡oô ô<6�L Ñ'ô 6ôrj�L Ñ'ô jôZ	[�< Ñ&ô [ô|n�L Ñ'õ nrB   