§
    ¦”jEŽ  ã                  ó²  — U d dl mZ d dlZd dlZd dlZd dl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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mZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= erd dl>m?Z? d dl@mAZA 	 d dlBmCZC d dlDmEZE n# eF$ r dZEdZCY nw xY w ejG        eH¦  «        ZIdZJdeKd<   dZLdeKd <    G d!„ d"eM¦  «        ZN G d#„ d$¦  «        ZO G d%„ d&e%¦  «        ZP G d'„ d(e'¦  «        ZQd)ZRd*eKd+<    G d,„ d-¦  «        ZS G d.„ d/e*eO¦  «        ZT G d0„ d1e,eO¦  «        ZU G d2„ d3e:eO¦  «        ZV G d4„ d5e+eO¦  «        ZW G d6„ d7e0eO¦  «        ZX G d8„ d9e&¦  «        ZY G d:„ d;e.¦  «        ZZ G d<„ d=e)¦  «        Z[ G d>„ d?e)¦  «        Z\ G d@„ dAe*¦  «        Z]dS )Bé    )ÚannotationsN)Úmd5)Úescape)ÚBytesIOÚStringIO)ÚTYPE_CHECKINGÚClassVarÚIterator)Úuuid4)ÚImage)ÚUnidentifiedImageError)ÚTA_RIGHT)ÚParagraphStyle)ÚLazyImageReaderÚflattenÚ
haveImagesÚopen_for_read)Úpdfform)ÚBaseDocTemplateÚIndexingFlowableÚPageTemplate)ÚCondPageBreakÚFlowableÚKeepInFrameÚParagraphAndImage)ÚTableOfContents)ÚTableÚ
TableStyle)Úregister_reset)Ú
WaterMarks)ÚpisaFileObjectÚpisaTempFile)Ú	Paragraph)ÚImageWarningÚgetBorderStyle)ÚDrawing)ÚCanvas)ÚrenderPM)Úsvg2rlggffffffî?ÚfloatÚMAX_IMAGE_RATIOz3xhtml2pdf <https://github.com/xhtml2pdf/xhtml2pdf/>ÚstrÚPRODUCERc                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚPTCycleÚreturnÚNonec                ód   •— d| _         d| _        t          ¦   «                              ¦   «          d S ©Nr   )Ú_restartÚ_idxÚsuperÚ__init__©ÚselfÚ	__class__s    €úl/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/xhtml2pdf/xhtml2pdf_reportlab.pyr7   zPTCycle.__init__J   s-   ø€ ØˆŒØˆŒ	Ý‰Œ×ÒÑÔÐÐÐó    r
   c              #  ó�   K  — 	 | | j                  V — | xj         dz  c_         | j         t          | ¦  «        k    r| j        | _         ŒD)Né   )r5   Úlenr4   ©r9   s    r;   ÚcyclicIteratorzPTCycle.cyclicIteratorO   sM   è è € ð	*Ø�t”y”/Ð!Ð!Ð!ØˆIŒI˜‰NˆIŒIØŒy�C ™IœIÒ%Ð%Ø œM�”	ð		*r<   ©r0   r1   )r0   r
   )Ú__name__Ú
__module__Ú__qualname__r7   rA   Ú__classcell__©r:   s   @r;   r/   r/   I   sQ   ø€ € € € € ðð ð ð ð ð ð
*ð *ð *ð *ð *ð *ð *ð *r<   r/   c                  ó   — e Zd Zdd„Zdd„ZdS )	ÚPmlMaxHeightMixInÚavailHeightÚintr0   c                óâ   — || _         |dk     r\t          | d¦  «        rLt          | j        d¦  «        sd| j        _        t	          || j        j        ¦  «        x| _         | j        _        | j         S )Nip ÚcanvÚmaxAvailHeightValuer   )ÚavailHeightValueÚhasattrrM   rN   Úmax)r9   rJ   s     r;   ÚsetMaxHeightzPmlMaxHeightMixIn.setMaxHeightX   sx   € Ø%0ˆÔØ˜ÒÐ¥7¨4°Ñ#8Ô#8ÐÝ˜4œ9Ð&;Ñ<Ô<ð 2Ø01�”	Ô-ÝDGØ˜TœYÔ:ñEô Eð ˆDÔ! D¤IÔ$Að Ô$Ð$r<   c                ó4   — t          | d¦  «        r| j        ndS )NrO   r   )rP   rO   r@   s    r;   ÚgetMaxHeightzPmlMaxHeightMixIn.getMaxHeightb   s    € Ý(/°Ð6HÑ(IÔ(IÐPˆtÔ$Ð$ÈqÐPr<   N)rJ   rK   r0   rK   )r0   rK   )rC   rD   rE   rR   rT   © r<   r;   rI   rI   W   sB   € € € € € ð%ð %ð %ð %ðQð Qð Qð Qð Qð Qr<   rI   c                  ó2   — e Zd ZdZdd„Zdd„Zdd
„Zdd„ZdS )Ú
PmlBaseDocz[We use our own document template to get access to the canvas and set some information once.r0   r1   c                ó<   — t           | j        j        j        _        d S ©N)r-   rM   Ú_docÚinfoÚproducerr@   s    r;   Ú
beforePagezPmlBaseDoc.beforePagei   s   € Ý'/ˆŒ	ŒÔÔ$ð	ð 	r<   Úflowabler   c           	     ó¾   — t          |dd¦  «        rK|                      d|j        t          t	          j        |j        ¦  «        d¬¦  «        | j        f¦  «         d S d S )NÚoutlineFÚTOCEntryT)Úquote)ÚgetattrÚnotifyÚoutlineLevelÚhtml_escapeÚcopyÚdeepcopyÚtextÚpage)r9   r^   s     r;   ÚafterFlowablezPmlBaseDoc.afterFlowable~   so   € å�8˜Y¨Ñ.Ô.ð 	Ø�KŠKØàÔ)Ý¥¤¨h¬mÑ <Ô <ÀDÐIÑIÔIØ”Iðñô ð ð ð ð	ð 	r<   Úptústr | int | list | tuplec                óÌ  — |                       |› d�¦  «        }|                       |› d�¦  «        }|r|r
|› d�|› d�g}	 t          |t          ¦  «        r^t          | d¦  «        r| `| j        D ]/}|j        |k    r"| j                             |¦  «        | _         dS Œ0d|› d�}t          |¦  «        ‚t          |t          ¦  «        rt          | d¦  «        r| `|| _        dS t          |t          t          f¦  «        rÖt          ¦   «         }|D ]n}|dk    rt          |¦  «        |_        Œ| j        D ]I}t!          j        ¦   «          |j        |                     ¦   «         k    r|                     |¦  «          nŒJŒo|sd}t          |¦  «        ‚|j        t          |¦  «        k    rd	}t          |¦  «        ‚|                     ¦   «         | _        dS d
}t+          |¦  «        ‚)zBIf pt has also templates for even and odd page convert it to list.Ú_leftÚ_rightÚ_nextPageTemplateCycleNzcan't find template('z')Ú*z No valid page templates in cyclezInvalid cycle restart positionz/Argument pt should be string or integer or list)Ú_has_template_for_nameÚ
isinstancer,   rP   rq   ÚpageTemplatesÚidÚindexÚ_nextPageTemplateIndexÚ
ValueErrorrK   ÚlistÚtupler/   r?   r4   ÚsysÚexitÚstripÚappendrA   Ú	TypeError)r9   rl   Úhas_left_templateÚhas_right_templateÚtÚmsgÚcÚptns           r;   Úhandle_nextPageTemplatez"PmlBaseDoc.handle_nextPageTemplateŠ   s%  € à"&×"=Ò"=À¸l¸l¸lÑ"KÔ"KÐØ#'×#>Ò#>À"¸}¸}¸}Ñ#MÔ#MÐàð 	/Ð!3ð 	/Ø�,�,�, 2   Ð.ˆBàJÝ�b�#ÑÔð 	"Ý�tÐ5Ñ6Ô6ð 0ØÐ/ØÔ'ð ð �Ø”4˜2’:�:Ø7;Ô7I×7OÒ7OÐPQÑ7RÔ7R�DÔ/Ø�F�Fð ð 1¨"Ð0Ð0Ð0ˆCÝ˜S‘/”/Ð!Ý�b�#ÑÔð 	!Ý�tÐ5Ñ6Ô6ð 0ØÐ/Ø*,ˆDÔ'Ð'Ð'Ý˜�T¥5˜MÑ*Ô*ð 	!õ !™œˆAØð 	ð 	�à˜#’:�:Ý!$ Q¡¤�A”JØØÔ+ð ð �AÝ”H‘J”J�JØ”t˜sŸyšy™{œ{Ò*Ð*ØŸš ™œ˜Ø˜ð +øð ð &Ø8�Ý  ‘o”oÐ%ØŒz�C ™FœFÒ"Ð"Ø6�Ý  ‘o”oÐ%ð 9:×8HÒ8HÑ8JÔ8JˆDÔ'Ð'Ð'àCˆCÝ˜C‘.”.Ð r<   Únamer,   Úboolc                óD   ‡— t          ˆfd„| j        D ¦   «         ¦  «        S )Nc              3  óR   •K  — | ]!}|j         ‰                     ¦   «         k    V — Œ"d S rY   )rv   r~   )Ú.0Útemplaterˆ   s     €r;   ú	<genexpr>z4PmlBaseDoc._has_template_for_name.<locals>.<genexpr>¼   s2   øè è € ÐRÐR°8�8”; $§*¢*¡,¤,Ò.ÐRÐRÐRÐRÐRÐRr<   )Úanyru   )r9   rˆ   s    `r;   rs   z!PmlBaseDoc._has_template_for_name»   s)   ø€ ÝÐRÐRÐRÐR¸tÔ?QÐRÑRÔRÑRÔRÐRr<   NrB   )r^   r   r0   r1   )rl   rm   r0   r1   )rˆ   r,   r0   r‰   )rC   rD   rE   Ú__doc__r]   rk   r‡   rs   rU   r<   r;   rW   rW   f   sq   € € € € € ØeÐeðð ð ð ð*
ð 
ð 
ð 
ð/!ð /!ð /!ð /!ðbSð Sð Sð Sð Sð Sr<   rW   c                  ól   ‡ — e Zd ZU dZded<   dZded<   eZded<   dˆ fd	„Zdd„Zdd„Z	dd„Z
dd„Zˆ xZS )ÚPmlPageTemplateÚportraitr,   ÚPORTRAITÚ	landscapeÚ	LANDSCAPEÚpageorientationr0   r1   c                óÆ   •— g | _         g | _        d | _         t          ¦   «         j        di |¤Ž d| _        d| _        d | _        d| _        d| _	        d| _
        g | _        d S )Nr   TrU   )ÚpisaStaticListÚpisaBackgroundListÚpisaBackgroundr6   r7   Ú_page_countÚ_first_flowÚimgÚphÚhÚwÚbackgroundids)r9   Úkwr:   s     €r;   r7   zPmlPageTemplate.__init__Å   st   ø€ Ø$&ˆÔØ/1ˆÔØ"ˆÔØ�‰ŒÔÐÐ˜2ÐÐÐØ !ˆÔØ!%ˆÔð ˆŒØˆŒØˆŒØˆŒà(*ˆÔÐÐr<   Úcanvasr'   r‰   c                óÖ   — | j         r\|                     ¦   «         | j        k    rd| _         n7|                     ¦   «         | _        |                     ¦   «         |j        _        | j         S ©NF)r�   ÚgetPageNumberrœ   Ú_doctemplate)r9   r¤   s     r;   ÚisFirstFlowzPmlPageTemplate.isFirstFlowÕ   sg   € ØÔð 	IØ×#Ò#Ñ%Ô%¨Ô)9Ò9Ð9Ø#(�Ô Ð à#)×#7Ò#7Ñ#9Ô#9�Ô Ø28×2FÒ2FÑ2HÔ2H�Ô#Ô/ØÔÐr<   c                ó"   — | j         | j        k    S rY   )r—   r”   r@   s    r;   Ú
