§
    dÒ³gÜ‹  ã                   ó$  — d dl Z d dlZd dl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 d dlmZ ddlmZ ddlmZ ddl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 ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& ddlm'Z' ddlm(Z( ddl)m*Z* ddl+m,Z, ddl+m-Z- ddl.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddlm5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddlm;Z; dd lm<Z< dd!lm=Z= dd"lm>Z>  ej?        e@¦  «        ZA G d#„ d$e*¦  «        ZB G d%„ d&eB¦  «        ZC ed'e
ee5¦  «        ZD G d(„ d)eBeeD         ¦  «        ZE G d*„ d+eEe5         ¦  «        ZF G d,„ d-eEe5         ¦  «        ZG G d.„ d/eEe5         ¦  «        ZH G d0„ d1eEe5         ¦  «        ZIdS )2é    N)ÚBinaryIOÚDictÚGenericÚListÚOptionalÚSequenceÚTextIOÚTupleÚTypeVarÚUnionÚcast)ÚPDFColorSpaceé   )Úutils)ÚImageWriter)ÚLAParamsÚLTComponentÚTextGroupElement)ÚLTAnno)ÚLTChar)ÚLTContainer)ÚLTCurve)ÚLTFigure)ÚLTImage©ÚLTItem)ÚLTLayoutContainer)ÚLTLine)ÚLTPage)ÚLTRect)ÚLTText)Ú	LTTextBox)ÚLTTextBoxVertical)ÚLTTextGroup)Ú
LTTextLine)ÚPDFTextDevice)ÚPDFFont)ÚPDFUnicodeNotDefined)ÚPDFGraphicStateÚPDFResourceManager)ÚPDFPage)Ú	PDFStream)ÚAnyIOÚPointÚMatrixÚRectÚPathSegmentÚmake_compat_str)Úapply_matrix_pt)Úbbox2str)Úenc)Úmult_matrixc                   ó*  — e Zd ZU eed<   eed<   	 	 d&dededee	         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dS )'ÚPDFLayoutAnalyzerÚcur_itemÚctmr   NÚrsrcmgrÚpagenoÚlaparamsÚreturnc                 óZ   — t          j        | |¦  «         || _        || _        g | _        d S ©N)r&   Ú__init__r<   r=   Ú_stack©Úselfr;   r<   r=   s       úP/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfminer/converter.pyrA   zPDFLayoutAnalyzer.__init__9   s0   € õ 	Ô˜t WÑ-Ô-Ð-ØˆŒØ ˆŒØ/1ˆŒˆˆó    Úpagec                 óò   — |j         \  }}}}t          |||f¦  «        \  }}t          |||f¦  «        \  }}ddt          ||z
  ¦  «        t          ||z
  ¦  «        f}t          | j        |¦  «        | _        d S )Nr   )Úmediaboxr3   Úabsr   r<   r9   )rD   rG   r:   Úx0Úy0Úx1Úy1rI   s           rE   Ú
begin_pagezPDFLayoutAnalyzer.begin_pageD   sy   € Øœ=ÑˆˆR��RÝ" 3¨¨R¨Ñ1Ô1‰ˆˆRÝ" 3¨¨R¨Ñ1Ô1‰ˆˆRØ�q�#˜b 2™g™,œ,­¨B°©G©¬Ð5ˆÝ˜tœ{¨HÑ5Ô5ˆŒˆˆrF   c                 óŒ  — | j         r)J t          t          | j         ¦  «        ¦  «        ¦   «         ‚t          | j        t
          ¦  «        s)J t          t          | j        ¦  «        ¦  «        ¦   «         ‚| j        �| j                             | j        ¦  «         | xj	        dz  c_	        |  
                    | j        ¦  «         d S )Nr   )rB   ÚstrÚlenÚ
isinstancer9   r   Útyper=   Úanalyzer<   Úreceive_layout)rD   rG   s     rE   Úend_pagezPDFLayoutAnalyzer.end_pageK   s¨   € Ø”;Ð5Ð5¥¥C¨¬Ñ$4Ô$4Ñ 5Ô 5Ñ5Ô5Ð5Ý˜$œ-­Ñ0Ô0ÐJÐJµ#µd¸4¼=Ñ6IÔ6IÑ2JÔ2JÑJÔJÐJØŒ=Ð$ØŒM×!Ò! $¤-Ñ0Ô0Ð0ØˆŒ�qÑˆŒØ×Ò˜DœMÑ*Ô*Ð*Ð*Ð*rF   ÚnameÚbboxÚmatrixc                 ó–   — | j                              | j        ¦  «         t          ||t	          || j        ¦  «        ¦  «        | _        d S r@   )rB   Úappendr9   r   r6   r:   )rD   rX   rY   rZ   s       rE   Úbegin_figurezPDFLayoutAnalyzer.begin_figureS   s=   € ØŒ×Ò˜4œ=Ñ)Ô)Ð)Ý   t­[¸ÀÄÑ-JÔ-JÑKÔKˆŒˆˆrF   Ú_c                 ó
  — | j         }t          | j         t          ¦  «        s)J t          t	          | j         ¦  «        ¦  «        ¦   «         ‚| j                             ¦   «         | _         | j                              |¦  «         d S r@   )r9   rS   r   rQ   rT   rB   ÚpopÚadd)rD   r^   Úfigs      rE   Ú
end_figurezPDFLayoutAnalyzer.end_figureW   sj   € ØŒmˆÝ˜$œ-­Ñ2Ô2ÐLÐLµC½¸T¼]Ñ8KÔ8KÑ4LÔ4LÑLÔLÐLØœŸšÑ)Ô)ˆŒØŒ×Ò˜#ÑÔÐÐÐrF   Ústreamc                 ó:  — t          | j        t          ¦  «        s)J t          t	          | j        ¦  «        ¦  «        ¦   «         ‚t          ||| j        j        | j        j        | j        j        | j        j	        f¦  «        }| j         
                    |¦  «         d S r@   )rS   r9   r   rQ   rT   r   rK   rL   rM   rN   ra   )rD   rX   rd   Úitems       rE   Úrender_imagezPDFLayoutAnalyzer.render_image]   s‡   € Ý˜$œ-­Ñ2Ô2ÐLÐLµC½¸T¼]Ñ8KÔ8KÑ4LÔ4LÑLÔLÐLÝØØØŒ]Ô˜tœ}Ô/°´Ô1AÀ4Ä=ÔCSÐTñ
ô 
ˆð
 	Œ×Ò˜$ÑÔÐÐÐrF   ÚgstateÚstrokeÚfillÚevenoddÚpathc                 ó6  ‡ ‡— d                      d„ ‰D ¦   «         ¦  «        }|dd…         dk    rdS |                     d¦  «        dk    rct          j        d|¦  «        D ]K}‰|                     d¦  «        |                     d¦  «        …         }‰                      |||||¦  «         ŒLdS ˆfd„‰D ¦   «         }	ˆ fd	„|	D ¦   «         }
d
„ ‰D ¦   «         }ˆ fd„‰D ¦   «         }d„ t          ||¦  «        D ¦   «         }|dv rUt          |j	        |
d         |
d         ||||j
        |j        ||j        ¬¦
  «
        }‰ j                             |¦  «         dS |dv rù|
\  \  }}\  }}\  }}\  }}}|
d         |
d         k    }||k    o||k    o||k    o||k    p||k    o||k    o||k    o||k    }|rZ|rXt          |j	        g |
d         ¢|
d         ¢R ||||j
        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS t!          |j	        |
||||j
        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS t!          |j	        |
||||j
        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS )z@Paint paths described in section 4.4 of the PDF reference manualÚ c              3   ó&   K  — | ]}|d          V — ŒdS )r   N© )Ú.0Úxs     rE   ú	<genexpr>z/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>o   s&   è è € Ð+Ð+ ˜˜!œÐ+Ð+Ð+Ð+Ð+Ð+rF   Nr   Úmzm[^m]+r   c                 ó‚   •— g | ];}t          t          |d          dk    r