isPortraitzPmlPageTemplate.isPortraitÞ   s   € ØÔ# t¤}Ò4Ð4r<   c                ó"   — | j         | j        k    S rY   )r—   r–   r@   s    r;   ÚisLandscapezPmlPageTemplate.isLandscapeá   s   € ØÔ# t¤~Ò5Ð5r<   c                óJ  ‡‡‡— ‰                      ¦   «          	 |j        j        | j        vrùd }t	          | d¦  «        r±| j        rª| j                             ¦   «         s‘| j                             ¦   «                              d¦  «        r:t          j
        | j        | j        |                      ¦   «         | j        ¬¦  «        }n| j        }| j                             |j        j        ¦  «         |r4| j                             ‰                     ¦   «         || j        f¦  «         ˆˆˆfd„Š	 ‰                     ¦   «         Š‰| j        k    r7‰                     ¦   «         | _        ‰                     ¦   «         ‰j        _        | j        D ]>}t)          j        |¦  «        }|j        } ‰|¦  «         |                     |‰¦  «         Œ?n,# t0          $ r t2                               dd¬¦  «         Y nw xY w‰                     ¦   «          d S # ‰                     ¦   «          w xY w)Nr›   zimage/)Úis_portraitÚcontextc                óP  •— t          | ¦  «        D ]”}t          |t          ¦  «        rL|j        D ]C}|j        rt          ‰¦  «        |_        Œ|j        rt          ‰j        j	        ¦  «        |_        ŒDŒct          |t          ¦  «        rd„ |j        D ¦   «         } ‰|¦  «         Œ•d S )Nc                ó   — g | ]	}|D ]}|‘ŒŒ
S rU   rU   )rŒ   ÚsublistÚitems      r;   ú
<listcomp>zIPmlPageTemplate.beforeDrawPage.<locals>.pageNumbering.<locals>.<listcomp>  s9   € ð &ð &ð &Ø%,ÈGð&ð &ØDH˜Dð&ð &ð &ð &r<   )r   rt   ÚPmlParagraphÚfragsÚ
pageNumberr,   ri   Ú	pageCountr¨   rœ   ÚPmlTableÚ_cellvalues)ÚobjListÚobjÚfragÚ
flat_cellsr¤   ÚpageNumberingÚ
pagenumbers       €€€r;   rÀ   z5PmlPageTemplate.beforeDrawPage.<locals>.pageNumberingý   sÑ   ø€ Ý" 7Ñ+Ô+ð 2ð 2�CÝ! #¥|Ñ4Ô4ð 2Ø$'¤Ið Qð Q˜DØ#œð QÝ,/°
©O¬O ¤	 	Ø!%¤ð QÝ,/°Ô0CÔ0OÑ,PÔ,P ¤	øð	Qõ $ C­Ñ2Ô2ð 2ð&ð &Ø03´ð&ñ &ô &˜
ð &˜ jÑ1Ô1Ð1øð2ð 2r<   r’   T©Úexc_info)Ú	saveStateÚpageTemplaterv   r¢   rP   r›   ÚnotFoundÚgetMimeTypeÚ
startswithr    Úgenerate_pdf_backgroundÚpagesizer«   ÚbackgroundContextr   rš   r§   rœ   r¨   r™   rg   rh   ÚpisaStaticStoryÚaddFromListÚ	ExceptionÚlogÚdebugÚrestoreState)	r9   r¤   Údocr›   ÚframeÚ
frame_copyÚstoryrÀ   rÁ   s	    `     @@r;   ÚbeforeDrawPagezPmlPageTemplate.beforeDrawPageä   se  øøø€ Ø×ÒÑÔÐð8	"ØÔÔ"¨$Ô*<Ð<Ð<Ø!%�å˜DÐ"2Ñ3Ô3ðCàÔ+ðCð "Ô0×9Ò9Ñ;Ô;ðCð
 Ô*×6Ò6Ñ8Ô8×CÒCÀHÑMÔMð =Ý)3Ô)KØ Ô/Ø œMØ(,¯ªÑ(9Ô(9Ø$(Ô$:ð	*ñ *ô *˜˜ð *.Ô)<˜ØÔ&×-Ò-¨cÔ.>Ô.AÑBÔBÐBØ!ð ØÔ+×2Ò2Ø×-Ò-Ñ/Ô/°ÀÔAWÐXñô ð ð2ð 2ð 2ð 2ð 2ð 2ð 2ð <à#×1Ò1Ñ3Ô3�
Ø Ô 0Ò0Ð0Ø'-×';Ò';Ñ'=Ô'=�DÔ$Ø6<×6JÒ6JÑ6LÔ6L�FÔ'Ô3à!Ô0ð :ð :�EÝ!%¤¨uÑ!5Ô!5�JØ&Ô6�EØ!�M %Ñ(Ô(Ð(à×*Ò*¨5°&Ñ9Ô9Ð9Ð9ð:øõ ð <ð <ð <Ý—	’	Ð+°d�	Ñ;Ô;Ð;Ð;Ð;ð<øøøð ×ÒÑ!Ô!Ð!Ð!Ð!øˆF×ÒÑ!Ô!Ð!Ð!øøøs1   ™DH Ä-BG
 Ç	H Ç
&G3Ç0H Ç2G3Ç3H ÈH"rB   )r¤   r'   r0   r‰   )r0   r‰   )r¤   r'   )rC   rD   rE   r”   Ú__annotations__r–   r—   r7   r©   r«   r­   rÖ   rF   rG   s   @r;   r’   r’   ¿   sÂ   ø€ € € € € € Ø€HÐÐÐÑØ €IÐ Ð Ð Ñ à#€OÐ#Ð#Ð#Ñ#ð+ð +ð +ð +ð +ð +ð  ð  ð  ð  ð5ð 5ð 5ð 5ð6ð 6ð 6ð 6ð:"ð :"ð :"ð :"ð :"ð :"ð :"ð :"r<   r’   r>   rK   Ú_ctrc                  ó    — e Zd ZU dZi Zded<   dZded<   dZded<   dZded<   dd„Z	e
dd„¦   «         Zdd„Zdd„Zdd„Zd d„Zd„ Zd„ Zd!d„ZdS )"ÚPmlImageReaderz5Wraps up either PIL or Java to get data from bitmaps.zClassVar[dict]Ú_cacheFr‰   Ú	use_cacheÚuse_lazy_loaderÚprocess_internal_filesÚfileNameúPmlImage | Image | strr0   r1   c                ó:  — t          |t          ¦  «        r|j        | _        d S |pdt          | ¦  «        › �| _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        t          r4t          |t          ¦  «        r|| _        t          |dd ¦  «        | _        d S 	 t          |d¦  «        | _        | j        �rt          | j        t           ¦  «        rî| j                             ¦   «         }t%          j        t(          ¦  «        5  | j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        ro| j        st1          | j        j        ¦  «         t5          |                     d¦  «        ¦  «                             ¦   «         }| j                             ||¦  «        }t!          |¦  «        | _        nC| j        r<t          |t>          ¦  «        r'| j                             ¦   «          | `t@          | _!        tD          rP| j        s|  #                    | j        ¦  «        | _        t          | j        dd ¦  «        dk    r| j$        | _%        d S d S ddl&m'} 	  || j        ¦  «        \  | _        | _        }n$# t(          $ r}d	}tQ          |¦  «        |‚d }~ww xY w| j$        | _%        | j                             ¦   «         | _	        | j         )                    d¦  «         d S # tT          $ r}d
}tQ          |¦  «        |‚d }~ww xY w)NÚ	PILIMAGE_ÚfpÚbÚutf8ÚformatÚJPEGr   )ÚreadJPEGInfozBImaging Library not available, unable to import bitmaps only jpegszCannot identify image file)+rt   ÚPmlImageÚ__dict__rv   rß   Ú_imageÚ_widthÚ_heightÚ_transparentÚ_dataÚ_dataArã   r   rc   r   rÞ   r   ÚreadÚ
contextlibÚsuppressrÎ   ÚcloserÜ   rÛ   r   Úclearr   ÚencodeÚdigestÚ
setdefaultrÝ   r,   r   r:   r   Ú_read_imageÚ_jpeg_fhÚjpeg_fhÚreportlab.pdfbase.pdfutilsrè   r$   Úseekr   )r9   rß   ÚdataÚ	cache_keyrè   r…   Úer„   s           r;   r7   zPmlImageReader.__init__-  s<  € Ý�h¥Ñ)Ô)ð 	Ø$Ô-ˆDŒMØˆFð 19Ð0RÐ<RÍÈ4ÉÌÐ<RÐ<RˆŒØ!ˆŒØ"&ˆŒØ#'ˆŒØ ˆÔØ)-ˆŒ
Ø-1ˆŒØ-1ˆŒÝð ,	/•Z ­%Ñ0Ô0ð ,	/Ø"ˆDŒKÝ˜h¨¨dÑ3Ô3ˆDŒGˆGˆGð(/Ý'¨°#Ñ6Ô6�”ØÔ.ñ 5µ:¸d¼gÅxÑ3PÔ3Pð 5Ø $¤§¢¡¤�DÝ#Ô,­YÑ7Ô7ð (ð (ØœŸš™œ˜ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (à”~ð GØ#œ{ð >Ý*¨4¬;Ô+<Ñ=Ô=Ð=Ý$'¨¯ª°FÑ(;Ô(;Ñ$<Ô$<×$CÒ$CÑ$EÔ$E˜	Ø#œ{×5Ò5°iÀÑFÔF˜Ý& t™nœn�D”G�GØÔ)ð 5­j¸Å3Ñ.GÔ.Gð 5à”G—M’M‘O”O�OØ˜Ý%4�D”NÝð $àœ;ð @Ø&*×&6Ò&6°t´wÑ&?Ô&?˜œÝ˜tœ{¨H°dÑ;Ô;¸vÒEÐEØ'+¤}˜œ˜˜ð FÐEð HÐGÐGÐGÐGÐGð7Ø7C°|ÀDÄGÑ7LÔ7LÑ4˜œ T¤\°1°1øÝ$ð 7ð 7ð 7ð*ð õ +¨3Ñ/Ô/°QÐ6øøøøð7øøøð $(¤=�D”LØ!%¤§¢¡¤�D”JØ”G—L’L ‘O”O�O�O�Oøå)ð /ð /ð /Ø2�Ý" 3Ñ'Ô'¨QÐ.øøøøð/øøøsi   Â*A)K9 ÄD9Ä-K9 Ä9D=Ä=K9 Å D=ÅD$K9 É)K9 É0J ÊK9 Ê
J0ÊJ+Ê+J0Ê0AK9 Ë9
LÌLÌLr   c                óÖ   — t           j        d d…         dk    r>ddlm} ddlm}  ||                      ¦   «         ¦  «        }|                     |¦  «        S t          j        | ¦  «        S )Né   Újavar   )ÚByteArrayInputStream)ÚImageIO)	r|   ÚplatformÚjava.ior  Újavax.imageior  rñ   ÚPILImageÚopen)rã   r  r  Úinput_streams       r;   rù   zPmlImageReader._read_imagei  sv   € åŒ<˜˜˜Ô˜vÒ%Ð%Ø4Ð4Ð4Ð4Ð4Ð4Ø-Ð-Ð-Ð-Ð-Ð-à/Ð/°·²±	´	Ñ:Ô:ˆLØ—<’< Ñ-Ô-Ð-ÝŒ}˜RÑ Ô Ð r<   úBytesIO | StringIO | Nonec                óv   — | j         }t          |t          t          f¦  «        r|                     d¦  «         |S r3   )rã   rt   r   r   rý   )r9   rã   s     r;   rú   zPmlImageReader._jpeg_fhs  s4   € ØŒWˆÝ�b�7¥HÐ-Ñ.Ô.ð 	Ø�GŠG�A‰JŒJˆJØˆ	r<   c                ó   — dS )z-Might be replaced with _jpeg_fh in some casesNrU   r@   s    r;   rû   zPmlImageReader.jpeg_fhy  s   € àˆtr<   útuple[int, int]c                óD  — | j         �| j        €…t          j        d d…         dk    r=| j                             ¦   «         | _         | j                             ¦   «         | _        n| j        j        \  | _         | _        t          r| j         �| j        €J ‚| j         | j        fS )Nr  r  )	rì   rí   r|   r  rë   ÚgetWidthÚ	getHeightÚsizer   r@   s    r;   ÚgetSizezPmlImageReader.getSize}  s“   € ØŒ;Ð $¤,Ð"6ÝŒ|˜B˜Q˜BÔ 6Ò)Ð)Ø"œk×2Ò2Ñ4Ô4�”Ø#œ{×4Ò4Ñ6Ô6�”�à,0¬KÔ,<Ñ)�”˜Tœ\Ýð LØ”{Ð.°4´<Ð3KÐ3KÐ3KØŒ{˜DœLÐ(Ð(r<   úbytes | strc           
     óà  — | j         �€àd| _        t          j        dd…         dk    rìddl}ddlm} |                      ¦   «         \  }}|                     ||z  d¦  «        } || j	        dd|||d|¦  «        }| 
                    ¦   «          g }|j        }|D ]Y}	 |t          |	dz	  dz  ¦  «        ¦  «          |t          |	d	z	  dz  ¦  «        ¦  «          |t          |	dz  ¦  «        ¦  «         ŒZd
                     |¦  «        | _         d| _        nÕ| j	        }