|dd…         n‰d          dd…         ¦  «        ‘Œ<S )r   ÚhéþÿÿÿN)r   r.   )rq   Úprl   s     €rE   ú
<listcomp>z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>ˆ   sT   ø€ ð ð ð ØIJ••U a¨¤d¨c¢k k˜A˜b˜c˜cœF˜F°t¸A´w¸r¸s¸s´|ÑDÔDðð ð rF   c                 ó:   •— g | ]}t          ‰j        |¦  «        ‘ŒS rp   )r3   r:   )rq   ÚptrD   s     €rE   ry   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>‹   s%   ø€ ÐCÐCÐC°R•? 4¤8¨RÑ0Ô0ÐCÐCÐCrF   c                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS )r   )rQ   )rq   Ú	operations     rE   ry   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>�   s$   € ÐAÐAÐA¨y�˜Y qœ\Ñ*Ô*ÐAÐAÐArF   c           
      ól   •— g | ]0}ˆfd „t          |ddd…         |ddd…         ¦  «        D ¦   «         ‘Œ1S )c           	      óx   •— g | ]6\  }}t          ‰j        t          |¦  «        t          |¦  «        f¦  «        ‘Œ7S rp   )r3   r:   Úfloat)rq   Úoperand1Úoperand2rD   s      €rE   ry   z;PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>.<listcomp>�   sJ   ø€ ð ð ð á*˜ (õ $ D¤H­u°X©¬ÅÀhÁÄÐ.PÑQÔQðð ð rF   r   Né   )Úzip)rq   r}   rD   s     €rE   ry   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>Ž   sk   ø€ ð "ð "ð "ð
 ð	ð ð ð å.1°)¸A¸D¸q¸D´/À9ÈQÈTÐPQÈTÄ?Ñ.SÔ.Sðñ ô ð"ð "ð "rF   c                 óF   — g | ]\  }}t          t          |g|¢R ¦  «        ‘ŒS rp   )r   r1   )rq   Úorx   s      rE   ry   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>•   s>   € ð  ð  ð  á�A�qõ •[ 1 ' q ' 'Ñ*Ô*ð ð  ð  rF   >   ÚmlÚmlh)Úoriginal_pathÚdashing_style>   ÚmlllhÚmllllé   rƒ   )ÚjoinÚcountÚreÚfinditerÚstartÚendÚ
paint_pathr„   r   Ú	linewidthÚscolorÚncolorÚdashr9   ra   r    r   )rD   rh   ri   rj   rk   rl   Úshapert   ÚsubpathÚraw_ptsÚptsÚ	operatorsÚtransformed_pointsÚtransformed_pathÚlinerK   rL   rM   rN   Úx2Úy2Úx3Úy3r^   Úis_closed_loopÚhas_square_coordinatesÚrectÚcurves   `    `                      rE   r”   zPDFLayoutAnalyzer.paint_pathf   sƒ  øø€ ð —’Ð+Ð+ dÐ+Ñ+Ô+Ñ+Ô+ˆà��!�Œ9˜ÒÐð ˆDà�[Š[˜ÑÔ Ò!Ð!å”[ ¨EÑ2Ô2ð Hð H�Ø˜qŸwšw q™zœz¨A¯EªE°!©H¬HÐ4Ô5�Ø—’ ¨°°g¸wÑGÔGÐGÐGðHð Hðð ð ð ØNRðñ ô ˆGð DÐCÐCÐC¸7ÐCÑCÔCˆCàAÐA¸DÐAÑAÔAˆIð"ð "ð "ð "ð
 "&ð"ñ "ô "Ðð ð  å 	Ð+=Ñ>Ô>ð ñ  ô  Ðð
 ˜Ð%Ð%õ
 ØÔ$Ø˜”FØ˜”FØØØØ”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×%Ò% dÑ+Ô+Ð+Ð+Ð+å#ØÔ(ØØØØØœØœØ(Øœñ
ô 
�Eð ”M×%Ò% eÑ,Ô,Ð,Ð,Ð,åØÔ$ØØØØØ”MØ”MØ$Ø”Kñ
ô 
�ð ”×!Ò! %Ñ(Ô(Ð(Ð(Ð(rF   ÚfontÚfontsizeÚscalingÚriseÚcidÚncsÚgraphicstatec	                 ó´  — 	 |                      |¦  «        }	t          |	t          ¦  «        s$J t          t          |	¦  «        ¦  «        ¦   «         ‚n&# t          $ r |                      ||¦  «        }	Y nw xY w|                     |¦  «        }
|                     |¦  «        }t          ||||||	|
|||¦
  «
        }| j	         
                    |¦  «         |j        S r@   )Ú	to_unichrrS   rQ   rT   r(   Úhandle_undefined_charÚ
char_widthÚ	char_dispr   r9   ra   Úadv)rD   rZ   r©   rª   r«   r¬   r­   r®   r¯   ÚtextÚ	textwidthÚtextdisprf   s                rE   Úrender_charzPDFLayoutAnalyzer.render_charÜ   sç   € ð	9Ø—>’> #Ñ&Ô&ˆDÝ˜d¥CÑ(Ô(Ð9Ð9­#­d°4©j¬j©/¬/Ñ9Ô9Ð9Ð9øÝ#ð 	9ð 	9ð 	9Ø×-Ò-¨d°CÑ8Ô8ˆDˆDˆDð	9øøøà—O’O CÑ(Ô(ˆ	Ø—>’> #Ñ&Ô&ˆÝØØØØØØØØØØñ
ô 
ˆð 	Œ×Ò˜$ÑÔÐØŒxˆs   ‚AA Á A4Á3A4c                 óD   — t                                d||¦  «         d|z  S )Nzundefined: %r, %rz(cid:%d))ÚlogÚdebug)rD   r©   r­   s      rE   r²   z'PDFLayoutAnalyzer.handle_undefined_charý   s$   € Ý�	Š	Ð% t¨SÑ1Ô1Ð1Ø˜CÑÐrF   Últpagec                 ó   — d S r@   rp   ©rD   r½   s     rE   rV   z PDFLayoutAnalyzer.receive_layout  s   € ØˆrF   ©r   N) Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r/   r*   Úintr   r   rA   r+   rO   rW   rQ   r0   r]   rc   r,   rg   r)   Úboolr   r1   r”   r'   r€   r   r¹   r²   r   rV   rp   rF   rE   r8   r8   5   s[  € € € € € € ØÐÐÑØ	€K€K�Kð
 Ø'+ð		2ð 	2à#ð	2ð ð	2ð ˜8Ô$ð		2ð
 
ð	2ð 	2ð 	2ð 	2ð6˜wð 6¨Vð 6¸ð 6ð 6ð 6ð 6ð+˜Wð +¨ð +ð +ð +ð +ðL ð L¨Dð L¸&ð LÀTð Lð Lð Lð Lð˜Cð  Dð ð ð ð ð  ð  ¨ið  ¸Dð  ð  ð  ð  ðt)àðt)ð ðt)ð ð	t)ð
 ðt)ð �{Ô#ðt)ð 
ðt)ð t)ð t)ð t)ðlàðð ðð ð	ð
 ðð ðð ðð ðð &ðð 