|
j        x}| _        |dk    r]|
                     ¦   «          t!          |
                     ¦   «         d         ¦  «        | _        |
                     d¦  «        }
d| _        n |dvr|
                     d¦  «        }
d| _        t'          |
d¦  «        r|
                     ¦   «         n|
                     ¦   «         | _         | j         S )z(Return byte array of RGB data as string.Nr  r  r   )ÚPixelGrabberÚié   éÿ   é   Ú ÚRGBÚRGBAé   >   ÚLr  ÚCMYKÚtobytes)rï   rð   r|   r  ÚjarrayÚjava.awt.imager  r  Úzerosrë   Ú
grabPixelsr   ÚchrÚjoinÚmodeÚloadrÚ   ÚsplitÚconvertrP   r"  Útostring)r9   r#  r  ÚwidthÚheightÚbufferÚpgÚpixelsÚaÚrgbÚimr)  s               r;   Ú
getRGBDatazPmlImageReader.getRGBDataˆ  sé  € àŒ:ÑØˆDŒKÝŒ|˜B˜Q˜BÔ 6Ò)Ð)Ø���Ø7Ð7Ð7Ð7Ð7Ð7à $§¢¡¤‘��vØŸš e¨f¡n°cÑ:Ô:�Ø#/ <Ø”K  A u¨f°f¸aÀñ$ô $�ð —’‘”�ð %'�Ø”M�Ø!ð 'ð '�CØ�A•c˜3 "™9¨Ñ,Ñ-Ô-Ñ.Ô.Ð.Ø�A•c˜3 !™8 tÑ+Ñ,Ô,Ñ-Ô-Ð-Ø�A•c˜# ™*‘o”oÑ&Ô&Ð&Ð&ØŸWšW V™_œ_�”
Ø!�”	�	à”[�Ø#%¤7Ð*��t”yØ˜6’>�>Ø—G’G‘I”I�IÝ"0°·²±´¸A´Ñ"?Ô"?�D”KØŸš EÑ*Ô*�BØ %�D”I�IØÐ!5Ð5Ð5ØŸš EÑ*Ô*�BØ %�D”IÝ-4°R¸Ñ-CÔ-CÐV˜RŸZšZ™\œ\˜\ÈÏÊÉÌ�”
ØŒzÐr<   c                ó^   — |                       ¦   «         \  }}|||                      ¦   «         fS rY   )r  r6  )r9   r.  r/  s      r;   ÚgetImageDatazPmlImageReader.getImageData®  s*   € ØŸš™œ‰ˆˆvØ�f˜dŸošoÑ/Ô/Ð/Ð/r<   c                ó´  — t           j        d d…         dk    rd S d| j        j        v r¯| j        j        d         dz  }| j        j        }t          |d¦  «        r|j        }nt          |d¦  «        r|j        }nd S 	 t          |||dz   …         ¦  «        S # t          $ r4}t           
                    t          |¦  «        |¬¦  «         Y d }~d S d }~ww xY wd S )Nr  r  Útransparencyr  Úpaletterþ   rÂ   )r|   r  rë   r[   r;  rP   rþ   rz   rÎ   rÏ   rÐ   r,   )r9   r:  r;  r   s       r;   ÚgetTransparentzPmlImageReader.getTransparent²  s÷   € ÝŒ<˜˜˜Ô˜vÒ%Ð%Ø�4Ø˜Tœ[Ô-Ð-Ð-Øœ;Ô+¨NÔ;¸aÑ?ˆLØ”kÔ)ˆGÝ�w 	Ñ*Ô*ð Ø!œ/��Ý˜ &Ñ)Ô)ð Ø!œ,��à�tðÝ˜G L°<À!Ñ3CÐ$CÔDÑEÔEÐEøÝð ð ð Ý—	’	�#˜a™&œ&¨1�	Ñ-Ô-Ð-Ø�t�t�t�t�tøøøøðøøøð �4s   Á=B Â
CÂ!)CÃCr,   c                ó
  — t          | j        t          t          t          f¦  «        r:| j                             ¦   «         pt          | ¦  «        }dt          |¦  «        › �S t          | j        pt          | ¦  «        ¦  «        S )NÚPmlImageObject_)	rt   rß   ré   r   r   rñ   rv   Úhashr,   )r9   Úfns     r;   Ú__str__zPmlImageReader.__str__É  sj   € Ý�d”m¥hµµwÐ%?Ñ@Ô@ð 	0Ø”×#Ò#Ñ%Ô%Ð1­¨D©¬ˆBØ/¥T¨"¡X¤XÐ/Ð/Ð/Ý�4”=Ð,¥B t¡H¤HÑ-Ô-Ð-r<   N)rß   rà   r0   r1   )r0   r   )r0   r  )r0   r  )r0   r  )r0   r,   )rC   rD   rE   r�   rÛ   r×   rÜ   rÝ   rÞ   r7   Ústaticmethodrù   rú   rû   r  r6  r8  r<  rA  rU   r<   r;   rÚ   rÚ   $  s  € € € € € € Ø?Ð?à€FÐÐÐÑà€IÐÐÐÑØ!€OÐ!Ð!Ð!Ñ!Ø#(ÐÐ(Ð(Ð(Ñ(ð:/ð :/ð :/ð :/ðx ð!ð !ð !ñ „\ð!ðð ð ð ðð ð ð ð	)ð 	)ð 	)ð 	)ð$ð $ð $ð $ðL0ð 0ð 0ðð ð ð..ð .ð .ð .ð .ð .r<   rÚ   c                  óT   — e Zd Z	 	 	 	 	 ddd„Zd„ Z	 ddd„Zd d„Zd!d„Zd"d„Zd#d„Z	dS )$ré   NÚautorþ   ú%pisaFileObject | pisaTempFile | bytesÚsrcú
str | Noner.  ú
int | Noner/  Úmaskr,   Úmimetyper£   Údictr0   r1   c                óŒ  — || _         d| _        || _        d| _        t	          |t
          ¦  «        r|| _        n_t	          |t          ¦  «        r|                     ¦   «         | _        n0t	          |t          ¦  «        r| 	                    ¦   «         pd| _        || _
        || _        |                      ¦   «         }d| _        d| _        |r&|                     ¦   «         pd\  }	}	| _        | _        n7|                      ¦   «         }
|
r!|
                     ¦   «         \  | _        | _        |p| j        | _        |p| j        | _        d S )NÚCENTERr<   g        )r   r   r   r   )r£   ÚhAlignÚ_maskÚ_imgdatart   Úbytesr"   Úgetvaluer!   ÚgetDatarF  rJ  Ú
getDrawingÚ
imageWidthÚimageHeightÚ	getBoundsÚgetImager  Ú	drawWidthÚ
drawHeight)r9   rþ   rF  r.  r/  rI  rJ  r£   ÚdrawingÚ_rž   s              r;   r7   zPmlImage.__init__Ñ  s8  € ð ˆŒØ#ˆŒØˆŒ
Ø"ˆŒÝ�d�EÑ"Ô"ð 	2Ø ˆDŒMˆMÝ˜�lÑ+Ô+ð 	2Ø ŸMšM™OœOˆDŒMˆMÝ˜�nÑ-Ô-ð 	2Ø ŸLšL™NœNÐ1¨cˆDŒMØ"ˆŒà$,ˆŒð —/’/Ñ#Ô#ˆØ!$ˆŒØ"%ˆÔØð 
	BØ6=×6GÒ6GÑ6IÔ6Ið 7ð NÑ3ˆAˆq�$”/ 4Ô#3Ð#3ð —-’-‘/”/ˆCØð BØ47·K²K±M´MÑ1�” Ô!1à %Ð 8¨¬ˆŒØ!'Ð!;¨4Ô+;ˆŒˆˆr<   c                ód  — |                       |¦  «        }t          | j        |¦  «        }t          |¦  «        | j        z  }t          | j        |t
          z  ¦  «        }t          |¦  «        | j        z  }t          ||¦  «        }| j        |z  | _        | j        |z  | _        | j        | j        fS )zŒ
        Resize the image if necessary.

        This can be called more than once! Do not overwrite important data like drawWidth.
        )rR   ÚminrY  r*   rZ  r+   ÚdWidthÚdHeight)r9   Ú
availWidthrJ   r.  Úwfactorr/  ÚhfactorÚfactors           r;   ÚwrapzPmlImage.wrapü  sœ   € ð ×'Ò'¨Ñ4Ô4ˆå�D”N JÑ/Ô/ˆÝ˜‘,”, ¤Ñ/ˆÝ�T”_ kµOÑ&CÑDÔDˆÝ˜‘-”- $¤/Ñ1ˆÝ�W˜gÑ&Ô&ˆØ”n vÑ-ˆŒØ”¨Ñ/ˆŒàŒ{˜DœLÐ(Ð(r<   úfloat | NoneúDrawing | Nonec                óâ  — t           rç	 t          t          | j        ¦  «        ¦  «        }n# t          $ r Y dS w xY w|r±d}d}	 t	          | dd¦  «        �|€| j        }||j        z  }t	          | dd¦  «        �|€| j        }||j        z  }|dk    s|dk    r| 	                    ||¦  «         n?# t          $ r2 t                               d| j        p| j        dd…         ¦  «         Y nw xY w|S dS )zZIf this image is a vector image and the library is available, returns a ReportLab Drawing.Nr>   rY  rZ  z$SVG drawing could not be resized: %ré2   )r)   r   rP  rÎ   rc   rY  r.  rZ  r/  ÚscaleÚZeroDivisionErrorrÏ   ÚwarningrF  )r9   r.  r/  r[  Úscale_xÚscale_ys         r;   rT  zPmlImage.getDrawing  s<  € õ ð 	ðÝ!¥'¨$¬-Ñ"8Ô"8Ñ9Ô9��øÝð ð ð Ø�t�tðøøøàð à�Ø�ðÝ˜t [°$Ñ7Ô7ÐCØ ˜=Ø$(¤N˜EØ"'¨'¬-Ñ"7˜Ý˜t \°4Ñ8Ô8ÐDØ!˜>Ø%)¤_˜FØ"(¨7¬>Ñ"9˜Ø !’|�| w°!¢| |ØŸš g¨wÑ7Ô7Ð7øøÝ(ð ð ð Ý—K’KØ>ØœÐ6 D¤M°#°2°#Ô$6ñô ð ð ð ðøøøð
 �Øˆts   ‰!+ «
9¸9ÁA*B. Â.9C*Ã)C*úBytesIO | Nonec                óœ   — t           rDt          r=|                      ¦   «         }|r't          ¦   «         }t          j        ||d¬¦  «         |S dS )zVIf this image is a vector image and the libraries are available, returns a PNG raster.ÚPNG)ÚfmtN)r)   r(   rT  r   Ú
drawToFile)r9   ÚsvgÚimgdatas      r;   ÚgetDrawingRasterzPmlImage.getDrawingRaster.  sS   € åð 	•xð 	ØŸ?š?Ñ,Ô,ˆCØð Ý!™)œ)�ÝÔ# C¨°eÐ<Ñ<Ô<Ð<Ø�Øˆtr<   rÚ   c                ót   — |                       ¦   «         }|pt          | j        ¦  «        }t          |¦  «        S )zReturn a raster image.)rv  r   rP  rÚ   )r9   ÚvectorRasterru  s      r;   rX  zPmlImage.getImage8  s5   € à×,Ò,Ñ.Ô.ˆØÐ8¥'¨$¬-Ñ"8Ô"8ˆÝ˜gÑ&Ô&Ð&r<   c                óŒ   — |                       ¦   «         }| j                             |dd| j        | j        | j        ¬¦  «         d S )Nr   )rI  )rX  rM   Ú	drawImager_  r`  rO  )r9   rž   s     r;   ÚdrawzPmlImage.draw>  s@   € ð �mŠm‰oŒoˆØŒ	×Ò˜C  A t¤{°D´LÀtÄzÐÑRÔRÐRÐRÐRr<   c                ó,   — t          j        | |¦  «        S rY   )r   Úidentity)r9   ÚmaxLens     r;   r}  zPmlImage.identityG  s   € ÝÔ   vÑ.Ô.Ð.r<   )NNNrD  N)rþ   rE  rF  rG  r.  rH  r/  rH  rI  r,   rJ  rG  r£   rK  r0   r1   )NN)r.  rf  r/  rf  r0   rg  )r0   ro  )r0   rÚ   rB   rY   )
rC   rD   rE   r7   re  rT  rv  rX  r{  r}  rU   r<   r;   ré   ré   Ð  sÃ   € € € € € ð Ø Ø!ØØ#ð)<ð )<ð )<ð )<ð )<ðV)ð )ð )ð& BFðð ð ð ð ð@ð ð ð ð'ð 'ð 'ð 'ðSð Sð Sð Sð/ð /ð /ð /ð /ð /r<   ré   c                  ó   — e Zd Zd„ Zd„ ZdS )ÚPmlParagraphAndImagec                ób   — | j         | j        _         t          j        | ||¦  «        }| j        ` |S rY   )rM   ÚIr   re  )r9   ra  rJ   Úresults       r;   re  zPmlParagraphAndImage.wrapL  s-   € Ø”iˆŒŒÝ"Ô'¨¨j¸+ÑFÔFˆØŒFˆKØˆr<   c                óž   — t          | d¦  «        s(| j                             ||¦  «        \  | _        | _        t          j        | ||¦  «        S )NÚwI)rP   r‚  re  r…  ÚhIr   r+  ©r9   ra  rJ   s      r;   r+  zPmlParagraphAndImage.splitR  sN   € å�t˜TÑ"Ô"ð 	Ø#œvŸ{š{Ø˜Kñ ô  ÑˆDŒG�T”Wõ !Ô& t¨Z¸ÑEÔEÐEr<   N)rC   rD   rE   re  r+  rU   r<   r;   r€  r€  K  s7   € € € € € ðð ð ðFð Fð Fð Fð Fr<   r€  c                  ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )r¶   c                óÐ  — d| _         | j        D ]Ö}t          |d¦  «        rÄ|j        j        dk    r´|j        }|j        dk    r¢|j        dk    r—d| _         t          |j        |¦  «        }t          |¦  «        |j        z  }t          |j        |t          z  ¦  «        }t          |¦  «        |j        z  }t          ||¦  «        }	|xj        |	z  c_        |xj        |	z  c_        Œ×d S )NFÚcbDefnrž   r   T)
Ú	hasImagesr·   rP   rŠ  Úkindr.  r/  r^  r*   r+   )
r9   ra  rJ   r¾   rž   r.  rb  r/  rc  rd  s
             r;   Ú_calcImageMaxSizeszPmlParagraph._calcImageMaxSizes\  sê   € ØˆŒØ”Jð 	(ð 	(ˆDÝ�t˜XÑ&Ô&ð (¨4¬;Ô+;¸uÒ+DÐ+DØ”k�Ø”9˜q’=�= S¤Z°!¢^ ^Ø%)�D”NÝ ¤	¨:Ñ6Ô6�EÝ# E™lœl¨S¬YÑ6�GÝ Øœ
 Kµ/Ñ$Añô �Fõ $ F™mœm¨c¬jÑ8�GÝ  ¨'Ñ2Ô2�FØ�J”J &Ñ(�J”JØ�I”I Ñ'�I”Iøð	(ð 	(r<   c                óº  — |                       |¦  «        }| j        }|j        |j        z   |j        z   |j        z   | _        |j        |j        z   |j	        z   |j
        z   | _        || j        z  }|| j        z  }|                      ||¦  «         t          j        | ||¦  «         | xj        | j        z  c_        | xj        | j        z  c_        | j        | j        fS rY   )rR   ÚstyleÚpaddingLeftÚpaddingRightÚborderLeftWidthÚborderRightWidthÚ