ðð ð ð ðB ¨'ð  ¸ð  Àð  ð  ð  ð  ð Vð °ð ð ð ð ð ð rF   r8   c            	       óT   — e Zd Z	 	 ddededee         ddfd„Zdeddfd	„Z	defd
„Z
dS )ÚPDFPageAggregatorr   Nr;   r<   r=   r>   c                 óP   — t                                | |||¬¦  «         d | _        d S ©N)r<   r=   )r8   rA   ÚresultrC   s       rE   rA   zPDFPageAggregator.__init__  s,   € õ 	×"Ò" 4¨¸È(Ð"ÑSÔSÐSØ(,ˆŒˆˆrF   r½   c                 ó   — || _         d S r@   ©rË   r¿   s     rE   rV   z PDFPageAggregator.receive_layout  s   € ØˆŒˆˆrF   c                 ó"   — | j         €J ‚| j         S r@   rÍ   ©rD   s    rE   Ú
get_resultzPDFPageAggregator.get_result  s   € ØŒ{Ð&Ð&Ð&ØŒ{ÐrF   rÀ   )rÁ   rÂ   rÃ   r*   rÅ   r   r   rA   r   rV   rÐ   rp   rF   rE   rÈ   rÈ     s�   € € € € € ð Ø'+ð	-ð -à#ð-ð ð-ð ˜8Ô$ð	-ð
 
ð-ð -ð -ð -ð Vð °ð ð ð ð ð˜Fð ð ð ð ð ð rF   rÈ   ÚIOTypec                   ób   — e Zd Z	 	 	 ddededededee         d	dfd
„Z	e
ded	efd„¦   «         ZdS )ÚPDFConverterúutf-8r   Nr;   ÚoutfpÚcodecr<   r=   r>   c                 óœ   — t                                | |||¬¦  «         || _        || _        |                      | j        ¦  «        | _        d S rÊ   )r8   rA   rÕ   rÖ   Ú_is_binary_streamÚoutfp_binary)rD   r;   rÕ   rÖ   r<   r=   s         rE   rA   zPDFConverter.__init__  sM   € õ 	×"Ò" 4¨¸È(Ð"ÑSÔSÐSØ"ˆŒ
ØˆŒ
Ø ×2Ò2°4´:Ñ>Ô>ˆÔÐÐrF   c                 óü   — dt          | dd¦  «        v rdS t          | d¦  «        rdS t          | t          j        ¦  «        rdS t          | t          j        ¦  «        rdS t          | t          j        ¦  «        rdS dS )z"Test if an stream is binary or notÚbÚmodern   TF)ÚgetattrÚhasattrrS   ÚioÚBytesIOÚStringIOÚ
TextIOBase)rÕ   s    rE   rØ   zPDFConverter._is_binary_stream)  s‡   € ð •'˜% ¨Ñ,Ô,Ð,Ð,Ø�4Ý�U˜FÑ#Ô#ð 	à�5Ý˜�rœzÑ*Ô*ð 	Ø�4Ý˜�rœ{Ñ+Ô+ð 	Ø�5Ý˜�rœ}Ñ-Ô-ð 	Ø�5àˆtrF   )rÔ   r   N)rÁ   rÂ   rÃ   r*   rÑ   rQ   rÅ   r   r   rA   Ústaticmethodr-   rÆ   rØ   rp   rF   rE   rÓ   rÓ     s¥   € € € € € ð
 ØØ'+ð?ð ?à#ð?ð ð?ð ð	?ð
 ð?ð ˜8Ô$ð?ð 
ð?ð ?ð ?ð ?ð ð ð ¨4ð ð ð ñ „\ðð ð rF   rÓ   c                   óÄ   ‡ — e Zd Z	 	 	 	 	 ddedededed	ee         d
e	dee
         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 )ÚTextConverterrÔ   r   NFr;   rÕ   rÖ   r<   r=   Ú
showpagenoÚimagewriterr>   c                 óp   •— t          ¦   «                              |||||¬¦  «         || _        || _        d S )N©rÖ   r<   r=   )ÚsuperrA   ræ   rç   )	rD   r;   rÕ   rÖ   r<   r=   ræ   rç   Ú	__class__s	           €rE   rA   zTextConverter.__init__<  s=   ø€ õ 	‰Œ×Ò˜ %¨u¸VÈhÐÑWÔWÐWØ$ˆŒØ&ˆÔÐÐrF   r¶   c                 ó&  — t          j        || j        d¦  «        }| j        rAt	          t
          | j        ¦  «                             |                     ¦   «         ¦  «         d S t	          t          | j        ¦  «                             |¦  «         d S )NÚignore)
r   Úcompatible_encode_methodrÖ   rÙ   r   r   rÕ   ÚwriteÚencoder	   ©rD   r¶   s     rE   Ú
write_textzTextConverter.write_textJ  sw   € ÝÔ-¨d°D´JÀÑIÔIˆØÔð 	1Ý•˜4œ:Ñ&Ô&×,Ò,¨T¯[ª[©]¬]Ñ;Ô;Ð;Ð;Ð;å•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0rF   r½   c                 ó²   ‡ ‡— dt           dd fˆˆ fd„Š‰ j        r‰                      d|j        z  ¦  «          ‰|¦  «         ‰                      d¦  «         d S )Nrf   r>   c                 ó˜  •— t          | t          ¦  «        r| D ]} ‰|¦  «         Œn<t          | t          ¦  «        r'‰                     |                      ¦   «         ¦  «         t          | t
          ¦  «        r‰                     d¦  «         d S t          | t          ¦  «        r#‰j        �‰j                             | ¦  «         d S d S d S )Nú
)	rS   r   r!   rò   Úget_textr"   r   rç   Úexport_image)rf   ÚchildÚrenderrD   s     €€rE   rù   z,TextConverter.receive_layout.<locals>.renderR  sÖ   ø€ Ý˜$¥Ñ,Ô,ð 1Ø!ð "ð "�EØ�F˜5‘M”M�M�Mð"å˜D¥&Ñ)Ô)ð 1Ø—’ §¢¡¤Ñ0Ô0Ð0Ý˜$¥	Ñ*Ô*ð 8Ø—’ Ñ%Ô%Ð%Ð%Ð%Ý˜D¥'Ñ*Ô*ð 8ØÔ#Ð/ØÔ$×1Ò1°$Ñ7Ô7Ð7Ð7Ð7ð8ð 8Ø/Ð/rF   zPage %s
ú)r   ræ   rò   Úpageid©rD   r½   rù   s   ` @rE   rV   zTextConverter.receive_layoutQ  s   øø€ ð
	8�ð 
	8 Dð 
	8ð 
	8ð 
	8ð 
	8ð 
	8ð 
	8ð 
	8ð Œ?ð 	9Ø�OŠO˜K¨&¬-Ñ7Ñ8Ô8Ð8Øˆˆv‰ŒˆØ�Š˜ÑÔÐÐÐrF   rX   rd   c                 óP   — | j         €d S t                               | ||¦  «         d S r@   )rç   rÓ   rg   )rD   rX   rd   s      rE   rg   zTextConverter.render_imagef  s-   € ØÔÐ#ØˆFÝ×!Ò! $¨¨fÑ5Ô5Ð5ØˆrF   rh   ri   rj   rk   rl   c                 ó   — d S r@   rp   )rD   rh   ri   rj   rk   rl   s         rE   r”   zTextConverter.paint_pathl  s	   € ð 	ˆrF   )rÔ   r   NFN)rÁ   rÂ   rÃ   r*   r-   rQ   rÅ   r   r   rÆ   r   rA   rò   r   rV   r,   rg   r)   r   r1   r”   Ú__classcell__)rë   s   @rE   rå   rå   ;  sk  ø€ € € € € ð
 ØØ'+Ø Ø-1ð'ð 'à#ð'ð ð'ð ð	'ð
 ð'ð ˜8Ô$ð'ð ð'ð ˜kÔ*ð'ð 
ð'ð 'ð 'ð 'ð 'ð 'ð1˜sð 1 tð 1ð 1ð 1ð 1ð Vð °ð ð ð ð ð* ð ¨ið ¸Dð ð ð ð ðàðð ðð ð	ð
 ðð �{Ô#ðð 
ðð ð ð ð ð ð ð rF   rå   c                    óü  — e Zd ZdddddddœZddd	œZ	 	 	 	 	 	 	 	 	 	 	 	 d>dedededede	e
         dededededede	e         dede	eeef                  de	eeef                  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(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d0„Zd'ed"ed)ed*ed1ed dfd2„Z	 d@d'ed(ed)ed*ed+ed,ed4ed dfd5„Zd'ed dfd6„Zd"ed7ed8ed dfd9„Zd?d:„Zd;ed dfd<„Zd?d=„Z dS )AÚHTMLConverterÚyellowÚmagentaÚcyanÚredÚblackÚgray)ÚfigureÚtextlineÚtextboxÚ	textgroupr¨   rG   Úblue)r
  ÚcharrÔ   r   Nç      ð?ÚnormalTé2   r   r;   rÕ   rÖ   r<   r=   ÚscaleÚ	fontscaleÚ
layoutmoderæ   Ú
pagemarginrç   r¼   Úrect_colorsÚtext_colorsr>   c                 óì  — t                                | |||||¬¦  «         | j        | j         k    rt	          d¦  «        ‚|€ddi}|€dddœ}|| _        || _        || _        |	| _        |
| _	        || _
        || _        || _        |r>| j                             | j        ¦  «         | j                             | j        ¦  «         | j	        | _        d | _        g | _        |                      ¦   «          d S )Nré   ú)Codec is required for a binary I/O outputr  r  r  )r¨   rG   )rÓ   rA   rÙ   rÖ   Ú
ValueErrorr  r  r  ræ   r  rç   r  r  ÚupdateÚRECT_COLORSÚTEXT_COLORSÚ_yoffsetÚ_fontÚ
_fontstackÚwrite_header)rD   r;   rÕ   rÖ   r<   r=   r  r  r  ræ   r  rç   r¼   r  r  s                  rE   rA   zHTMLConverter.__init__†  s  € õ" 	×ÒØ�'˜5¨°fÀxð 	ñ 	
ô 	
ð 	
ð
 Ô T¤Z Ò0Ð0ÝÐHÑIÔIÐIàÐØ! 7Ð+ˆKØÐØ$+°VÐ<Ð<ˆKàˆŒ
Ø"ˆŒØ$ˆŒØ$ˆŒØ$ˆŒØ&ˆÔØ&ˆÔØ&ˆÔØð 	6ØÔ×#Ò# DÔ$4Ñ5Ô5Ð5ØÔ×#Ò# DÔ$4Ñ5Ô5Ð5Ø#œˆŒØ26ˆŒ
Ø=?ˆŒØ×ÒÑÔÐØˆrF   r¶   c                 óú   — | j         rFt          t          | j        ¦  «                             |                     | j         ¦  «        ¦  «         n-t          t          | j        ¦  «                             |¦  «         d S r@   ©rÖ   r   r   rÕ   rï   rð   r	   rñ   s     rE   rï   zHTMLConverter.writeµ  ób   € ØŒ:ð 	1Ý•˜4œ:Ñ&Ô&×,Ò,¨T¯[ª[¸¼Ñ-DÔ-DÑEÔEÐEÐEå•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0ØˆrF   c                 ó¬   — |                       d¦  «         | j        rd| j        z  }nd}|                       |¦  «         |                       d¦  «         d S )Nz<html><head>
zA<meta http-equiv="Content-Type" content="text/html; charset=%s">
z5<meta http-equiv="Content-Type" content="text/html">
z</head><body>
)rï   rÖ   )rD   Úss     rE   r   zHTMLConverter.write_header¼  se   € Ø�
Š
Ð#Ñ$Ô$Ð$ØŒ:ð 	Ið!Ø#'¤:ñ.ð ˆAð
 IˆAØ�
Š
�1‰ŒˆØ�
Š
Ð$Ñ%Ô%Ð%ØˆrF   c                 óÈ   — d„ t          d| j        ¦  «        D ¦   «         }dd                     |¦  «        z  }|                      |¦  «         |                      d¦  «         d S )Nc                 ó:   — g | ]}d                       ||¦  «        ‘ŒS )z<a href="#{}">{}</a>)Úformat)rq   Úis     rE   ry   z.HTMLConverter.write_footer.<locals>.<listcomp>Ê  s6   € ð 
ð 
ð 
Ø45Ð"×)Ò)¨!¨QÑ/Ô/ð
ð 
ð 
rF   r   z8<div style="position:absolute; top:0px;">Page: %s</div>
z, z</body></html>
)Úranger<   rŽ   rï   )rD   Ú
page_linksr%  s      rE   Úwrite_footerzHTMLConverter.write_footerÉ  sw   € ð
ð 
Ý9>¸qÀ$Ä+Ñ9NÔ9Nð
ñ 
ô 
ˆ
ð HÈ$Ï)Ê)ØñK
ô K
ñ 
ˆð 	�
Š
�1‰ŒˆØ�
Š
Ð%Ñ&Ô&Ð&ØˆrF   c                 óJ   — |                       t          |¦  «        ¦  «         d S r@   )rï   r5   rñ   s     rE   rò   zHTMLConverter.write_textÔ  s   € Ø�
Š
•3�t‘9”9ÑÔÐØˆrF   ÚcolorÚborderwidthrr   ÚyÚwrv   c                 óÎ   — | j                              |¦  «        }|�Hd|||| j        z  | j        |z
  | j        z  || j        z  || j        z  fz  }|                      |¦  «         d S )Nzn<span style="position:absolute; border: %s %dpx solid; left:%dpx; top:%dpx; width:%dpx; height:%dpx;"></span>
)r  Úgetr  r  rï   )	rD   r.  r/  rr   r0  r1  rv   Úcolor2r%  s	            rE   Ú
place_rectzHTMLConverter.place_rectØ  s   € ð Ô!×%Ò% eÑ,Ô,ˆØÐðKð ØØ˜œ
‘NØ”] QÑ&¨$¬*Ñ4Ø˜œ
‘NØ˜œ
‘Nðñ	ð ð �JŠJ�q‰MŒMˆMØˆrF   rf   c                 ób   — |                       |||j        |j        |j        |j        ¦  «         d S r@   )r5  rK   rN   ÚwidthÚheight)rD   r.  r/  rf   s       rE   Úplace_borderzHTMLConverter.place_borderì  s+   € Ø�Š˜˜{¨D¬G°T´W¸d¼jÈ$Ì+ÑVÔVÐVØˆrF   c                 óò   — | j         �o| j                              |¦  «        }dt          |¦  «        ||| j        z  | j        |z
  | j        z  || j        z  || j        z  fz  }|                      |¦  «         d S )Nzd<img src="%s" border="%d" style="position:absolute; left:%dpx; top:%dpx;" width="%d" height="%d" />
)rç   r÷   r5   r  r  rï   )	rD   rf   r/  rr   r0  r1  rv   rX   r%  s	            rE   Úplace_imagezHTMLConverter.place_imageð  sˆ   € ð ÔÐ'ØÔ#×0Ò0°Ñ6Ô6ˆDðDõ ˜‘I”IØØ˜œ
‘NØ”] QÑ&¨$¬*Ñ4Ø˜œ
‘NØ˜œ
‘Nðñ	ð ð �JŠJ�q‰MŒMˆMØˆrF   Úsizec                 ó  — | j                              |¦  «        }|�pd||| j        z  | j        |z
  | j        z  || j        z  | j        z  fz  }|                      |¦  «         |                      |¦  «         |                      d¦  «         d S )NzP<span style="position:absolute; color:%s; left:%dpx; top:%dpx; font-size:%dpx;">ú</span>
)r  r3  r  r  r  rï   rò   )rD   r.  r¶   rr   r0  r<  r4  r%  s           rE   Ú
place_textzHTMLConverter.place_text  sž   € ð Ô!×%Ò% eÑ,Ô,ˆØÐð.ð Ø˜œ
‘NØ”] QÑ&¨$¬*Ñ4Ø˜4œ:Ñ%¨¬Ñ6ð	ñð ð �JŠJ�q‰MŒMˆMØ�OŠO˜DÑ!Ô!Ð!Ø�JŠJ�{Ñ#Ô#Ð#ØˆrF   ÚFalseÚwriting_modec           	      óä   — | j                              | j        ¦  «         d | _        d||||| j        z  | j        |z
  | j        z  || j        z  || j        z  fz  }|                      |¦  «         d S )Nzv<div style="position:absolute; border: %s %dpx solid; writing-mode:%s; left:%dpx; top:%dpx; width:%dpx; height:%dpx;">)r  r\   r  r  r  rï   )	rD   r.  r/  rr   r0  r1  rv   rA  r%  s	            rE   Ú	begin_divzHTMLConverter.begin_div  s„   € ð 	Œ×Ò˜tœzÑ*Ô*Ð*ØˆŒ
ðð ØØØ�D”J‘Ø” Ñ" d¤jÑ0Ø�D”J‘Ø�D”J‘ðñð 	
ð 	�
Š
�1‰ŒˆØˆrF   c                 ó¤   — | j         �|                      d¦  «         | j                             ¦   «         | _         |                      d¦  «         d S )Nú</span>z</div>)r  rï   r  r`   )rD   r.  s     rE   Úend_divzHTMLConverter.end_div5  sH   € ØŒ:Ð!Ø�JŠJ�yÑ!Ô!Ð!Ø”_×(Ò(Ñ*Ô*ˆŒ
Ø�
Š
�8ÑÔÐØˆrF   Úfontnamerª   c                 ó  — ||f}|| j         k    rh| j         �|                      d¦  «         |                     d¦  «        d         }|                      d||| j        z  | j        z  fz  ¦  «         || _         |                      |¦  «         d S )NrE  ú+éÿÿÿÿz.<span style="font-family: %s; font-size:%dpx">)r  rï   Úsplitr  r  rò   )rD   r¶   rG  rª   r©   Úfontname_without_subset_tags         rE   Úput_textzHTMLConverter.put_text<  sŸ   € Ø˜(Ð#ˆØ�4”:ÒÐØŒzÐ%Ø—
’
˜9Ñ%Ô%Ð%à*2¯.ª.¸Ñ*=Ô*=¸bÔ*AÐ'Ø�JŠJØ@Ø.°¸4¼:Ñ0EÈÌÑ0VÐWñXñô ð ð ˆDŒJØ�Š˜ÑÔÐØˆrF   c                 ó0   — |                       d¦  «         d S )Nz<br>©rï   rÏ   s    rE   Úput_newlinezHTMLConverter.put_newlineK  s   € Ø�
Š
�6ÑÔÐØˆrF   r½   c                 ó²   ‡ ‡‡— dt           t          t          f         dd fˆ ˆfd„Šdt          dd fˆˆ ˆfd„Š ‰|¦  «         ‰ xj        ‰ j        z  c_        d S )Nrf   r>   c                 ó€   •— t          | t          ¦  «        r'‰                     dd| ¦  «         | D ]} ‰|¦  «         Œd S )Nr  r   )rS   r$   r9  ©rf   rø   rD   Ú
show_groups     €€rE   rT  z0HTMLConverter.receive_layout.<locals>.show_groupP  sT   ø€ Ý˜$¥Ñ,Ô,ð &Ø×!Ò! +¨q°$Ñ7Ô7Ð7Ø!ð &ð &�EØ�J˜uÑ%Ô%Ð%Ð%ØˆFrF   c           
      ój  •— t          | t          ¦  «        rÁ‰xj        | j        z  c_        ‰                     dd| ¦  «         ‰j        r`‰                     d‰j        | j        z
  ‰j        z  z  ¦  «         ‰                     d                     | j	        | j	        ¦  «        ¦  «         | D ]} ‰|¦  «         Œ| j
        �| j
        D ]} ‰|¦  «         Œ�n[t          | t          ¦  «        r‰                     dd| ¦  «         �n-t          | t          ¦  «        rU‰                     dd| j        | j        | j        | j        ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         �nÃt          | t$          ¦  «        r0‰                     | d| j        | j        | j        | j        ¦  «         �n~‰j        dk    �rt          | t*          ¦  «        r)‰                     dd| ¦  «         | D ]} ‰|¦  «         Œ�n4t          | t,          ¦  «        ra‰                     d	d| ¦  «         ‰                     d	t1          | j        dz   ¦  «        | j        | j        d
¦  «         | D ]} ‰|¦  «         Œ�n¾t          | t4          ¦  «        rQ‰                     dd| ¦  «         ‰                     d|                      ¦   «         | j        | j        | j        ¦  «         �nVt          | t*          ¦  «        r1| D ]} ‰|¦  «         Œ‰j        dk    r‰                     ¦   «          �nt          | t,          ¦  «        rg‰                     d	d| j        | j        | j        | j        |                      ¦   «         ¦  «         | D ]} ‰|¦  «         Œ‰                     d	¦  «         n”t          | t4          ¦  «        rCt?          | j         ¦  «        }‰ !                    |                      ¦   «         || j        ¦  «         n<t          | tD          ¦  «        r'‰ #                    |                      ¦   «         ¦  «         d S )NrG   r   z*<div style="position:absolute; top:%dpx;">z<a name="{}">Page {}</a></div>
r¨   r  Úexactr	  r
  é   r  Úloose)$rS   r   r  rN   r9  ræ   rï   r  r(  rû   Úgroupsr   r   rC  rK   r7  r8  rF  r   r;  r  r%   r"   r?  rQ   Úindexr   rö   r<  rP  Úget_writing_moder2   rG  rM  r!   rò   )rf   rø   ÚgrouprG  rù   rD   rT  s       €€€rE   rù   z,HTMLConverter.receive_layout.<locals>.renderW  sQ  ø€ å˜$¥Ñ'Ô'ð D9Ø�” ¤Ñ(�”Ø×!Ò! &¨!¨TÑ2Ô2Ð2Ø”?ð 	Ø—J’JØDØ œM¨D¬GÑ3°t´zÑAñCñô ð ð —J’JØ:×AÒAØ œK¨¬ñô ñô ð ð
 "ð "ð "�EØ�F˜5‘M”M�M�MØ”;Ð*Ø!%¤ð *ð *˜Ø"˜
 5Ñ)Ô)Ð)Ð)ùÝ˜D¥'Ñ*Ô*ð 29Ø×!Ò! '¨1¨dÑ3Ô3Ð3Ñ3Ý˜D¥(Ñ+Ô+ð 09Ø—’˜x¨¨D¬G°T´W¸d¼jÈ$Ì+ÑVÔVÐVØ!ð "ð "�EØ�F˜5‘M”M�M�MØ—’˜XÑ&Ô&Ð&Ñ&Ý˜D¥'Ñ*Ô*ð +9Ø× Ò   q¨$¬'°4´7¸D¼JÈÌÑTÔTÐTÑTà”? gÒ-Ñ-Ý! $­
Ñ3Ô3ð Ø×)Ò)¨*°a¸Ñ>Ô>Ð>Ø%)ð *ð *˜EØ"˜F 5™MœM˜M˜Mñ*å# D­)Ñ4Ô4ð Ø×)Ò)¨)°Q¸Ñ=Ô=Ð=ØŸšØ%¥s¨4¬:¸©>Ñ':Ô':¸D¼GÀTÄWÈbñô ð ð &*ð *ð *˜EØ"˜F 5™MœM˜M˜Mñ*å# D­&Ñ1Ô1ð Ø×)Ò)¨&°!°TÑ:Ô:Ð:ØŸšØ" D§M¢M¡O¤O°T´W¸d¼gÀtÄyñô ð ùõ " $­
Ñ3Ô3ð 9Ø%)ð *ð *˜EØ"˜F 5™MœM˜M˜MØœ?¨gÒ5Ð5Ø ×,Ò,Ñ.Ô.Ð.ùÝ# D­)Ñ4Ô4ð 9ØŸšØ%ØØ œGØ œGØ œJØ œKØ ×1Ò1Ñ3Ô3ñô ð ð &*ð *ð *˜EØ"˜F 5™MœM˜M˜MØŸš YÑ/Ô/Ð/Ð/Ý# D­&Ñ1Ô1ð 9Ý#2°4´=Ñ#AÔ#A˜ØŸš d§m¢m¡o¤o°xÀÄÑKÔKÐKÐKÝ# D­&Ñ1Ô1ð 9ØŸš¨¯ª©¬Ñ8Ô8Ð8ØˆFrF   )r   r$   r   r   r  r  ©rD   r½   rù   rT  s   ` @@rE   rV   zHTMLConverter.receive_layoutO  s¨   øøø€ ð	�U¥;Õ0@Ð#@ÔAð 	Àdð 	ð 	ð 	ð 	ð 	ð 	ð 	ðG	�ð G	 Dð G	ð G	ð G	ð G	ð G	ð G	ð G	ð G	ðR 	ˆˆv‰ŒˆØˆŒ˜œÑ(ˆŒØˆrF   c                 ó.   — |                       ¦   «          d S r@   ©r,  rÏ   s    rE   ÚclosezHTMLConverter.close¤  ó   € Ø×ÒÑÔÐØˆrF   )rÔ   r   Nr   r  r  Tr  Nr   NN©r>   N)r@  )!rÁ   rÂ   rÃ   r  r  r*   r-   rQ   rÅ   r   r   r€   rÆ   r   r   rA   rï   r   r,  rò   r5  r   r9  r   r;  r?  rC  rF  rM  rP  r   rV   r`  rp   rF   rE   r  r  w  sÅ  € € € € € àØØØØØðð €Kð Øðð €Kð ØØ'+ØØØ"ØØØ-1ØØ04Ø04ð-ð -à#ð-ð ð-ð ð	-ð
 ð-ð ˜8Ô$ð-ð ð-ð ð-ð ð-ð ð-ð ð-ð ˜kÔ*ð-ð ð-ð ˜d 3¨ 8œnÔ-ð-ð ˜d 3¨ 8œnÔ-ð-ð  