deltaWidthÚ
paddingTopÚpaddingBottomÚborderTopWidthÚborderBottomWidthÚdeltaHeightr�  r#   re  r.  r/  )r9   ra  rJ   r�  s       r;   re  zPmlParagraph.wrapm  s   € Ø×'Ò'¨Ñ4Ô4ˆà”
ˆð ÔØÔ ñ!àÔ#ñ$ð Ô$ñ%ð 	Œð ÔØÔ!ñ"àÔ"ñ#ð Ô%ñ&ð 	Ôð 	�d”oÑ%ˆ
Ø�tÔ'Ñ'ˆð 	×Ò 
¨KÑ8Ô8Ð8õ 	Œ�t˜Z¨Ñ5Ô5Ð5ð 	ˆ
Œ
�d”oÑ%ˆ
Œ
ØˆŒ�tÔ'Ñ'ˆŒàŒz˜4œ;Ð&Ð&r<   c                óÖ   — t          | j        ¦  «        dk    rg S t          | d¦  «        s|                      ||¦  «         || j        z  }|| j        z  }t          j        | ||¦  «        S )Nr   r”  )r?   r·   rP   re  r”  r™  r#   r+  r‡  s      r;   r+  zPmlParagraph.split“  so   € ÝˆtŒz‰?Œ?˜aÒÐØˆIõ �t˜\Ñ*Ô*ð 	/Ø�IŠI�j +Ñ.Ô.Ð.à�d”oÑ%ˆ
Ø�tÔ'Ñ'ˆåŒ˜t Z°Ñ=Ô=Ð=r<   c           
     óî  ‡‡— t          | dd¦  «        rùt          | j        dd¦  «        dz   }|| j        k     ret          ¦   «         j        }| j                             |¦  «         | j                             | j        ||| j         ¦  «         |dz  }|| j        k     °e| j        | j        _	        t          ¦   «         j        }| j                             |¦  «         | j                             | j        || j        | j         ¦  «         |dz  }| j        Š| j
        Š‰j        }‰j        }d}||z
  }| }| j        |‰j        z   z
  d|z  z   }| j        d|z  z   }	|rX‰                     ¦   «          ‰                     |¦  «         ‰                     ||||	dd¬¦  «         ‰                     ¦   «          d ‰_        ‰                     ¦   «          ‰                     ‰j        ‰j        z   d‰j        ‰j        z   z  ¦  «         t3          j        | ¦  «         ‰                     ¦   «          |‰_        ‰                     ¦   «          ˆˆfd	„}
 |