ð!-ð -ð -ð -ð^˜#ð  $ð ð ð ð ðð ð ð ð	ð 	ð 	ð 	ð˜sð  tð ð ð ð ðØðØ'*ðØ/4ðØ9>ðØCHðØMRðà	ðð ð ð ð( #ð °Cð ¸{ð Ètð ð ð ð ðØðØ*-ðØ27ðØ<AðØFKðØPUðà	ðð ð ð ð(ØðØ #ðØ(-ðØ27ðØ?Dðà	ðð ð ð ð8 $ðð àðð ðð ð	ð
 ðð ðð ðð ðð 
ðð ð ð ð:˜Sð  Tð ð ð ð ð˜Sð ¨Cð ¸5ð ÀTð ð ð ð ðð ð ð ðS Vð S°ð Sð Sð Sð Sðjð ð ð ð ð rF   r  c                   óÂ   — e Zd Z ej        d¦  «        Z	 	 	 	 	 ddededed	e	d
e
e         de
e         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dS )ÚXMLConverterz[ ---]rÔ   r   NFr;   rÕ   rÖ   r<   r=   rç   Ústripcontrolr>   c                 óÊ   — t                                | |||||¬¦  «         | j        | j         k    rt	          d¦  «        ‚|| _        || _        |                      ¦   «          d S )Nré   r  )rÓ   rA   rÙ   rÖ   r  rç   re  r   )rD   r;   rÕ   rÖ   r<   r=   rç   re  s           rE   rA   zXMLConverter.__init__­  sx   € õ 	×ÒØ�'˜5¨°fÀxð 	ñ 	
ô 	
ð 	
ð
 Ô T¤Z Ò0Ð0ÝÐHÑIÔIÐIà&ˆÔØ(ˆÔØ×ÒÑÔÐØˆrF   r¶   c                 óú   — | j         rFt          t          | j        ¦  «                             |                     | j         ¦  «        ¦  «         n-t          t          | j        ¦  «                             |¦  «         d S r@   r"  rñ   s     rE   rï   zXMLConverter.writeÄ  r#  rF   c                 ó¤   — | j         r|                      d| j         z  ¦  «         n|                      d¦  «         |                      d¦  «         d S )Nz%<?xml version="1.0" encoding="%s" ?>
z<?xml version="1.0" ?>
z<pages>
©rÖ   rï   rÏ   s    rE   r   zXMLConverter.write_headerË  sS   € ØŒ:ð 	3Ø�JŠJÐ?À$Ä*ÑLÑMÔMÐMÐMà�JŠJÐ1Ñ2Ô2Ð2Ø�
Š
�;ÑÔÐØˆrF   c                 ó0   — |                       d¦  «         d S )Nz	</pages>
rO  rÏ   s    rE   r,  zXMLConverter.write_footerÓ  s   € Ø�
Š
�<Ñ Ô Ð ØˆrF   c                 óŽ   — | j         r| j                             d|¦  «        }|                      t	          |¦  «        ¦  «         d S ©Nrn   )re  ÚCONTROLÚsubrï   r5   rñ   s     rE   rò   zXMLConverter.write_text×  sA   € ØÔð 	.Ø”<×#Ò# B¨Ñ-Ô-ˆDØ�
Š
•3�t‘9”9ÑÔÐØˆrF   r½   c                 ód   ‡ ‡‡— dt           dd fˆ ˆfd„Šdt           dd fˆˆ ˆfd„Š ‰|¦  «         d S )Nrf   r>   c                 ó^  •— t          | t          ¦  «        r2‰                     d| j        t	          | j        ¦  «        fz  ¦  «         ndt          | t          ¦  «        rO‰                     dt	          | j        ¦  «        z  ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S )Nz<textbox id="%d" bbox="%s" />
z<textgroup bbox="%s">
z</textgroup>
)rS   r"   rï   rZ  r4   rY   r$   rS  s     €€rE   rT  z/XMLConverter.receive_layout.<locals>.show_groupÞ  s¼   ø€ Ý˜$¥	Ñ*Ô*ð 	-Ø—
’
Ø5Ø”z¥8¨D¬IÑ#6Ô#6Ð7ñ8ñô ð ð õ ˜D¥+Ñ.Ô.ð -Ø—
’
Ð4µxÀÄ	Ñ7JÔ7JÑJÑKÔKÐKØ!ð &ð &�EØ�J˜uÑ%Ô%Ð%Ð%Ø—
’
Ð+Ñ,Ô,Ð,ØˆFrF   c                 óJ	  •— t          | t          ¦  «        r¦d| j        t          | j        ¦  «        | j        fz  }‰                     |¦  «         | D ]} ‰|¦  «         Œ| j        �?‰                     d¦  «         | j        D ]} ‰|¦  «         Œ‰                     d¦  «         ‰                     d¦  «         �næt          | t          ¦  «        r5d| j	        t          | j        ¦  «        fz  }‰                     |¦  «         �nœt          | t          ¦  «        r5d| j	        t          | j        ¦  «        fz  }‰                     |¦  «         �nRt          | t          ¦  «        rHd| j	        t          | j        ¦  «        |                      ¦   «         fz  }‰                     |¦  «         �nõt          | t          ¦  «        r\d| j        ›d	t          | j        ¦  «        ›d
�}‰                     |¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         �n„t          | t          ¦  «        rQ‰                     dt          | j        ¦  «        z  ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         �nt          | t           ¦  «        rtd}t          | t"          ¦  «        rd}d| j        t          | j        ¦  «        |fz  }‰                     |¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         �n•t          | t&          ¦  «        r™dt)          | j        ¦  «        t          | j        ¦  «        | j        j        | j        j        | j        fz  }‰                     |¦  «         ‰                     |                      ¦   «         ¦  «         ‰                     d¦  «         nçt          | t8          ¦  «        r+‰                     d|                      ¦   «         z  ¦  «         n§t          | t:          ¦  «        ry‰j        �M‰j                             | ¦  «        }‰                     dt)          |¦  «        | j         | j!        fz  ¦  «         n>‰                     d| j         | j!        fz  ¦  «         nJ tE          d| f¦  «        ¦   «         ‚d S )Nz%<page id="%s" bbox="%s" rotate="%d">
z	<layout>
z
</layout>
z</page>
z"<line linewidth="%d" bbox="%s" />
z"<rect linewidth="%d" bbox="%s" />
z+<curve linewidth="%d" bbox="%s" pts="%s"/>
z<figure name="z" bbox="z">
z
</figure>
z<textline bbox="%s">
z</textline>
rn   z wmode="vertical"z<textbox id="%d" bbox="%s"%s>
z</textbox>
zD<text font="%s" bbox="%s" colourspace="%s" ncolour="%s" size="%.3f">z</text>
z<text>%s</text>
z*<image src="%s" width="%d" height="%d" />
z!<image width="%d" height="%d" />
FÚ	Unhandled)#rS   r   rû   r4   rY   Úrotaterï   rY  r   r•   r    r   Úget_ptsr   rX   r%   r"   r#   rZ  r   r5   rG  r®   r¯   r—   r<  rò   rö   r!   r   rç   r÷   r7  r8  rQ   )	rf   r%  rø   r\  ÚwmoderX   rù   rD   rT  s	         €€€rE   rù   z+XMLConverter.receive_layout.<locals>.renderë  s¬  ø€ å˜$¥Ñ'Ô'ð W7Ø<Ø”KÝ˜TœYÑ'Ô'Ø”Kð@ñ �ð
 —
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ”;Ð*Ø—J’J˜|Ñ,Ô,Ð,Ø!%¤ð *ð *˜Ø"˜
 5Ñ)Ô)Ð)Ð)Ø—J’J˜}Ñ-Ô-Ð-Ø—
’
˜;Ñ'Ô'Ð'Ñ'Ý˜D¥&Ñ)Ô)ð H7Ø9Ø”NÝ˜TœYÑ'Ô'ð=ñ �ð —
’
˜1‘”�‘Ý˜D¥&Ñ)Ô)ð B7Ø9Ø”NÝ˜TœYÑ'Ô'ð=ñ �ð —
’
˜1‘”�‘Ý˜D¥'Ñ*Ô*ð <7ØBØ”NÝ˜TœYÑ'Ô'Ø—L’L‘N”NðFñ �ð
 —
’
˜1‘”�‘Ý˜D¥(Ñ+Ô+ð 57ð 57Ø8<¼	¸	¸	Å8ÈDÌIÑCVÔCVÐCVÐCVÐW�Ø—
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜=Ñ)Ô)Ð)Ñ)Ý˜D¥*Ñ-Ô-ð /7Ø—
’
Ð3µh¸t¼yÑ6IÔ6IÑIÑJÔJÐJØ!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜?Ñ+Ô+Ð+Ñ+Ý˜D¥)Ñ,Ô,ð *7Ø�Ý˜dÕ$5Ñ6Ô6ð 0Ø/�EØ5Ø”JÝ˜TœYÑ'Ô'Øð9ñ �ð
 —
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜>Ñ*Ô*Ð*Ñ*Ý˜D¥&Ñ)Ô)ð 7ð0õ ˜DœMÑ*Ô*Ý  ¤Ñ+Ô+ØœœØÔ)Ô0Øœ	ðñð ð —
’
˜1‘”�Ø—’ §¢¡¤Ñ0Ô0Ð0Ø—
’
˜;Ñ'Ô'Ð'Ð'Ý˜D¥&Ñ)Ô)ð 7Ø—
’
Ð.°·²±´Ñ@ÑAÔAÐAÐAÝ˜D¥'Ñ*Ô*ð 7ØÔ#Ð/ØÔ+×8Ò8¸Ñ>Ô>�DØ—J’JØEÝ˜t™9œ9 d¤j°$´+Ð>ñ?ñô ð ð ð
 —J’JØ<ÀÄ