‰j        ‰j        ‰j        |||||	z   ¦  «          |
‰j        ‰j        ‰j        ||z   |||z   ||	z   ¦  «          |
‰j         ‰j        ‰j!        |||	z   ||z   ||	z   ¦  «          |
‰j"        ‰j#        ‰j$        ||||z   |¦  «         ‰                     ¦   «          d S )
Nr`   FÚoutlineLastéÿÿÿÿr>   r   é   )ÚfillÚstrokec                óÐ   •— |r^t          | ¦  «        rQ|€‰j        }|�H‰                     |¦  «         ‰                     |¦  «         ‰                     ||||¦  «         d S d S d S d S rY   )r%   Ú	textColorÚsetStrokeColorÚsetLineWidthÚline)	Úbstyler.  ÚcolorÚx1Úy1Úx2Úy2r¤   r�  s	          €€r;   Ú_drawBorderLinez*PmlParagraph.draw.<locals>._drawBorderLineß  sŽ   ø€ àð 0�¨Ñ/Ô/ð 0à�=Ø!œO�EàÐ$Ø×)Ò)¨%Ñ0Ô0Ð0Ø×'Ò'¨Ñ.Ô.Ð.Ø—K’K  B¨¨BÑ/Ô/Ð/Ð/Ð/ð0ð 0ð 0ð 0ð
 %Ð$r<   )%rc   rM   re   r   ÚhexÚbookmarkPageÚaddOutlineEntryri   ÚoutlineOpenrœ  r�  Ú	backColorÚ
leftIndentr.  ÚrightIndentr/  rÄ   ÚsetFillColorÚrectrÑ   Ú	translater�  r’  r•  r—  r#   r{  ÚborderLeftStyleÚborderLeftColorÚborderRightStyler“  ÚborderRightColorÚborderTopStyleÚborderTopColorÚborderBottomStyler˜  ÚborderBottomColor)r9   ÚlastÚkeyÚbgr²  ÚbpÚxÚyr¡   r    r¬  r¤   r�  s              @@r;   r{  zPmlParagraph.draw   s�  øø€ å�4˜ EÑ*Ô*ð 	å˜4œ9 m°RÑ8Ô8¸1Ñ<ˆDØ˜Ô*Ò*Ð*å‘g”g”k�Ø”	×&Ò& sÑ+Ô+Ð+Ø”	×)Ò)¨$¬)°S¸$ÀDÔDTÐ@TÑUÔUÐUØ˜‘	�ð ˜Ô*Ò*Ð*ð %)Ô$5ˆDŒIÔ!å‘'”'”+ˆCàŒI×"Ò" 3Ñ'Ô'Ð'ØŒI×%Ò%Ø”	˜3 Ô 1°tÔ7GÐ3Gñô ð ð �A‰IˆDð ”ˆØ”
ˆØŒ_ˆØÔ%ˆ
Øˆà˜‰OˆØˆCˆØŒJ˜* uÔ'8Ñ8Ñ9¸AÀ¹FÑBˆØŒK˜!˜b™&Ñ ˆàð 	"à×ÒÑÔÐØ×Ò Ñ#Ô#Ð#Ø�KŠK˜˜1˜a ¨°1ˆKÑ5Ô5Ð5Ø×ÒÑ!Ô!Ð!ð ˆŒð 	×ÒÑÔÐØ×ÒØÔ Ô!6Ñ6Ø�%Ô" UÔ%9Ñ9Ñ:ñ	
ô 	
ð 	
õ 	Œ�tÑÔÐØ×ÒÑÔÐð ˆŒà×ÒÑÔÐð
	0ð 
	0ð 
	0ð 
	0ð 
	0ð 
	0ð 	ˆØÔ!ØÔ!ØÔ!ØØØØ�‰Eñ	
ô 	
ð 	
ð 	ˆØÔ"ØÔ"ØÔ"Ø�‰EØØ�‰EØ�‰Eñ	
ô 	
ð 	
ð 	ˆØÔ ØÔ ØÔ ØØ�‰EØ�‰EØ�‰Eñ	
ô 	
ð 	
ð 	ˆØÔ#ØÔ#ØÔ#ØØØ�‰EØñ	
ô 	
ð 	
ð 	×ÒÑÔÐÐÐr<   N)rC   rD   rE   r�  re  r+  r{  rU   r<   r;   r¶   r¶   [  sV   € € € € € ð(ð (ð (ð"$'ð $'ð $'ðL>ð >ð >ðpð pð pð pð pr<   r¶   c                  ó   — e Zd Zd„ ZdS )ÚPmlKeepInFramec                ó°   — t          |d¦  «        }t          |d¦  «        }|| _        |                      |¦  «        | _        t	          j        | ||¦  «        S )Ng      ð?)rQ   ÚmaxWidthrR   Ú	maxHeightr   re  r‡  s      r;   re  zPmlKeepInFrame.wrap  sQ   € Ý˜ SÑ)Ô)ˆ
Ý˜+ sÑ+Ô+ˆØ"ˆŒØ×*Ò*¨;Ñ7Ô7ˆŒÝÔ  j°+Ñ>Ô>Ð>r<   N©rC   rD   rE   re  rU   r<   r;   rÆ  rÆ    s#   € € € € € ð?ð ?ð ?ð ?ð ?r<   rÆ  c                  ó2   — e Zd Zed„ ¦   «         Zdd„Zd„ ZdS )rº   c                óœ   — t          | t          ¦  «        r|dz  t          | dd…         ¦  «        z  } n
| �| dk    r|} t          | |¦  «        S )z'Normalize width when using percentages.g      Y@Nr�  rr   )rt   r,   r*   r^  )r¡   Úmaxws     r;   Ú
_normWidthzPmlTable._normWidth  sT   € õ �a�ÑÔð 	Ø˜‘¥ q¨¨"¨¤v¡¤Ñ.ˆAˆAØˆi˜Q #šX˜XØˆAÝ�1�d‰|Œ|Ðr<   Né@ c           	     óp   — |dk    r|                       ¦   «         p|}t          j        | ||||||¬¦  «        S )NrÏ  )ÚWÚHÚaH)rT   r   Ú_listCellGeom)r9   ÚVr¡   ÚsrÑ  rÒ  rÓ  s          r;   rÔ  zPmlTable._listCellGeom&  sA   € à�Š;ˆ;Ø×"Ò"Ñ$Ô$Ð*¨ˆBÝÔ" 4¨¨A¨q°A¸¸rÐBÑBÔBÐBr<   c                ó¸  — |                       |¦  «         t          | d¦  «        s|| _        |                      | j        |¦  «        }|}d}| j        }t          |¦  «        D ]/\  }}|�|                      ||¦  «        }	||	z  }n|dz  }d }	|	||<   Œ0|dz  }
|dk    r-t          |¦  «        D ]\  }}|€t          |
||z  ¦  «        ||<   Œt          |¦  «        |k    rA|t          |¦  «        z  }t          t          |¦  «        ¦  «        D ]}||xx         |z  cc<   Œt          |¦  «        |z
  }|dk    r|dxx         |z  cc<   t          j        | ||¦  «        S )NÚ
totalWidthr   r>   g{®Gáz„?)rR   rP   rØ  rÎ  Ú
_colWidthsÚ	enumeraterQ   ÚsumÚranger?   r   re  )r9   ra  rJ   rØ  ÚremainingWidthÚremainingColsÚnewColWidthsr  ÚcolWidthÚnewColWidthÚminCellWidthÚquotientÚdiffs                r;   re  zPmlTable.wrap,  s°  € Ø×Ò˜+Ñ&Ô&Ð&õ �t˜\Ñ*Ô*ð 	)Ø(ˆDŒOð —_’_ T¤_°jÑAÔAˆ
Ø#ˆØˆØ”ˆõ
 % \Ñ2Ô2ð 	*ð 	*‰KˆAˆxØÐ#Ø"Ÿošo¨h¸
ÑCÔC�Ø +Ñ-��à Ñ"�Ø"�Ø)ˆL˜‰OˆOð " DÑ(ˆØ˜1ÒÐÝ(¨Ñ6Ô6ð ð ‘��8ØÐ#Ý&)Ø$ n°}Ñ&Dñ'ô '�L ‘Oøõ ˆ|ÑÔ˜zÒ)Ð)Ø!¥C¨Ñ$5Ô$5Ñ5ˆHÝ�3˜|Ñ,Ô,Ñ-Ô-ð ,ð ,�Ø˜Q��” 8Ñ+��‘�õ �<Ñ Ô  :Ñ-ˆØ�!Š8ˆ8Ø˜ˆOˆOŒO˜tÑ#ˆOˆO‰OåŒz˜$ 
¨KÑ8Ô8Ð8r<   )NNrÏ  )rC   rD   rE   rB  rÎ  rÔ  re  rU   r<   r;   rº   rº     sT   € € € € € Øðð ñ „\ððCð Cð Cð Cð.9ð .9ð .9ð .9ð .9r<   rº   c                  ó.   ‡ — e Zd Zdˆ fd„Zd„ Zdd„Zˆ xZS )	ÚPmlPageCountr0   r1   c                óV   •— t          ¦   «                              ¦   «          d| _        d S r¦   )r6   r7   Úsecond_roundr8   s    €r;   r7   zPmlPageCount.__init__^  s'   ø€ Ý‰Œ×ÒÑÔÐØ!ˆÔÐÐr<   c                ó"   — | j         }d| _         |S )NT)rè  )r9   rÖ  s     r;   ÚisSatisfiedzPmlPageCount.isSatisfiedb  s   € ØÔˆØ ˆÔØˆr<   r   c                ó   — d S rY   rU   )r9   r¤   rÃ  rÄ  Ú_sWs        r;   ÚdrawOnzPmlPageCount.drawOng  ó   € Øˆr<   rB   )r   )rC   rD   rE   r7   rê  rí  rF   rG   s   @r;   ræ  ræ  ]  s`   ø€ € € € € ð"ð "ð "ð "ð "ð "ðð ð ð
ð ð ð ð ð ð ð r<   ræ  c                  ó   — e Zd Zd„ ZdS )ÚPmlTableOfContentsc           
     óÊ  — || j         z
  | j         f}t          | j        ¦  «        dk    rdg}n| j        }d}g }g d¢}t          |¦  «        D ]¸\  }}	|	dd…         \  }
}}| j        |
         }|r0|                     dd|fd|ft          ||j        ¦  «        f¦  «         |j        }t          d|
z  |dt          ¬	¦  «        }t          ||¦  «        }t          t          |¦  «        |¦  «        }|                     ||g¦  «         Œ¹t          ||t          |¦  «        ¬
¦  «        | _        | j                             | j        ||¦  «        \  | _        | _        | j        | j        fS )z,All table properties should be known by now.r   )r   z!Placeholder for table of contentsr   ))ÚVALIGN©r   r   ©r�  r�  ÚTOP)ÚLEFTPADDINGró  rô  r   )ÚRIGHTPADDINGró  rô  r   )Ú
TOPPADDINGró  rô  r   )ÚBOTTOMPADDINGró  rô  r   Nr  rø  r�  zleftColLevel%d)rˆ   Úparentr²  Ú	alignment)Ú	colWidthsr�  )ÚrightColumnWidthr?   Ú_lastEntriesrÚ  ÚlevelStylesr   rQ   ÚspaceBeforeÚ
spaceAfterr   r   r#   r,   r   r   Ú_tableÚwrapOnrM   r.  r/  )r9   ra  rJ   ÚwidthsÚ_tempEntriesÚ
lastMarginÚ	tableDataÚ
tableStyler  ÚentryÚlevelri   ÚpageNumÚleftColStyleÚrightColStyleÚleftParaÚ	rightParas                    r;   re  zPmlTableOfContents.wrapl  s¢  € à˜tÔ4Ñ4°dÔ6KÐLˆõ ˆtÔ Ñ!Ô! QÒ&Ð&ØGÐHˆLˆLàÔ,ˆLàˆ
Øˆ	ð
ð 
ð 
ˆ
õ " ,Ñ/Ô/ð 	4ð 	4‰HˆAˆuØ#(¨¨!¨¤9Ñ ˆE�4˜ØÔ+¨EÔ2ˆLØð Ø×!Ò!à$Ø˜A˜Ø˜Q˜Ý˜J¨Ô(@ÑAÔAð	ñô ð ð &Ô0ˆJå*Ø%¨Ñ-Ø#ØÝ"ð	ñ ô ˆMõ !  |Ñ4Ô4ˆHÝ!¥# g¡,¤,°Ñ>Ô>ˆIØ×Ò˜h¨	Ð2Ñ3Ô3Ð3Ð3å˜I°½zÈ*Ñ?UÔ?UÐVÑVÔVˆŒà"&¤+×"4Ò"4°T´YÀ
ÈKÑ"XÔ"XÑˆŒ
�D”KØŒz˜4œ;Ð&Ð&r<   NrÊ  rU   r<   r;   rð  rð  k  s#   € € € € € ð2'ð 2'ð 2'ð 2'ð 2'r<   rð  c                  ó   — e Zd Zdd„Zd„ ZdS )ÚPmlRightPageBreakr0   r1   c                ó   — d S rY   rU   r@   s    r;   r7   zPmlRightPageBreak.__init__¢  rî  r<   c                ó~   — | j                              ¦   «         dz  s|| _        || _        ||fS dx| _        | _        dS ©Nrž  r   ró  ©rM   r§   r.  r/  r‡  s      r;   re  zPmlRightPageBreak.wrap¥  sI   € ØŒy×&Ò&Ñ(Ô(¨1Ñ,ð 	+Ø#ˆDŒJØ%ˆDŒKØ˜{Ð*Ð*Ø#$Ð$ˆŒ
�T”[Øˆtr<   NrB   ©rC   rD   rE   r7   re  rU   r<   r;   r  r  ¡  ó7   € € € € € ðð ð ð ðð ð ð ð r<   r  c                  ó   — e Zd Zdd„Zd„ ZdS )ÚPmlLeftPageBreakr0   r1   c                ó   — d S rY   rU   r@   s    r;   r7   zPmlLeftPageBreak.__init__¯  rî  r<   c                ó~   — | j                              ¦   «         dz  r|| _        || _        ||fS dx| _        | _        dS r  r  r‡  s      r;   re  zPmlLeftPageBreak.wrap²  sI   € ØŒ9×"Ò"Ñ$Ô$ qÑ(ð 	+Ø#ˆDŒJØ%ˆDŒKØ˜{Ð*Ð*Ø#$Ð$ˆŒ
�T”[Øˆtr<   NrB   r  rU   r<   r;   r  r  ®  r  r<   r  c                  ó0   — e Zd Z	 	 	 	 	 	 ddd„Zd	„ Zd
„ ZdS )ÚPmlInputri   é
   r  Nr   r0   r1   c                óp   — || _         || _        || _        || _        || _        |�|ng | _        || _        d S rY   )r.  r/  Útyperˆ   ÚdefaultÚoptionsÚ	multiline)r9   rˆ   Ú
input_typer.  r/  r!  r"  r#  s           r;   r7   zPmlInput.__init__¿  sB   € ð ˆŒ
ØˆŒØˆŒ	ØˆŒ	ØˆŒØ")Ð"5�w�w¸2ˆŒØ"ˆŒˆˆr<   c                ó   — | j         | j        fS rY   )r.  r/  )r9   Úargss     r;   re  zPmlInput.wrapÑ  s   € ØŒz˜4œ;Ð&Ð&r<   c           
     óH  — | j         }|                     ¦   «          |                     dd¦  «         | j        dk    rRt	          j        || j        dd| j        | j        | j	        ¬¦  «         | 
                    dd| j        | j        ¦  «         nÿ| j        dk    r#| 
                    dd| j        | j        ¦  «         nÑ| j        dk    re| j        rt	          j        || j        ddd¦  «         nt	          j        || j        d	dd¦  «         | 
                    dd| j        | j        ¦  «         na| j        d
k    rVt	          j        || j        | j        | j        dd| j        | j        ¦  «         | 
                    dd| j        | j        ¦  «         |                     ¦   «          d S )NÚ	Helveticar  ri   r   )r#  ÚradioÚcheckboxÚYesÚOffÚselect)rM   rÄ   ÚsetFontr   r   ÚtextFieldRelativerˆ   r.  r/  r#  rµ  r!  ÚbuttonFieldRelativeÚselectFieldRelativer"  rÑ   )r9   r…   s     r;   r{  zPmlInput.drawÔ  s–  € ØŒIˆà	�Š‰ŒˆØ	�	Š	�+˜rÑ"Ô"Ð"ØŒ9˜ÒÐÝÔ%Ø�4”9˜a  D¤J°´ÀtÄ~ðñ ô ð ð �FŠF�1�a˜œ T¤[Ñ1Ô1Ð1Ð1ØŒY˜'Ò!Ð!Ø�FŠF�1�a˜œ T¤[Ñ1Ô1Ð1Ð1ØŒY˜*Ò$Ð$ØŒ|ð GÝÔ+¨A¨t¬y¸%ÀÀAÑFÔFÐFÐFåÔ+¨A¨t¬y¸%ÀÀAÑFÔFÐFØ�FŠF�1�a˜œ T¤[Ñ1Ô1Ð1Ð1ØŒY˜(Ò"Ð"ÝÔ'Ø�4”9˜dœl¨D¬L¸!¸QÀÄ
ÈDÌKñô ð ð �FŠF�1�a˜œ T¤[Ñ1Ô1Ð1à	�ŠÑÔÐÐÐr<   )ri   r  r  r  Nr   rB   )rC   rD   rE   r7   re  r{  rU   r<   r;   r  r  ¾  s_   € € € € € ð ØØØØØð#ð #ð #ð #ð #ð$'ð 'ð 'ðð ð ð ð r<   r  )^Ú
__future__r   rò   rg   Úloggingr|   Úhashlibr   Úhtmlr   rf   Úior   r   Útypingr   r	   r
   Úuuidr   ÚPILr   r	  r   Ú	PIL.ImageÚreportlab.lib.enumsr   Úreportlab.lib.stylesr   Úreportlab.lib.utilsr   r   r   r   Úreportlab.pdfbaser   Úreportlab.platypus.doctemplater   r   r   Úreportlab.platypus.flowablesr   r   r   r   Ú"reportlab.platypus.tableofcontentsr   Úreportlab.platypus.tablesr   r   Úreportlab.rl_configr   Úxhtml2pdf.builders.watermarksr    Úxhtml2pdf.filesr!   r"   Úxhtml2pdf.reportlab_paragraphr#   Úxhtml2pdf.utilr$   r%   Úreportlab.graphics.shapesr&   Úreportlab.pdfgen.canvasr'   Úreportlab.graphicsr(   Úsvglib.svglibr)   ÚImportErrorÚ	getLoggerrC   rÏ   r+   r×   r-   rz   r/   rI   rW   r’   rØ   rÚ   ré   r€  r¶   rÆ  rº   ræ  rð  r  r  r  rU   r<   r;   ú<module>rN     sÙ  ðð  #Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø /Ð /Ð /Ð /Ð /Ð /Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø .Ð .Ð .Ð .Ð .Ð .à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7àð /Ø1Ð1Ð1Ð1Ð1Ð1Ø.Ð.Ð.Ð.Ð.Ð.ðØ+Ð+Ð+Ð+Ð+Ð+Ø%Ð%Ð%Ð%Ð%Ð%Ð%øØð ð ð Ø€GØ€H€H€Hðøøøð €gÔ˜Ñ!Ô!€à€Ð Ð Ð Ñ ØE€Ð EÐ EÐ EÑ Eð*ð *ð *ð *ð *ˆdñ *ô *ð *ðQð Qð Qð Qð Qñ Qô Qð QðVSð VSð VSð VSð VS�ñ VSô VSð VSðr_"ð _"ð _"ð _"ð _"�lñ _"ô _"ð _"ðD €€€€�ði.ð i.ð i.ð i.ð i.ñ i.ô i.ð i.ðXx/ð x/ð x/ð x/ð x/ˆxÐ*ñ x/ô x/ð x/ðvFð Fð Fð Fð FÐ,Ð.?ñ Fô Fð Fð uð uð uð uð u�9Ð/ñ uô uð uðp?ð ?ð ?ð ?ð ?�[Ð"3ñ ?ô ?ð ?ð>9ð >9ð >9ð >9ð >9ˆuÐ'ñ >9ô >9ð >9ðBð ð ð ð Ð#ñ ô ð ð3'ð 3'ð 3'ð 3'ð 3'˜ñ 3'ô 3'ð 3'ðl
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
�}ñ 
ô 
ð 
ð .ð .ð .ð .ð .ˆxñ .ô .ð .ð .ð .s   ÃC Ã	CÃC