ÈDÌKÐ?XÑXñô ð ð ð 7�c ;°Ð"5Ñ6Ô6Ñ6Ô6Ð6ØˆFrF   r   r]  s   ` @@rE   rV   zXMLConverter.receive_layoutÝ  s‹   øøø€ ð	�Vð 	¨ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðZ	�ð Z	 Dð Z	ð Z	ð Z	ð Z	ð Z	ð Z	ð Z	ð Z	ðx 	ˆˆv‰ŒˆØˆrF   c                 ó.   — |                       ¦   «          d S r@   r_  rÏ   s    rE   r`  zXMLConverter.closeJ  ra  rF   )rÔ   r   NNFrb  )rÁ   rÂ   rÃ   r�   Úcompilerm  r*   r-   rQ   rÅ   r   r   r   rÆ   rA   rï   r   r,  rò   r   rV   r`  rp   rF   rE   rd  rd  ©  sQ  € € € € € àˆbŒjÐ8Ñ9Ô9€Gð ØØ'+Ø-1Ø"ðð à#ðð ðð ð	ð
 ðð ˜8Ô$ðð ˜kÔ*ðð ðð 
ðð ð ð ð.˜#ð  $ð ð ð ð ðð ð ð ðð ð ð ð˜sð  tð ð ð ð ðk Vð k°ð kð kð kð kðZð ð ð ð ð rF   rd  c                   óÈ   — e Zd ZdZ ej        d¦  «        Z	 	 	 	 ddeded	e	d
e
dee         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dS )ÚHOCRConverterzKExtract an hOCR representation from explicit text information within a PDF.z[\x00-\x08\x0b-\x0c\x0e-\x1f]Úutf8r   NFr;   rÕ   rÖ   r<   r=   re  c                 óŠ   — t                                | |||||¬¦  «         || _        d| _        |                      ¦   «          d S )Nré   F)rÓ   rA   re  Úwithin_charsr   )rD   r;   rÕ   rÖ   r<   r=   re  s          rE   rA   zHOCRConverter.__init__b  sX   € õ 	×ÒØ�'˜5¨°fÀxð 	ñ 	
ô 	
ð 	
ð )ˆÔØ!ˆÔØ×ÒÑÔÐÐÐrF   rY   r>   c                 óÜ   — |\  }}}}t          |¦  «        }t          | j        d         |z
  ¦  «        }t          |¦  «        }t          | j        d         |z
  ¦  «        }	d|› d|› d|› d|	› �S )Né   zbbox ú )rÅ   Ú	page_bbox)
rD   rY   Úin_x0Úin_y0Úin_x1Úin_y1Úout_x0Úout_y0Úout_x1Úout_y1s
             rE   Ú	bbox_reprzHOCRConverter.bbox_reprr  s~   € Ø'+Ñ$ˆ��u˜eå�U‘”ˆÝ�T”^ AÔ&¨Ñ.Ñ/Ô/ˆÝ�U‘”ˆÝ�T”^ AÔ&¨Ñ.Ñ/Ô/ˆØ:�vÐ:Ð: Ð:Ð:¨Ð:Ð:°&Ð:Ð:Ð:rF   r¶   c                 ó   — | j         rI|                     | j         ¦  «        }t          t          | j        ¦  «                             |¦  «         d S t          t          | j        ¦  «                             |¦  «         d S r@   )rÖ   rð   r   r   rÕ   rï   r	   )rD   r¶   Úencoded_texts      rE   rï   zHOCRConverter.write{  sk   € ØŒ:ð 	1ØŸ;š; t¤zÑ2Ô2ˆLÝ•˜4œ:Ñ&Ô&×,Ò,¨\Ñ:Ô:Ð:Ð:Ð:å•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0rF   c                 ó   — | j         r|                      d| j         z  ¦  «         n|                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d	¦  «         d S )
NzQ<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en' charset='%s'>
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>
ri  rÏ   s    rE   r   zHOCRConverter.write_header‚  sù   € ØŒ:ð 		Ø�JŠJð:Ø<@¼JñGñô ð ð ð
 �JŠJð-ñô ð ð 	�
Š
�:ÑÔÐØ�
Š
Ð&Ñ'Ô'Ð'Ø�
Š
ØWñ	
ô 	
ð 	
ð 	�
Š
ØSñ	
ô 	
ð 	
ð 	�
Š
ðCñ	
ô 	
ð 	
ð 	�
Š
�;ÑÔÐØ�
Š
�:ÑÔÐÐÐrF   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nz0<!-- comment in the following line to debug -->
zD<!--script src='https://unpkg.com/hocrjs'></script--></body></html>
rO  rÏ   s    rE   r,  zHOCRConverter.write_footerœ  s8   € Ø�
Š
ÐFÑGÔGÐGØ�
Š
ØVñ	
ô 	
ð 	
ð 	
ð 	
rF   c                 ót   — | j         r| j                             d|¦  «        }|                      |¦  «         d S rl  )re  rm  rn  rï   rñ   s     rE   rò   zHOCRConverter.write_text¢  s<   € ØÔð 	.Ø”<×#Ò# B¨Ñ-Ô-ˆDØ�
Š
�4ÑÔÐÐÐrF   c                 ó>  — t          | j        ¦  «        dk    r}d}d| j        v rd}d| j        v r|dz  }|                      d| j        | j        ||                      | j        ¦  «        | j        | j        | j                             ¦   «         fz  ¦  «         d| _        d S )	Nr   rn   ÚItaliczfont-style: italic; ÚBoldzfont-weight: bold; zg<span style='font:"%s"; font-size:%d; %s' class='ocrx_word' title='%s; x_font %s; x_fsize %d'>%s</span>F)	rR   Úworking_textÚworking_fontrï   Úworking_sizer‰  Úworking_bboxÚstripr|  )rD   Úbold_and_italic_styless     rE   Ú
write_wordzHOCRConverter.write_word§  sÂ   € ÝˆtÔ Ñ!Ô! AÒ%Ð%Ø%'Ð"Ø˜4Ô,Ð,Ð,Ø)?Ð&Ø˜Ô*Ð*Ð*Ø&Ð*?Ñ?Ð&Ø�JŠJð(ð
 Ô)ØÔ)Ø.ØŸš tÔ'8Ñ9Ô9ØÔ)ØÔ)ØÔ)×/Ò/Ñ1Ô1ðñ	ñô ð ð  "ˆÔÐÐrF   r½   c                 ó@   ‡ ‡— dt           dd fˆˆ fd„Š ‰|¦  «         d S )Nrf   r>   c                 ót  •— ‰j         r)t          | t          ¦  «        r‰                     ¦   «          t          | t          ¦  «        rl| j        ‰_        ‰                     d| j        ›d‰ 	                    | j        ¦  «        ›d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        rW‰                     d‰ 	                    | j        ¦  «        z  ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        r^‰                     d| j        ‰ 	                    | j        ¦  «        fz  ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        �r�‰j         sFd‰_         |                      ¦   «         ‰_        | j        ‰_        | j        ‰_        | j        ‰_        d S t+          |                      ¦   «                              ¦   «         ¦  «        d	k    r=‰                     ¦   «          ‰                     |                      ¦   «         ¦  «         d S ‰j        d
         | j        d
         k    s ‰j        | j        k    s‰j        | j        k    r8‰                     ¦   «          | j        ‰_        | j        ‰_        | j        ‰_        ‰xj        |                      ¦   «         z  c_        ‰j        d	         ‰j        d
         | j        d         ‰j        d         f‰_        d S d S )Nz<div class='ocr_page' id='z	' title='z'>
z</div>
z"<span class='ocr_line' title='%s'>r>  z+<div class='ocr_block' id='%d' title='%s'>
Tr   r   rƒ   r~  )r|  rS   r   r˜  r   rY   r€  rï   rû   r‰  r%   r"   rZ  r   rö   r’  r•  rG  r“  r<  r”  rR   r–  )rf   rø   Ú
child_linerù   rD   s      €€rE   rù   z,HOCRConverter.receive_layout.<locals>.renderÁ  s1  ø€ ØÔ ð "¥Z°µfÑ%=Ô%=ð "Ø—’Ñ!Ô!Ð!Ý˜$¥Ñ'Ô'ð 3Ø!%¤�”Ø—
’
�
à”{�{�{ D§N¢N°4´9Ñ$=Ô$=Ð$=Ð$=ð?ñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜:Ñ&Ô&Ð&Ð&Ð&Ý˜D¥*Ñ-Ô-ð *Ø—
’
Ø8¸T¿^º^ÈDÌIÑ=VÔ=VÑXñô ð ð #'ð 'ð '�JØ�F˜:Ñ&Ô&Ð&Ð&Ø—
’
˜;Ñ'Ô'Ð'Ð'Ð'Ý˜D¥)Ñ,Ô,ð #Ø—
’
ØBØ”z 4§>¢>°$´)Ñ#<Ô#<Ð=ñ>ñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜:Ñ&Ô&Ð&Ð&Ð&Ý˜D¥&Ñ)Ô)ñ ØÔ(ð Ø(,�DÔ%Ø(,¯ª©¬�DÔ%Ø(,¬	�DÔ%Ø(,¬�DÔ%Ø(,¬	�DÔ%Ð%Ð%å˜4Ÿ=š=™?œ?×0Ò0Ñ2Ô2Ñ3Ô3°qÒ8Ð8ØŸšÑ)Ô)Ð)ØŸ
š
 4§=¢=¡?¤?Ñ3Ô3Ð3Ð3Ð3ð !Ô-¨aÔ0°D´I¸a´LÒ@Ð@Ø#Ô0°D´MÒAÐAØ#Ô0°D´IÒ=Ð=à ŸOšOÑ-Ô-Ð-Ø04´	˜DÔ-Ø04´˜DÔ-Ø04´	˜DÔ-ØÐ)Ô)¨T¯]ª]©_¬_Ñ<Ð)Ô)à Ô-¨aÔ0Ø Ô-¨aÔ0Ø œI aœLØ Ô-¨aÔ0ð	-˜Ô)Ð)Ð)ð-ð rF   r   rü   s   ` @rE   rV   zHOCRConverter.receive_layoutÀ  sI   øø€ ð6	�ð 6	 Dð 6	ð 6	ð 6	ð 6	ð 6	ð 6	ð 6	ðp 	ˆˆv‰ŒˆˆˆrF   c                 ó.   — |                       ¦   «          d S r@   r_  rÏ   s    rE   r`  zHOCRConverter.closeû  s   € Ø×ÒÑÔÐÐÐrF   )rz  r   NFrb  )rÁ   rÂ   rÃ   Ú__doc__r�   rw  rm  r*   r-   rQ   rÅ   r   r   rÆ   rA   r0   r‰  rï   r   r,  rò   r˜  r   rV   r`  rp   rF   rE   ry  ry  O  sm  € € € € € ØUÐUð  ˆbŒjÐ9Ñ:Ô:€Gð ØØ'+Ø"ðð à#ðð ðð ð	ð
 ðð ˜8Ô$ðð ðð ð ð ð ;˜dð ; sð ;ð ;ð ;ð ;ð1˜#ð 1 $ð 1ð 1ð 1ð 1ðð ð ð ð4
ð 
ð 
ð 
ð˜sð  tð ð ð ð ð
"ð "ð "ð "ð29 Vð 9°ð 9ð 9ð 9ð 9ðvð ð ð ð ð rF   ry  )Jrß   Úloggingr�   Útypingr   r   r   r   r   r   r	   r
   r   r   r   Úpdfminer.pdfcolorr   rn   r   Úimager   Úlayoutr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   Ú	pdfdevicer&   Úpdffontr'   r(   Ú	pdfinterpr)   r*   Úpdfpager+   Úpdftypesr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   Ú	getLoggerrÁ   r»   r8   rÈ   rÑ   rÓ   rå   r  rd  ry  rp   rF   rE   ú<module>r©     sž  ðØ 	€	€	€	Ø €€€Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€gÔ˜Ñ!Ô!€ðMð Mð Mð Mð M˜ñ Mô Mð Mð`ð ð ð ð Ð)ñ ô ð ð& 
ˆ�˜6 8¨UÑ	3Ô	3€ðð ð ð ð Ð$ g¨f¤oñ ô ð ð@9ð 9ð 9ð 9ð 9�L Ô'ñ 9ô 9ð 9ðxoð oð oð oð o�L Ô'ñ oô oð oðd	cð cð cð cð c�< Ô&ñ cô cð cðLmð mð mð mð m�L Ô'ñ mô mð mð mð mrF   