§
    ¥”j¢º  ã                   óæ   — d Z ddlm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 d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdej        ffd„Z edd¦  «        fd„Zej                             d¦  «        Zd„ ZdS )z+Layout for tables and internal table boxes.é    )ÚinfNé   )Úboxes)ÚLOGGERé   )Úresolve_one_percentageÚresolve_percentages)Ú"table_and_columns_preferred_widthsc                 ó¦	  ‡ ‡‡‡‡‡‡‡$‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.‡/‡0‡1‡2‡3‡4‡5‡6— ddl mŠ$mŠ%mŠ&mŠ-mŠ.mŠ3 ‰j        o‰j        d         j        Š1‰j        o‰j        d         j	        Š0‰j
        d         dk    Š*‰duo‰1 }‰                     |d¬	¦  «         ‰*rdxŠ(Š)n‰j
        d
         \  Š(Š)‰j        Š,g xŠ+‰_        ‰                     ¦   «         ‰(z   Š4‰j
        d         dk    rC‰                     ¦   «         }	|	‰(z   }
‰,D ]!}|	‰(z  }	‰+                     |	¦  «         |	|z  }	Œ"|	|
z
  Š5nJ‰                     ¦   «         ‰j        z   }	|	‰(z
  }
‰,D ]!}|	‰(z  }	|	|z  }	‰+                     |	¦  «         Œ"|
|	z
  Š5‰*r°d‰_        d‰_        d}‰re‰                     ¦   «         \  \  }}|r|                     ¦   «         \  \  }}|rd}nd}‰j        d|…         D ]}|t)          |j        ¦  «        z  }Œnd}|s5‰1s3‰j        \  }}|r't-          d„ ||         D ¦   «         ¦  «        dz  ‰_        ˆˆ$ˆ%ˆ&ˆ(ˆ)ˆ*ˆ+ˆ,ˆ ˆ-ˆˆ.ˆ0ˆ1ˆ3ˆ4ˆ5ˆfd„Š/ˆˆ$ˆ&ˆ)ˆ ˆ-ˆˆ.ˆ/ˆ3ˆfd„Š'‰                     ¦   «         Š2‰€‰2‰)z  Š2‰2}d„ ‰j        D ¦   «         Š6ˆ$ˆ'ˆ)ˆˆ ˆ/ˆ0ˆ1ˆˆ2ˆˆˆ6fd„}d„ } |¦   «         \  }}}Š2}}|€|�J ‚dŠg }d}‰||||fS ‰                     |�|gng |z   |�|gng z   ¦  «        Št5          d„ ‰j        D ¦   «         ¦  «        ‰_        |duo‰0 }‰                     ||¦  «         ‰*r|‰_        t-          ‰j        dk    r‰j        nd‰2‰                     ¦   «         z
  ¦  «        ‰_        ‰2|z
  }‰j        r|‰)z  }‰j        D ]ö}|j        D ]œ} t=          | ‰¬¦  «         | j        t)          ‰+¦  «        k     r3‰+| j                 | _         || _!        ‰,| j                 | _        || _        nd| _         d| _!        d| _        d| _        t=          |‰¬¦  «          |‰| ¦  «        | _"        Œ�|j        d         }!|j        d         }"|!j         |_         ||_!        |"j         |"j        z   |!j         z
  |_        ||_        Œ÷‰j
        d         dk    r(‰, #                    ¦   «          ‰+ #                    ¦   «           ‰$‰j
        d         ‰ ¦  «        }#|r‰s|#r ‰3‰ ‰g‰‰¦  «         dŠd}g }d}‰||||fS )zLayout for a table box.r   )Úavoid_page_breakÚblock_container_layoutÚblock_level_page_breakÚfind_earlier_page_breakÚforce_page_breakÚremove_placeholdersr   éÿÿÿÿÚborder_collapseÚcollapseNF)ÚendÚborder_spacingÚ	directionÚltrTc              3   ó(   K  — | ]\  }\  }}}|V — Œd S ©N© ©Ú.0Ú_Úwidths      úf/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/table.pyú	<genexpr>ztable_layout.<locals>.<genexpr>J   s=   è è € ð -9ð -9Ù.˜a¡ ! U¨A�Eð-9ð -9ð -9ð -9ð -9ð -9ó    r   c                 ó¶  •— d }dd dœ}|}t          | ‰>¬¦  «         ‰<| _        || _        ‰=| _        g }d„ | j        D ¦   «         }	|d u }
|
rd}n|                     ¦   «         \  \  }}t          | j        |d …         |¬¦  «        D �]|\  }}||_        |r* ‰/|d         |¦  «        } ‰8|‰5¦  «        r||d<   |d i} �nEt          |‰>¬¦  «         ‰<|_        ||_        ‰=|_        g }t          |j        ¦  «        D �]\  }}‰4|j        d …         d |j	        …         }t          |¦  «        |_	        |j	        dk    rS|j                             |¦  «        }|j        |d …         }t          j        d	t          |¦  «        › d
|› �¦  «          �nƒt          |‰>¬¦  «         ‰>j        d         dk    r‰3|j                 |_        n‰3|j        |j	        z   dz
           |_        |j        |_        d|_        d|_        d|_        |                     ¦   «         }t#          |¦  «        ‰0|j	        dz
  z  z   |z
  |_        |r$||v r	||         }nt          |j        ¦  «        d i}nd }|r_‰2r]‰:rT‰>j        d         j        }|r?|d         j        r2|xj        t%          d„ |d         j        D ¦   «         ¦  «        z  c_        nd‰>_        |j        |_        d|_        |j        }|j        d         dk    r%|j                             ¦   «         }d|d<   ||_         ‰.‰5||||‰,‰7d d d dd ¬¦  «        \  }}}}}}||_        |€8|                     g ¦  «        } ‰.‰5|||dg g d d d dd ¬¦  «        \  }}}}}}dd i}n|}|                     |d ud¬¦  «         |r|€|i i}|||         |<   t3          d„ |j        D ¦   «         ¦  «         |_        |j        |_        |j        dk    rt%          |j        |j        ¦  «        |_        |                     |¦  «         �Œ|rQ|sO ‰-|j        d         ‰5¦  «        p t3          ˆ-ˆ5fd„|j        D ¦   «         ¦  «        }|r|i i} ‰;‰5|‰,‰7¦  «          �nŸ|r|D ]}|                     dd¬¦  «         Œ|                     |¦  «        }g }|j        D ]K}|j        d         }|dv r||_        Œd|_        t=          |¦  «        |_        |                     |¦  «         ŒL|rTt%          d„ |D ¦   «         ¦  «        |_        |D ]3}|j        |j        z
  } |j        |j        k    r| rtA          || ¦  «         Œ4|j        D ]%}|	|j!        dz
                                |¦  «         Œ&|	 "                    d¦  «        }!|!rƒ|j        dk    r7t%          d„ |!D ¦   «         ¦  «        }"t%          |"|j        z
  d¦  «        |_        nOt%          |j        t%          d„ |!D ¦   «         ¦  «        ¦  «        |_        |j        |j        z   }"n|j        }"d|_        |s|"|_        |!D ]í}|j        | #                    ¦   «         z   }#|"|#z
  } | r]|j        dk    rtA          || ¦  «         nA|j        dk    r&| d z  } tA          || ¦  «         |xj$        | z  c_$        n|xj$        | z  c_$        |j        dk    r`d}$|j        dk    r|j        |j        z
  d z  }$n|j        dk    r|j        |j        z
  }$|$dk    r |j        D ]}%|% %                    |$¬!¦  «         ŒŒî|j        |j        z   }&|€|&‰1z  }&d}'|r,tM          d"„ |j        D ¦   «         ¦  «        rtN          }&d}d }nd}'‰5 (                    ||&¦  «        }(|se|(rc ‰;‰5|j        ‰,‰7¦  «         |r>|d         }) ‰/|)|¦  «        } ‰-|‰5¦  «        r ‰6‰5|‰,‰7¦  «        }*|*r|*\  }} nGn|d i} n@|r|d i}nd d |fc S  n0|                     |¦  «         |&}d}d }|'r‰2r	‰9sd‰>_)        |'s|r n�Œ~|o| o ‰-| j        d         ‰5¦  «        p| }+|+r ‰;‰5|‰,‰7¦  «         d d |fS |                      |¦  «        } |                      |
 |d u¬¦  «         | j        D ]C}|j        €:|j        r,t%          d#„ |j        D ¦   «         ¦  «        |j        z
  |_        Œ<d|_        ŒD|| j        z
  | _        | j        r| xj        ‰1z  c_        | ||fS )$NÚany©ÚbreakÚpage©Úcontaining_blockc                 ó   — g | ]}g ‘ŒS r   r   )r   Úrows     r    ú
<listcomp>z6table_layout.<locals>.group_layout.<locals>.<listcomp>Z   s   € Ð<Ð<Ð< c˜rÐ<Ð<Ð<r"   r   ©Ústartr   r&   z8This table row has more columns than the table, ignored z cells: r   r   r   c              3   ó$   K  — | ]}|j         V — Œd S r   )Úborder_bottom_width)r   Úheaders     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>¢   sA   è è € ð 3Hð 3Hà$*ð !'Ô :ð3Hð 3Hð 3Hð 3Hð 3Hð 3Hr"   TÚautoÚheightF)Úpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styleÚdiscardÚ	max_lines)r.   r   c              3   óf   K  — | ],}|                      ¦   «         p|                     ¦   «         V — Œ-d S r   )Ú
is_floatedÚis_in_normal_flow©r   Úchilds     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>Î   sS   è è € ð %0ð %0àð ×$Ò$Ñ&Ô&ÐC¨%×*AÒ*AÑ*CÔ*Cð%0ð %0ð %0ð %0ð %0ð %0r"   Úbreak_insidec              3   óF   •K  — | ]} ‰|j         d          ‰¦  «        V — ŒdS )rA   N)Ústyle)r   Úcellr   Úcontexts     €€r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>Ú   sS   øè è € ð P2ð P2à ð )Ð(¨¬°NÔ)CÀWÑMÔMðP2ð P2ð P2ð P2ð P2ð P2r"   Úvertical_align)ÚtopÚmiddleÚbottomÚbaselinec              3   ó$   K  — | ]}|j         V — Œd S r   )rJ   ©r   rD   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>ù   s$   è è € Ð"LÐ"L°T 4¤=Ð"LÐ"LÐ"LÐ"LÐ"LÐ"Lr"   c              3   óN   K  — | ] }|j         |                     ¦   «         z   V — Œ!d S r   )Ú
position_yÚborder_heightrL   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>  sI   è è € ð '2ð '2à ð œ¨$×*<Ò*<Ñ*>Ô*>Ñ>ð'2ð '2ð '2ð '2ð '2ð '2r"   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   )rO   )r   Úrow_cells     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>
  sG   è è € ð 5Oð 5OØ5=˜×.Ò.Ñ0Ô0ð5Oð 5Oð 5Oð 5Oð 5Oð 5Or"   rI   rH   r   ©Údyc              3   ó$   K  — | ]}|j         V — Œd S r   )Úemptyr?   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>5  s$   è è € Ð=Ð= u�u”{Ð=Ð=Ð=Ð=Ð=Ð=r"   c              3   óN   K  — | ] }|                      ¦   «         |j        z   V — Œ!d S r   )Úcontent_box_yr3   rL   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>s  sI   è è € ð '2ð '2à ð ×*Ò*Ñ,Ô,¨t¬{Ñ:ð'2ð '2ð '2ð '2ð '2ð '2r"   )*r	   Ú
position_xrN   r   ÚchildrenÚitemsÚ	enumerateÚindexÚgrid_xÚcolspanÚlenr   ÚwarningrC   Ú
margin_topÚmargin_leftÚborder_widthÚsumÚmaxÚskip_cell_border_topr3   Úcomputed_heightÚcopyÚcopy_with_childrenÚremove_decorationr$   rU   Úcontent_heightÚappendrF   Úcell_baselinerJ   Úadd_top_paddingÚrowspanÚpoprO   Úpadding_bottomÚ	translateÚallr   Úoverflows_pageÚskip_cell_border_bottom)?ÚgrouprN   Úbottom_spacer4   Ú
skip_stackÚ	resume_atÚ	next_pageÚoriginal_page_is_emptyÚnew_group_childrenÚending_cells_by_rowÚis_group_startÚskipÚ	index_rowr+   Ú
page_breakÚnew_row_childrenÚ
index_cellrD   Úspanned_widthsÚ
cell_indexÚignored_cellsÚborders_plus_paddingÚcell_skip_stackÚheader_rowsÚoriginal_styleÚ
style_copyÚnew_cellÚcell_resume_atr   Úavoid_breakÚbaseline_cellsrF   ÚextraÚending_cellsÚrow_bottom_yÚcell_bottom_yÚvertical_align_shiftr@   Únext_position_yÚ
break_cellÚoverflowÚprevious_rowÚearlier_page_breakÚabortr5   r   r   r   Úborder_spacing_xÚborder_spacing_yr   Úcolumn_positionsÚcolumn_widthsrE   r   r6   r   Ú
has_footerÚ
has_headerr   Úrows_left_xÚ
rows_widthÚtables?                                               €€€€€€€€€€€€€€€€€€€r    Úgroup_layoutz"table_layout.<locals>.group_layoutP   s�  ø€ Øˆ	Ø#¨TÐ2Ð2ˆ	Ø!.ÐÝ˜E°EÐ:Ñ:Ô:Ð:Ø&ˆÔØ%ˆÔØ ˆŒØÐà<Ð<¨U¬^Ð<Ñ<Ô<Ðà# tÐ+ˆØð 	5ØˆDˆDà",×"2Ò"2Ñ"4Ô"4ÑÑˆT�:Ý'¨¬°t°u°uÔ(=ÀTÐJÑJÔJð |	ñ |	‰NˆI�sØ!ˆCŒIà!ð Ø3Ð3Ø& rÔ*¨Cñ1ô 1�
à#Ð# J°Ñ8Ô8ð Ø)3�I˜gÑ&Ø!*¨DÐ 1�IØ‘Eå °eÐ<Ñ<Ô<Ð<Ø(ˆCŒNØ'ˆCŒNØ"ˆCŒIà!ÐÝ$-¨c¬lÑ$;Ô$;ð b.ñ b.Ñ �
˜DØ!.¨t¬{¨|¨|Ô!<¸]¸d¼l¸]Ô!K�õ
  # >Ñ2Ô2�”Ø”< 1Ò$Ð$ð "%¤×!3Ò!3°DÑ!9Ô!9�JØ$'¤L°°°Ô$=�MÝ”NðOÝ#& }Ñ#5Ô#5ðOð OØ?LðOð OñPô Pð Pð ‘EÝ# D¸5ÐAÑAÔAÐAØ”;˜{Ô+¨uÒ4Ð4Ø&6°t´{Ô&C�D”O�Oà&6°t´{ÀTÄ\Ñ7QÐTUÑ7UÔ&V�D”OØ"%¤.�”Ø"#�”Ø#$�Ô Ø�”
Ø'+×'8Ò'8Ñ':Ô':Ð$õ ˜Ñ'Ô'Ø$¨¬°qÑ(8Ñ9ñ:à(ñ)ð ”
ð ð +Ø! ZÐ/Ð/Ø*4°ZÔ*@˜˜å+.¨t¬}Ñ+=Ô+=¸tÐ*D˜˜à&*�Oð #ð : xð :Ø!ð :ð ',¤n°QÔ&7Ô&@˜Ø&ð H¨;°r¬?Ô+Cð HØ ˜OœO­sð 3Hð 3Hà.9¸"¬oÔ.Fð3Hñ 3Hô 3Hñ 0Hô 0Hñ H˜OœOøð 6:˜Ô2ð (,¤{�Ô$Ø$�”Ø!%¤�Ø”:˜hÔ'¨6Ò1Ð1Ø!%¤§¢Ñ!2Ô!2�JØ+1�J˜xÑ(Ø!+�D”JØ7MÐ7MØ˜T <°Ø"/ÀØ +¸tØ'+¸dÈEØ"ð8$ñ 8$ô 8$Ñ4�˜.¨!¨Q°°1ð ,�”
ØÐ#Ø×2Ò2°2Ñ6Ô6�DØ*@Ð*@Ø  |°_Ø&*¸2È2Ø*.À4Ø)-°uÈð	+Nñ +Nô +NÑ'�D˜!˜Q  1 að
 '(¨ Y�N�Nà#�Dà×&Ò&¨_ÀDÐ-HÈeÐ&ÑTÔTÐTØ!ð FØ Ð(Ø%.° O˜	Ø7E�I˜iÔ(¨Ñ4Ý!$ð %0ð %0à!%¤ð%0ñ %0ô %0ñ "0ô "0ð 0�”
ð '+¤k�Ô#ØÔ'¨6Ò1Ð1Ý"% d¤k°4Ô3GÑ"HÔ"H�D”KØ ×'Ò'¨Ñ-Ô-Ð-Ñ-àð  ð ð %Ð$ S¤Y¨~Ô%>ÀÑHÔHð 2ÍCð P2ð P2ð P2ð P2ð P2à$'¤LðP2ñ P2ô P2ñ M2ô M2ð ð ð Ø!*¨B �IØ'Ð'ØÐ!1°>À;ñPô Pð Pà‘Eàð Bà,ð Bð B�DØ×*Ò*°¸DÐ*ÑAÔAÐAÐAà×(Ò(Ð)9Ñ:Ô:ˆCð  ˆNØœð 0ð 0�Ø!%¤Ð,<Ô!=�Ø!Ð%@Ð@Ð@Ø*8�DÔ'Ð'ð +5�DÔ'Ý$1°$Ñ$7Ô$7�D”MØ"×)Ò)¨$Ñ/Ô/Ð/Ð/Øð 5Ý"Ð"LÐ"L¸^Ð"LÑ"LÔ"LÑLÔL�”Ø*ð 5ð 5�DØœL¨4¬=Ñ8�EØ”}¨¬Ò4Ð4¸Ð4Ý'¨¨eÑ4Ô4Ð4øð œð Cð C�Ø# D¤L°1Ñ$4Ô5×<Ò<¸TÑBÔBÐBÐBØ.×2Ò2°1Ñ5Ô5ˆLØð Ø”: Ò'Ð'Ý#&ð '2ð '2à$0ð'2ñ '2ô '2ñ $2ô $2�Lõ "% \°C´NÑ%BÀAÑ!FÔ!F�C”J�Jå!$ S¤Zµð 5Oð 5OØAMð5Oñ 5Oô 5Oñ 2Oô 2Oñ "Pô "P�C”Jà#&¤>°C´JÑ#>�L�Là"œ~�Ø�”
à!ð ,Ø+�”ð %ð Eð E�Ø $¤°$×2DÒ2DÑ2FÔ2FÑ F�Ø$ }Ñ4�Øð 5ØÔ*¨hÒ6Ð6Ý'¨¨eÑ4Ô4Ð4Ð4ØÔ,°Ò8Ð8Ø ™
˜Ý'¨¨eÑ4Ô4Ð4ØÐ+Ô+¨uÑ4Ð+Ô+Ð+àÐ+Ô+¨uÑ4Ð+Ô+ØÔ'¨6Ò1Ð1Ø+,Ð(ØÔ*¨hÒ6Ð6à Ô0°4Ô3FÑFÈ!ñ0LÐ,Ð,àÔ,°Ò8Ð8à Ô0°4Ô3FÑFð -à+¨aÒ/Ð/Ø%)¤]ð Eð E˜EØ!ŸOšOÐ/C˜OÑDÔDÐDÐDøà!œn¨s¬zÑ9ˆOØÐ ØÐ#3Ñ3�ð ˆJØð &ÝÐ=Ð=°´Ð=Ñ=Ô=Ñ=Ô=ð &å&)�OØ$)�MØ $�I�Ià!%�Jð ×-Ò-¨l¸OÑLÔLˆHØ ð  Xð Ø#Ð# G¨S¬\¸>È;ÑWÔWÐWØ%ð Ø#5°bÔ#9�LØ!7Ð!7¸ÀcÑ!JÔ!J�JØ'Ð'¨
°GÑ<Ô<ð Ø-DÐ-DØ#Ð%7¸Èñ.Vô .VÐ*à-ð "Ø<NÑ9Ð.°	Ø!˜Eð"ð &/°Ð$5˜	Ø˜Ø)ð 1Ø!*¨DÐ 1�I�Ià  yÐ0Ð0Ð0Ð0Ø�à×%Ò% cÑ*Ô*Ð*Ø(ˆJØ!ˆMØˆJàð 5˜hð 5¨zð 5Ø04�Ô-àð ˜Yð Ø�ñð ð (Ø&Ð&ð(à Ð  ¤¨^Ô!<¸gÑFÔFð 'Ø&Ð&ð	 	ð
 ð 	)ØÐØÐ+¨^¸[ñJô Jð Jà˜˜yÐ(Ð(à×(Ò(Ð);Ñ<Ô<ˆØ×Ò¨.Ð&8¸iÈtÐ>SÐÑTÔTÐTð ”>ð 	%ð 	%ˆCØŒ|Ð#Ø”<ð %å#&ð '2ð '2à$'¤Lð'2ñ '2ô '2ñ $2ô $2à47´Nñ$C�C”L�Lð $%�C”LøØ! EÔ$4Ñ4ˆŒØŒ>ð 	-àˆLŒLÐ,Ñ,ˆLŒLà�i Ð*Ð*r"   c                 óp  •— | €d}n|                       ¦   «         \  \  }} g }d }dd dœ}t          ‰j        |d …         ¦  «        D ]ì\  }}	|	j        s|	j        rŒ||z   }
|
|	_        |r) ‰|d         |	¦  «        } ‰|‰¦  «        r||d<   |
d i} n¢ ‰|	|||| ¦  «        \  }}}d } |€^|rR|d         } ‰||	¦  «        } ‰|‰¦  «        r- ‰‰|‰‰¦  «        }|€ ‰‰|‰‰¦  «         d d ||fc S |\  }} n<|
d i}nd d ||fc S  n-|                     |¦  «         ||j        ‰z   z  }d}|r|
|i} nŒí||||fS )Nr   r$   r%   r   r&   F)rZ   r[   rY   Ú	is_headerÚ	is_footerr\   rl   r3   )rx   rN   rw   r4   r   Únew_table_childrenry   rz   Úirv   Úindex_groupr�   Ú	new_groupÚprevious_groupr™   r5   r   r   rœ   rE   r   r6   r   r¤   r   r£   s                  €€€€€€€€€€€r    Úbody_groups_layoutz(table_layout.<locals>.body_groups_layout  s1  ø€ ØÐØˆDˆDà",×"2Ò"2Ñ"4Ô"4ÑÑˆT�:ØÐØˆ	Ø#¨TÐ2Ð2ˆ	å! %¤.°°°Ô"7Ñ8Ô8ð -	ð -	‰HˆAˆuØŒð  %¤/ð Øð ˜d™(ˆKØ%ˆEŒKà!ð Ø3Ð3Ð4FÀrÔ4JÈEÑRÔR�
Ø#Ð# J°Ñ8Ô8ð Ø)3�I˜gÑ&Ø!,¨dÐ 3�IØ�Eà.:¨lØ�z <°À
ñ/Lô /LÑ+ˆI�y )àˆJàÐ Ø%ð =Ø%7¸Ô%;�NØ!7Ð!7¸ÈÑ!NÔ!N�JØ'Ð'¨
°GÑ<Ô<ð 	Ø-DÐ-DØ#Ð%7¸Èñ.Vô .VÐ*à-Ð5Ø/Ð/Ø 'Ð);¸^Ø +ñ-ô -ð -ð $(¨¨y¸*Ð#DÐDÐDÐDØ8JÑ5Ð*¨IØ˜Ø!,¨dÐ 3�I�Ià  y°*Ð<Ð<Ð<Ð<Ø�à×%Ò% iÑ0Ô0Ð0Ø˜)Ô*Ð-=Ñ=Ñ=ˆJØ!ˆMàð Ø(¨)Ð4�	Ø�ðð " 9¨i¸ÐCÐCr"   c                 ó.   — g | ]}|j         °	|j        °|‘ŒS r   )r¦   r§   r?   s     r    r,   z table_layout.<locals>.<listcomp>¾  s:   € ð 8ð 8ð 8ØØŒð8à',¤ð8Øð8ð 8ð 8r"   c                  ó\  •— ‰r‰} nt            } ‰r3‰j        d         } ‰|‰| d d¬¦  «        \  }}}|r|s|j        ‰z   }nd }nd }‰r3‰j        d         } ‰|‰| d d¬¦  «        \  }}}|r|s|j        ‰z   }nd }nd }‰r‰\  }nd}d}‰j        |d …         D ])}	|	j        s |	j        s ‰|	j        d         ‰¦  «        } nŒ*|rO|rM ‰‰‰|z   ‰|z   |¬¦  «        \  }
}}}|
s‰r‰s+|                     ||j        z
  ¬¦  «         ||z  }||
||||fS d }|r)|s' ‰‰‰|z   ‰|¬¦  «        \  }
}}}|
s‰r‰s||
||||fS d }|rL|sJ ‰‰‰‰|z   |¬¦  «        \  }
}}}|
s‰r‰s+|                     ||j        z
  ¬¦  «         ||z  }||
||||fS d }|rJ ‚|rJ ‚ ‰‰‰‰‰¦  «        \  }
}}}||
||||fS )Nr   F)rx   r4   r   rA   )r4   rR   )r   rY   r3   r¦   r§   rC   rr   rN   )Úheader_footer_bottom_spacer1   ry   rz   Úheader_heightÚfooterÚfooter_heightr   Úavoid_breaksrv   r¨   Úend_position_yr   r­   rœ   rw   rE   r¤   rŸ   r    r4   rN   rx   r£   Ú
table_rowss               €€€€€€€€€€€€€r    Úall_groups_layoutz'table_layout.<locals>.all_groups_layoutÂ  s|  ø€ ð ð 	.Ø)5Ð&Ð&å*-¨Ð&àð 	Ø”^ AÔ&ˆFØ+7¨<Ø˜
Ð$>Ø¨uð,6ñ ,6ô ,6Ñ(ˆF�I˜yð ð ˜ið Ø &¤Ð0@Ñ @��ð ��àˆFàð 	Ø”^ BÔ'ˆFØ+7¨<Ø˜
Ð$>Ø¨uð,6ñ ,6ô ,6Ñ(ˆF�I˜yð ð ˜ið Ø &¤Ð0@Ñ @��ð ��àˆFð ð 	Ø‰EˆDˆDàˆDØˆØ”^ D E EÔ*ð 	ð 	ˆEØ”?ð ¨5¬?ð Ø/Ð/°´¸NÔ0KÈWÑUÔU�Ø�øàð 	�fð 	ð #Ð"Ø 
¨]Ñ :Ø  =Ñ0ÀðNñ Nô Nñ EÐ 	¨9°nð "ð ¨ð ¸=ð Ø× Ò  N°VÔ5FÑ$FÐ ÑGÔGÐGØ -Ñ/�àÐ.°¸È	Øðð ð
 �àð 	˜&ð 	ð #Ð"Ø 
¨]Ñ :¸LØ".ð0ñ 0ô 0ñ EÐ 	¨9°nð "ð ¨ð ¸=ð àÐ.°¸È	Øðð ð
 �àð 	˜&ð 	ð #Ð"Ø 
¨L¸=Ñ,HØ".ð0ñ 0ô 0ñ EÐ 	¨9°nð "ð ¨ð ¸=ð Ø× Ò  N°VÔ5FÑ$FÐ ÑGÔGÐGØ -Ñ/�àÐ.°¸È	Øðð ð
 �àÐÐÐØÐÐÐàÐ˜z¨:°|À]ÑSÔSñ 	AÐ˜I y°.àÐ)¨6°>À9ÈiÐWÐWr"   c                 ó   ‡ ‡— ˆˆ fd„S )z(Return closure getting the column cells.c                  ó*   •— ˆ fd„‰j         D ¦   «         S )Nc                 ó\   •— g | ](}|j         D ]}|j         D ]}|j        ‰j        k    ¯|‘ŒŒŒ)S r   )rY   r]   )r   Ú	row_groupr+   rD   Úcolumns       €r    r,   zLtable_layout.<locals>.get_column_cells.<locals>.<lambda>.<locals>.<listcomp>+  sc   ø€ ð -ð -ð -àØ Ô)ð-ð -ð Øœð	-ð -ð ØŒ{˜fœmÒ+Ð+ð	 ð ,Ð+Ð+Ð+Ð+r"   ©rY   )r¼   r£   s   €€r    ú<lambda>z8table_layout.<locals>.get_column_cells.<locals>.<lambda>+  s-   ø€ ð -ð -ð -ð -à"œ^ð-ñ -ô -€ r"   r   )r£   r¼   s   ``r    Úget_column_cellsz&table_layout.<locals>.get_column_cells)  s"   øø€ ð-ð -ð -ð -ð -ð 	-r"   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   )Údeepcopy)r   Úcolumn_groups     r    r!   ztable_layout.<locals>.<genexpr>@  sG   è è € ð  Ið  IØ$0ˆ×ÒÑÔð Ið  Ið  Ið  Ið  Ið  Ir"   r2   r(   ÚrtlrA   )$Úblockr   r   r   r   r   r   rY   r¦   r§   rC   rj   rž   r�   Úcontent_box_xrl   r   rf   ru   rZ   r_   Úcollapsed_border_gridre   Úborder_top_widthrW   ri   ÚtupleÚcolumn_groupsÚskipped_rowsr3   r	   r]   rX   rN   Ú	get_cellsÚreverse)7rE   r£   rw   rx   r)   r4   r5   r6   Úremove_start_decorationrX   Úrows_xr   Úsplit_cellsÚskipped_groupsÚgroup_skip_stackrÊ   Úcells_skip_stackrv   r   Úhorizontal_bordersÚinitial_position_yr·   r¿   r1   r¨   r²   ry   rz   r7   Úcollapsing_throughÚremove_end_decorationÚcolumns_heightr¼   ÚfirstÚlastrŽ   r   r   r   r­   r›   rœ   r   r�   rž   r   r   r¤   rŸ   r    rN   r   r¡   r¢   r¶   s7   ```` ```                            @@@@@@@@@@@@@@@@@@@r    Útable_layoutrÚ      s  øøøøøøøøøøøøøøøøøøøøøøøøøø€ ðHð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð
 ”Ð? E¤N°1Ô$5Ô$?€JØ”Ð@ E¤N°2Ô$6Ô$@€JØŒ{Ð,Ô-°Ò;€HØ(°Ð4ÐG¸Z¸ÐØ	×ÒÐ3¸ÐÑ?Ô?Ð?ð ð KØ./Ð/ÐÐ+Ð+à-2¬[Ð9IÔ-JÑ*ÐÐ*ð Ô'€MØ02Ð2Ð�uÔ-Ø×%Ò%Ñ'Ô'Ð*:Ñ:€KØ„{�;Ô 5Ò(Ð(Ø×(Ò(Ñ*Ô*ˆ
ØÐ.Ñ.ˆØ"ð 	 ð 	 ˆEØÐ*Ñ*ˆJØ×#Ò# JÑ/Ô/Ð/Ø˜%ÑˆJˆJØ &Ñ(ˆ
ˆ
à×(Ò(Ñ*Ô*¨U¬[Ñ8ˆ
ØÐ.Ñ.ˆØ"ð 	0ð 	0ˆEØÐ*Ñ*ˆJØ˜%ÑˆJØ×#Ò# JÑ/Ô/Ð/Ð/Ø˜jÑ(ˆ
ð ð =Ø%*ˆÔ"Ø(-ˆÔ%ØˆØð 	Ø2<×2BÒ2BÑ2DÔ2DÑ/Ñ.ˆ^Ð-Øð !Ø4D×4JÒ4JÑ4LÔ4LÑ1Ñ0�Ð/Ø#ð 'Ø"&�Køà �Øœ¨¨¨Ô8ð 4ð 4�Ø¥ E¤NÑ 3Ô 3Ñ3��ð4ð ˆLØð 	= :ð 	=Ø$)Ô$?Ñ!ˆAÐ!Ø!ð =Ý),ð -9ð -9à)¨,Ô7ð-9ñ -9ô -9ñ *9ô *9à;<ñ*=�Ô&ðm+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð m+ð^	8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dð 8Dðv ×$Ò$Ñ&Ô&€JØÐØÐ&Ñ&ˆ
Ø#Ðð8ð 8Ø œ>ð8ñ 8ô 8€JðeXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXð eXðN-ð -ð -ð 	ÐÑÔñ I€FÐ ¨
°I¸yð Ð!ØÐ Ð Ð ØˆØÐØ"ÐØ�i Ð,=Ð?QÐQÐQà×$Ò$ØÐ'ˆ&ˆˆ¨RØñ	àÐ'ˆ&ˆˆ¨Rñ	1ñ2ô 2€Eõ  ð  Ið  IØ49Ô4Gð Iñ  Iô  Iñ Iô I€EÔà%¨TÐ1ÐD¸*°nÐØ	×ÒÐ3Ð5JÑKÔKÐKØð *Ø)ˆÔõ Øœ¨Ò.Ð.ˆŒˆ°AØ�U×(Ò(Ñ*Ô*Ñ*ñ,ô ,€E„Lð
  Ð"4Ñ4€NØ„~ð +àÐ*Ñ*ˆØÔ$ð &ð &ˆØ”nð 	?ð 	?ˆFÝ ¸Ð?Ñ?Ô?Ð?ØŒ}�sÐ#3Ñ4Ô4Ò4Ð4Ø$4°V´]Ô$C�Ô!Ø$6�Ô!Ø,¨V¬]Ô;�”Ø .�”�ð %&�Ô!Ø$%�Ô!Ø �”Ø !�”Ý ¸Ð>Ñ>Ô>Ð>Ø/Ð/°°vÑ>Ô>ˆFÔÐØ”˜qÔ!ˆØŒ~˜bÔ!ˆØ Ô+ˆÔØ-ˆÔØ”o¨¬
Ñ2°UÔ5EÑEˆŒØ%ˆŒˆð „{�;Ô 5Ò(Ð(Ø×ÒÑÔÐØ× Ò Ñ"Ô"Ð"à"Ð" 5¤;¨~Ô#>ÀÑHÔH€KØð ˜ð ¨;ð ØÐ˜G e W¨n¸kÑJÔJÐJØˆØˆ	ØÐØÐà�)˜YÐ(9Ð;MÐMÐMr"   c                 óf   — | xj         |z  c_         | j        D ]}|                     |¬¦  «         ŒdS )zPIncrease the top padding of a box.

    This also translates the children.

    rR   N)Úpadding_toprY   rr   )ÚboxÚextra_paddingr@   s      r    rn   rn   y  sF   € ð €O„O�}Ñ$€O„OØ”ð *ð *ˆØ�Š˜=ˆÑ)Ô)Ð)Ð)ð*ð *r"   c                 ó  ‡— |                       ¦   «         }|j        dk    sJ ‚d„ |j        D ¦   «         }|j        r2|j        d         j        r |j        d         }|j        d         j        }ng }t	          t          |¦  «        t          d„ |D ¦   «         ¦  «        ¦  «        }dg|z  }t          |¦  «        D ]0\  }}t          |d|j        ¦  «         |j        dk    r
|j        ||<   Œ1|j	        d         dk    r|j	        d	         \  }	}
nd}	d}|D ]¯}t          ||¦  «         |j        dk    rˆ|                     ¦   «         }||	|j        d
z
  z  z  }g }t          |||j        z   ¦  «        D ]+}||         €|                     |¦  «         Œ |||         z  }Œ,|r|t          |¦  «        z  }|D ]}|||<   Œ||j        z  }Œ°|	|d
z   z  }t          d„ |D ¦   «         ¦  «        |z   }d„ t          |¦  «        D ¦   «         }|r2|j        |k    r'|j        |z
  }|t          |¦  «        z  }|D ]}|||<   Œn
|D ]}d||<   Œ|j        t          |¦  «        z
  |z
  }|dk    r|xj        |z  c_        n|r||z  Šˆfd„|D ¦   «         }||_        dS )z„Run the fixed table layout and return a list of column widths.

    https://www.w3.org/TR/CSS21/tables.html#fixed-table-layout

    r2   c                 ó&   — g | ]}|j         D ]}|‘ŒŒS r   r½   )r   rÂ   r¼   s      r    r,   z&fixed_table_layout.<locals>.<listcomp>�  s@   € ð -ð -ð -ØØ"Ô+ð-ð -àð 	ð-ð -ð -ð -r"   r   c              3   ó$   K  — | ]}|j         V — Œd S r   )r^   rL   s     r    r!   z%fixed_table_layout.<locals>.<genexpr>•  s$   è è € Ð+UÐ+U¸T¨D¬LÐ+UÐ+UÐ+UÐ+UÐ+UÐ+Ur"   Nr   r   Úseparater   r   c              3   ó   K  — | ]}|®|V — Œ	d S r   r   )r   Úws     r    r!   z%fixed_table_layout.<locals>.<genexpr>½  s"   è è € ÐEÐE °q°}˜1°}°}°}°}ÐEÐEr"   c                 ó   — g | ]	\  }}|­|‘Œ
S r   r   )r   r©   rä   s      r    r,   z&fixed_table_layout.<locals>.<listcomp>¿  s(   € ð +ð +ð +¡4 1 aØ ! 	ð Ø ) 	 	r"   c                 ó   •— g | ]}|‰z   ‘ŒS r   r   )r   rä   Úextra_per_columns     €r    r,   z&fixed_table_layout.<locals>.<listcomp>Ó  s   ø€ ÐEÐEÐE°!˜Ð-Ñ-ÐEÐEÐEr"   )Úget_wrapped_tabler   rÉ   rY   re   r_   rd   r[   r   rC   r	   rc   r^   Úrangerl   rž   )rÝ   r£   Úall_columnsÚfirst_rowgroupÚfirst_row_cellsÚnum_columnsrž   r©   r¼   r›   r   rD   r   Úcolumns_without_widthÚjÚwidth_per_columnÚall_border_spacingÚmin_table_widthÚremaining_widthÚextra_widthrç   s                       @r    Úfixed_table_layoutrõ   „  s}  ø€ ð ×!Ò!Ñ#Ô#€EØŒ;˜&Ò Ð Ð Ð ð-ð -Ø#(Ô#6ð-ñ -ô -€Kð „~ð ˜%œ.¨Ô+Ô4ð Øœ¨Ô*ˆØ(Ô1°!Ô4Ô=ˆˆàˆÝ•c˜+Ñ&Ô&­Ð+UÐ+UÀ_Ð+UÑ+UÔ+UÑ(UÔ(UÑVÔV€Kà�F˜[Ñ(€Mõ ˜{Ñ+Ô+ð ,ð ,‰	ˆˆ6Ý˜v w°´Ñ<Ô<Ð<ØŒ<˜6Ò!Ð!Ø%œ|ˆM˜!Ñøà„{Ð$Ô%¨Ò3Ð3Ø#œkÐ*:Ô;ÑÐ˜!˜!àÐð 	
€AØð ð ˆÝ˜D %Ñ(Ô(Ð(ØŒ:˜ÒÐØ×%Ò%Ñ'Ô'ˆEØÐ%¨¬¸Ñ)9Ñ:Ñ:ˆEð %'Ð!Ý˜1˜a $¤,Ñ.Ñ/Ô/ð .ð .�Ø  Ô#Ð+Ø)×0Ò0°Ñ3Ô3Ð3Ð3à˜]¨1Ô-Ñ-�E�EØ$ð 8Ø#(­3Ð/DÑ+EÔ+EÑ#EÐ Ø.ð 8ð 8�AØ'7�M !Ñ$Ð$Ø	ˆTŒ\Ñˆˆð *¨[¸1©_Ñ=ÐÝÐEÐE mÐEÑEÔEÑEÔEØ)ñ*€Oð+ð +­9°]Ñ+CÔ+Cð +ñ +ô +Ðàð ! ¤°Ò!?Ð!?Øœ+¨Ñ7ˆØ*­SÐ1FÑ-GÔ-GÑGÐØ&ð 	0ð 	0ˆAØ/ˆM˜!ÑÐð	0ð 'ð 	!ð 	!ˆAØ ˆM˜!ÑÐð ”+¥ MÑ 2Ô 2Ñ2Ð5GÑG€KØ�aÒÐàˆŒ�{Ñ"ˆŒˆØ	ð FØ&¨Ñ4ÐØEÐEÐEÐE°}ÐEÑEÔEˆð (€EÔÐÐr"   c           	      ó`  ‡‡‡‡— |                      ¦   «         }t          | |d¬¦  «        \  }}}}}}	}
}d}|j        dk    r
||j        z  }|j        dk    r
||j        z  }|j        |j        z   }|j        |j        z   }|\  }}||z
  |z
  |z
  }|j        dk    r$||k    r||_        n(||k     r||_        n||_        n|j        |k     r||_        |s	g |_	        dS |j        |
z
  }|dd…         }|dd…         }|dd…         }|dd…         }||||f}t          t          |¦  «        ¦  «        D ]Y}||         r<t          ||         dz  |z  ||         ¦  «        ||<   ||         ||<   ||         ||<   ŒF|	|         r||         ||<   ŒZ|t          |¦  «        k     rà|d         Š|d         Š|D ]}t          |¦  «        |dz  k    r|ŠŒ |ddd…         D ]}t          |¦  «        |d	z  k    r|ŠŒ ‰‰k    r	‰|_	        dS ˆˆfd
„t          t          |¦  «        ¦  «        D ¦   «         Š|t          ‰¦  «        z
  t          ‰¦  «        z  Šˆˆˆfd„t          t          |¦  «        ¦  «        D ¦   «         |_	        dS ||_	        |t          |¦  «        z
  }t          | |||j	        |	||¦  «         dS )z‚Run the auto table layout and return a list of column widths.

    https://www.w3.org/TR/CSS21/tables.html#auto-table-layout

    F)Úouterr   r2   Néd   r   g0¸D   ð?g¡�vÿÿÿï?c                 ó2   •— g | ]}‰|         ‰|         z
  ‘ŒS r   r   )r   r©   Úlower_guessÚupper_guesss     €€r    r,   z%auto_table_layout.<locals>.<listcomp>+  s9   ø€ ð Kð Kð KØ45�˜A” ¨Q¤Ñ/ðKð Kð Kr"   c                 ó8   •— g | ]}‰|         ‰|         ‰z  z   ‘ŒS r   r   )r   r©   Úadded_widthsÚavailable_ratiorú   s     €€€r    r,   z%auto_table_layout.<locals>.<listcomp>.  s;   ø€ ð #+ð #+ð #+àð ˜A” ¨a¤°?Ñ!BÑBð#+ð #+ð #+r"   )rè   r
   rb   Úmargin_rightÚpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthr   rž   ré   r_   re   rd   Údistribute_excess_width)rE   rÝ   r)   r£   Útable_min_content_widthÚtable_max_content_widthÚcolumn_min_content_widthsÚcolumn_max_content_widthsÚcolumn_intrinsic_percentagesÚconstrainednessÚtotal_horizontal_border_spacingÚgridÚmarginsÚpaddingsÚbordersÚcb_widthr   Úavailable_widthÚassignable_widthÚmin_content_guessÚmin_content_percentage_guessÚmin_content_specified_guessÚmax_content_guessÚguessesr©   ÚguessÚexcess_widthrý   rþ   rú   rû   s                              @@@@r    Úauto_table_layoutr  Ú  sà  øøøø€ ð ×!Ò!Ñ#Ô#€Eõ /QØ	�#˜Uð/$ñ /$ô /$ñ,ÐÐ5ØÐ 9Ø! ?Ø$ dð €GØ
„˜&Ò Ð Ø�3”?Ñ"ˆØ
Ô˜6Ò!Ð!Ø�3Ô#Ñ#ˆØÔ! EÔ$7Ñ7€HØÔ%¨Ô(@Ñ@€Gà"�K€HˆaØ Ñ(¨8Ñ3°gÑ=€Oà„{�fÒÐØÐ5Ò5Ð5Ø1ˆEŒKˆKØÐ6Ò6Ð6Ø)ˆEŒKˆKà1ˆEŒKˆKàŒ;Ð0Ò0Ð0Ø1ˆEŒKàð Ø ˆÔØˆà”{Ð%DÑDÐØ1°!°!°!Ô4ÐØ#<¸Q¸Q¸QÔ#?Ð Ø";¸A¸A¸AÔ">ÐØ1°!°!°!Ô4ÐàÐ7Ø#Ð%6ð8€Gõ •3�t‘9”9ÑÔð 
Jð 
JˆØ'¨Ô*ð 		JÝ.1Ø,¨QÔ/°#Ñ5Ð8HÑHØ)¨!Ô,ñ/.ô /.Ð(¨Ñ+ð .JÈ!Ô-LÐ'¨Ñ*Ø#?ÀÔ#BÐ˜aÑ Ð Ø˜QÔð 	Jð .GÀqÔ-IÐ'¨Ñ*øà�#Ð/Ñ0Ô0Ò0Ð0ð ˜a”jˆØ˜b”kˆð ð 	ð 	ˆEÝ�5‰zŒzÐ-°Ñ:Ò:Ð:Ø#��àØ˜T˜T˜r˜T”]ð 	ð 	ˆEÝ�5‰zŒzÐ-°Ñ:Ò:Ð:Ø#��àØ˜+Ò%Ð%Ø"-ˆEÔÐÐðKð Kð Kð Kð KÝ9>½sÀ4¹y¼yÑ9IÔ9IðKñ Kô KˆLà/µ#°kÑ2BÔ2BÑBÅcÈ,ÑFWÔFWÑWˆOð#+ð #+ð #+ð #+ð #+ð #+å�s 4™yœyÑ)Ô)ð#+ñ #+ô #+ˆEÔÐÐð 0ˆÔØ'­#Ð.?Ñ*@Ô*@Ñ@ˆÝØ�T˜<¨Ô)<¸oØ(Ð*Cñ	Eô 	Eð 	Eð 	Eð 	Er"   c                 óú   — |                      ¦   «         }t          ||¦  «         |j        d         dk    r|j        dk    rt	          |¦  «         nt          | ||¦  «         |                     ¦   «         |_        dS )z;Find the width of each column and derive the wrapper width.rÚ   Úfixedr2   N)rè   r	   rC   r   rõ   r  rc   )rE   Úwrapperr)   r£   s       r    Útable_wrapper_widthr  9  s}   € à×%Ò%Ñ'Ô'€EÝ˜Ð/Ñ0Ô0Ð0à„{�>Ô" gÒ-Ð-°%´+ÀÒ2GÐ2GÝ˜7Ñ#Ô#Ð#Ð#å˜' 7Ð,<Ñ=Ô=Ð=à×&Ò&Ñ(Ô(€G„M€M€Mr"   c                 óš   — t           j        t           j        f}t          | |¬¦  «        }|�
|| j        z
  S | j        | j        z   | j        z   S )z�Return the y position of a cell baseline from the top of its border box.

    See https://www.w3.org/TR/CSS21/tables.html#height-layout

    )Úbaseline_types)r   ÚLineBoxÚTableRowBoxÚfind_in_flow_baselinerN   rÇ   rÜ   r3   )rD   r   Úresults      r    rm   rm   F  sR   € õ ”m¥UÔ%6Ð7€NÝ" 4¸ÐGÑGÔG€FØÐØ˜œÑ'Ð'ð Ô$ tÔ'7Ñ7¸$¼+ÑEÐEr"   Fc                 ó  — t          | |¦  «        r| j        | j        z   S t          | t          j        ¦  «        rdS |rt          | j        ¦  «        n| j        }|D ]-}|                     ¦   «         rt          |||¦  «        }|�|c S Œ.dS )u‚   Return the absolute y position for the first (or last) in-flow baseline.

    If thereâ€™s no in-flow baseline, return None.

    N)	Ú
isinstancerN   rJ   r   ÚTableCaptionBoxÚreversedrY   r>   r#  )rÝ   rÙ   r   rY   r@   r$  s         r    r#  r#  U  s¨   € õ �#�~Ñ&Ô&ð ØŒ~ ¤Ñ,Ð,Ý	�C�Ô.Ñ	/Ô	/ð ØˆØ)-Ð?�x˜œÑ%Ô%Ð%°3´<€HØð ð ˆØ×"Ò"Ñ$Ô$ð 	Ý*¨5°$¸ÑGÔGˆFØÐ!Ø���øð	ð r"   c                 ój  ‡‡‡— ˆˆˆfd„t          ||         |j        ¬¦  «        D ¦   «         }|r@t          ˆfd„|D ¦   «         ¦  «        }	||	z  }
|D ]}||xx         ‰|         |
z  z  cc<   ŒdS ˆˆfd„t          ||         |j        ¬¦  «        D ¦   «         }|r'|D ]"}||xx         |t          |¦  «        z  z  cc<   Œ#dS ˆˆˆfd„t          ||         |j        ¬¦  «        D ¦   «         }|r@t          ˆfd„|D ¦   «         ¦  «        }	||	z  }
|D ]}||xx         ‰|         |
z  z  cc<   ŒdS ˆˆfd„t          ||         |j        ¬¦  «        D ¦   «         }|r@t          ˆfd	„|D ¦   «         ¦  «        }||z  }
|D ]}||xx         ‰|         |
z  z  cc<   ŒdS d
„ t          ||         |j        ¬¦  «        D ¦   «         }|r'|D ]"}||xx         |t          |¦  «        z  z  cc<   Œ#dS d„ t          ||         |j        ¬¦  «        D ¦   «         }|D ]"}||xx         |t          |¦  «        z  z  cc<   Œ#dS )zwDistribute available width to columns.

    See https://www.w3.org/TR/css-tables-3/#distributing-width-to-columns

    c                 óZ   •— g | ]'\  }}‰|         s‰|         d k    r‰|         d k    ¯%|‘Œ(S ©r   r   ©r   r©   r   r	  r  r
  s      €€€r    r,   z+distribute_excess_width.<locals>.<listcomp>r  sX   ø€ ð *ð *ð *Ùˆa�Ø˜qÔ!ð*ð 	% QÔ'¨1Ò,Ð,Ø! !Ô$ qÒ(Ð(ð 	
ð 	)Ð(Ð(r"   r-   c              3   ó(   •K  — | ]}‰|         V — Œd S r   r   ©r   r©   r  s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>x  ó)   øè è € Ð$SÐ$SÀaÐ%>¸qÔ%AÐ$SÐ$SÐ$SÐ$SÐ$SÐ$Sr"   Nc                 óB   •— g | ]\  }}‰|         s‰|         d k    ¯|‘ŒS r+  r   )r   r©   r   r	  r
  s      €€r    r,   z+distribute_excess_width.<locals>.<listcomp>  sH   ø€ ð Lð Lð LÙˆa�Ø˜qÔ!ðLà&BÀ1Ô&EÈÒ&JÐ&Jð 	
Ø&JÐ&JÐ&Jr"   c                 óZ   •— g | ]'\  }}‰|         r‰|         d k    r‰|         d k    ¯%|‘Œ(S r+  r   r,  s      €€€r    r,   z+distribute_excess_width.<locals>.<listcomp>ˆ  sX   ø€ ð *ð *ð *Ùˆa�Ø˜1Ôð*ð 	% QÔ'¨1Ò,Ð,Ø! !Ô$ qÒ(Ð(ð 	
ð 	)Ð(Ð(r"   c              3   ó(   •K  — | ]}‰|         V — Œd S r   r   r.  s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>Ž  r/  r"   c                 óJ   •— g | ]\  }}‰|         d k    ¯‰|         d k    ¯|‘Œ S r+  r   )r   r©   r   r	  r  s      €€r    r,   z+distribute_excess_width.<locals>.<listcomp>•  sK   ø€ ð Uð Uð UÙˆa�Ø'¨Ô*¨QÒ.Ð.Ð3LÈQÔ3OÐRSÒ3SÐ3Sð 	
Ø3SÐ3SÐ3Sr"   c              3   ó(   •K  — | ]}‰|         V — Œd S r   r   )r   r©   r	  s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>™  s:   øè è € ð (>ð (>Ø01Ð(¨Ô+ð(>ð (>ð (>ð (>ð (>ð (>r"   c                 ó   — g | ]	\  }}|¯|‘Œ
S r   r   )r   r©   r¼   s      r    r,   z+distribute_excess_width.<locals>.<listcomp>¡  s2   € ð ð ð Ùˆa�ØðØ	ðð ð r"   c                 ó   — g | ]\  }}|‘ŒS r   r   )r   r©   r   s      r    r,   z+distribute_excess_width.<locals>.<listcomp>ª  s   € ÐUÐUÐU‘T�Q˜ˆqÐUÐUÐUr"   )r[   r.   rd   r_   )rE   r  r  rž   r
  r	  r  Úcolumn_sliceÚcolumnsÚsum_max_content_widthsÚratior©   Úsum_intrinsic_percentagess       ```      r    r  r  i  sÓ  øøø€ ð*ð *ð *ð *ð *ð *Ý  \Ô 2¸,Ô:LÐMÑMÔMð*ñ *ô *€Gð
 ð Ý!$Ð$SÐ$SÐ$SÐ$SÈ7Ð$SÑ$SÔ$SÑ!SÔ!SÐØÐ5Ñ5ˆØð 	Eð 	EˆAØ˜!ÐÐÔÐ 9¸!Ô <¸uÑ DÑDÐÐÑÐØˆðLð Lð Lð Lð LÝ  \Ô 2¸,Ô:LÐMÑMÔMðLñ Lô L€Gð ð Øð 	<ð 	<ˆAØ˜!ÐÐÔ ­s°7©|¬|Ñ ;Ñ;ÐÐÑÐØˆð*ð *ð *ð *ð *ð *Ý  \Ô 2¸,Ô:LÐMÑMÔMð*ñ *ô *€Gð
 ð Ý!$Ð$SÐ$SÐ$SÐ$SÈ7Ð$SÑ$SÔ$SÑ!SÔ!SÐØÐ5Ñ5ˆØð 	Eð 	EˆAØ˜!ÐÐÔÐ 9¸!Ô <¸uÑ DÑDÐÐÑÐØˆðUð Uð Uð Uð UÝ  \Ô 2¸,Ô:LÐMÑMÔMðUñ Uô U€Gð ð Ý$'ð (>ð (>ð (>ð (>Ø5<ð(>ñ (>ô (>ñ %>ô %>Ð!àÐ8Ñ8ˆØð 	Hð 	HˆAØ˜!ÐÐÔÐ <¸QÔ ?À%Ñ GÑGÐÐÑÐØˆðð Ý$ T¨,Ô%7¸|Ô?QÐRÑRÔRðñ ô €Gð ð Øð 	<ð 	<ˆAØ˜!ÐÐÔ ­s°7©|¬|Ñ ;Ñ;ÐÐÑÐØˆð VÐU�Y t¨LÔ'9ÀÔASÐTÑTÔTÐUÑUÔU€GØð 8ð 8ˆØ�aÐÐÔ˜L­3¨w©<¬<Ñ7Ñ7ÐÐÑÐð8ð 8r"   Útransparentc           
      ó’  ‡ ‡‡‡‡‡‡ ‡!‡"— ‰r|sg g fS t          g d¢¦  «        }d„ t          |¦  «        D ¦   «         Š dddœŠdd‰ d         fddt          ffŠ"ˆˆ"fd„t          |¦  «        D ¦   «         Š!ˆˆ"fd	„t          |d
z   ¦  «        D ¦   «         Šˆˆ fd„Šˆˆˆ ˆ!fd„}d
d‰ d         fddt          ff}d}‰ j        D ]ý}|j        D ]ó}|j        D ]ä}	|	j        |	j        |	j        }}}
‰ j        d         dk    r*t          |
d
z   |
|z   ¦  «        }t          |
|
|z   ¦  «        }n4t          d|
z
  d|
z
  |z
  d¦  «        }t          d|
z
  d|
z
  |z
  d¦  «        }|D ]#}t          |||z   ¦  «        D ]}|‰!|         |<   ŒŒ$|D ]&}t          |d
z   ||z   ¦  «        D ]}|‰|         |<   ŒŒ' ||	|
|||¦  «         Œå|d
z  }ŒôŒþd}‰ j        D ] }|j        D ]} ||d|‰d
¦  «         |d
z  }ŒŒ!d}‰ j        D ]*}t          |j        ¦  «        } ||d|‰|¦  «         ||z  }Œ+‰ j
        D ] }|j        D ]} |||j        dd
|¦  «         ŒŒ!‰ j
        D ]} |||j        d|j        |¦  «         Œ |‰ dd‰|¦  «         d„ Šˆfd„}ˆ!fd„}ˆfd„}d}‰ j        D �]+} ||¦  «         |j        D �]} ||¦  «         |j        D ]ù}	|	j        |}}|	j        |	j        }}‰ j        d         dk    rG |||||z   ¦  «        } ||||z   ||z   ¦  «        } |||||z   ¦  «        } |||z   |||z   ¦  «        }nT || |z
  || pd¦  «        } || |z
  ||z   | pd¦  «        } |d|z
  |z
  |||z   ¦  «        } |d|z
  |||z   ¦  «        } ‰|	d|¦  «          ‰|	d|¦  «          ‰|	d|¦  «          ‰|	d|¦  «         Œú|d
z  }�Œ�Œ-‰ j
        D ]"} ||¦  «         |j        D ]} ||¦  «         ŒŒ# ‰‰ d |dd‰¦  «        ¦  «          ‰‰ d |d|‰¦  «        ¦  «          ‰‰ d |ddd
¦  «        ¦  «          ‰‰ d |‰dd
¦  «        ¦  «         ‰!‰fS )a  Resolve border conflicts for a table in the collapsing border model.

    Take a :class:`TableBox`; set appropriate border widths on the table,
    column group, column, row group, row, and cell boxes; and return
    a data structure for the resolved collapsed border grid.

    )
ÚhiddenÚdoubleÚsolidÚdashedÚdottedÚridgeÚoutsetÚgrooveÚinsetÚnonec                 ó   — i | ]\  }}||“Œ	S r   r   )r   ÚscorerC   s      r    ú
<dictcomp>z*collapse_table_borders.<locals>.<dictcomp>Á  s   € ÐGÐGÐG¡\ U¨E�E˜5ÐGÐGÐGr"   rC  rE  )rF  rD  r   rG  c                 ó"   •— g | ]}‰g‰d z   z  ‘ŒS )r   r   ©r   r   Ú
grid_widthÚweak_null_borders     €€r    r,   z*collapse_table_borders.<locals>.<listcomp>Æ  s9   ø€ ð Kð Kð KØ23Ð	Ð˜j¨1™nÑ-ðKð Kð Kr"   c                 ó   •— g | ]}‰g‰z  ‘Œ	S r   r   rL  s     €€r    r,   z*collapse_table_borders.<locals>.<listcomp>È  s5   ø€ ð Ið Ið IØ,-Ð	Ð˜ZÑ'ðIð Ið Ir"   r   c                 ó  •— ddl m} |d|› d�         }|d|› d�         } ||d|› d�¦  «        }|dk    rdnd	|‰|         f}	‰                     ||¦  «        }| |         |         \  }
}|
|	k     r|	|||ff| |         |<   d S d S )
Nr   )Ú	get_colorÚborder_Ú_styleÚ_widthÚ_colorr>  r   r   )Ú
draw.colorrQ  Úget)Úborder_gridÚ	box_styleÚsider]   Úgrid_yrQ  rC   r   ÚcolorrI  Úprevious_scorer   Ú	style_mapÚstyle_scoress               €€r    Úset_one_borderz.collapse_table_borders.<locals>.set_one_borderË  sÚ   ø€ Ø*Ð*Ð*Ð*Ð*Ð*àÐ0 DÐ0Ð0Ð0Ô1ˆØÐ0 DÐ0Ð0Ð0Ô1ˆØ�	˜)Ð%;¨tÐ%;Ð%;Ð%;Ñ<Ô<ˆð  Ò(Ð(�!�!¨a°%¸ÀeÔ9LÐMˆà—’˜e UÑ+Ô+ˆØ'¨Ô/°Ô7Ñˆ˜à˜EÒ!Ð!Ø+0°5¸%ÀÐ2GÐ*HˆK˜Ô Ñ'Ð'Ð'ð "Ð!r"   c           	      ó  •— | j         }‰
j         d         dk    rpt          |||z   ¦  «        D ]#} ‰	‰|d||¦  «          ‰	‰|d||z   |¦  «         Œ$t          |||z   ¦  «        D ]#} ‰	‰|d||¦  «          ‰	‰|d|||z   ¦  «         Œ$d S t          |||z   ¦  «        D ])} ‰	‰|dd|z
  |z
  |¦  «          ‰	‰|dd|z
  |¦  «         Œ*t          d|z
  d|z
  |z
  d¦  «        D ]#} ‰	‰|d||¦  «          ‰	‰|d|||z   ¦  «         Œ$d S )Nr   r   ÚleftÚrightrG   rI   r   )rC   ré   )rÝ   ÚxÚyrä   ÚhrC   ÚyyÚxxrÓ   r`  r£   Úvertical_borderss           €€€€r    Úset_bordersz+collapse_table_borders.<locals>.set_bordersÛ  s¤  ø€ Ø”	ˆð Œ;�{Ô# uÒ,Ð,Ý˜A˜q 1™u‘o”oð Lð L�Ø�Ð/°¸ÀÀ2ÑFÔFÐFØ�Ð/°¸ÀÀQÁÈÑKÔKÐKÐKÝ˜A˜q 1™u‘o”oð Oð O�Ø�Ð1°5¸%ÀÀQÑGÔGÐGØ�Ð1°5¸(ÀBÈÈAÉÑNÔNÐNÐNðOð Oõ ˜A˜q 1™u‘o”oð Mð M�Ø�Ð/°¸ÀÀQÁÈÁ
ÈBÑOÔOÐOØ�Ð/°¸ÀÀaÁÈÑLÔLÐLÐLÝ˜B ™F B¨¡F¨Q¡J°Ñ3Ô3ð Oð O�Ø�Ð1°5¸%ÀÀQÑGÔGÐGØ�Ð1°5¸(ÀBÈÈAÉÑNÔNÐNÐNðOð Or"   r>  r   r   éþÿÿÿr   c                 ó:   — d|› d�}t          | ||dz  ¦  «         d S )NrR  rT  r   )Úsetattr)rÝ   rZ  Útwice_widthÚprops       r    Úset_border_used_widthz5collapse_table_borders.<locals>.set_border_used_width'  s.   € Ø%˜Ð%Ð%Ð%ˆÝ��T˜;¨™?Ñ+Ô+Ð+Ð+Ð+r"   c                 óp   •—  ‰| dd¦  «          ‰| dd¦  «          ‰| dd¦  «          ‰| dd¦  «         d S )NrG   r   rc  rI   rb  r   )rÝ   rp  s    €r    Úremove_bordersz.collapse_table_borders.<locals>.remove_borders+  s]   ø€ ØÐ˜c 5¨!Ñ,Ô,Ð,ØÐ˜c 7¨AÑ.Ô.Ð.ØÐ˜c 8¨QÑ/Ô/Ð/ØÐ˜c 6¨1Ñ-Ô-Ð-Ð-Ð-r"   c                 óL   •‡ — t          ˆ fd„‰||…         D ¦   «         ¦  «        S )Nc              3   ó@   •K  — | ]}|‰         d          d          V — ŒdS )r   Nr   )r   Úgrid_rowrd  s     €r    r!   zEcollapse_table_borders.<locals>.max_vertical_width.<locals>.<genexpr>2  s0   øè è € ÐMÐM¨�8˜A”;˜q”> !Ô$ÐMÐMÐMÐMÐMÐMr"   ©re   )rd  Úy1Úy2ri  s   `  €r    Úmax_vertical_widthz2collapse_table_borders.<locals>.max_vertical_width1  s1   øø€ ÝÐMÐMÐMÐMÐ5EÀbÈÀeÔ5LÐMÑMÔMÑMÔMÐMr"   c                 óR   •— t          d„ ‰|         | |…         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]\  }\  }}}|V — Œd S r   r   r   s      r    r!   zGcollapse_table_borders.<locals>.max_horizontal_width.<locals>.<genexpr>5  s-   è è € ÐNÐNÑ-˜Q¡  E¨1�5ÐNÐNÐNÐNÐNÐNr"   rv  )Úx1re  Úx2rÓ   s      €r    Úmax_horizontal_widthz4collapse_table_borders.<locals>.max_horizontal_width4  s/   ø€ ÝÐNÐNÐ1CÀAÔ1FÀrÈ"ÀuÔ1MÐNÑNÔNÑNÔNÐNr"   NrG   rI   rb  rc  )r(  r[   ÚTRANSPARENTré   rY   r]   r^   ro   rC   r_   rÉ   Úspan)#r£   rM  Úgrid_heightÚstylesrj  Ústrong_null_borderr[  r»   r+   rD   r]   r^   ro   Úvertical_x_rangeÚhorizontal_x_rangerh  rg  rÂ   r¼   rr  ry  r~  rd  re  rG   rI   rb  rc  rÓ   rp  r`  r^  r_  ri  rN  s#   ``                          @@@@@@@r    Úcollapse_table_bordersr†  ²  s—  øøøøøøøøø€ ð ð ˜;ð à�2ˆvˆåð #ð #ð #ñ $ô $€Fð HÐGµY¸vÑ5FÔ5FÐGÑGÔG€LØ!¨XÐ6Ð6€IØ˜A˜|¨FÔ3Ð4°v¸qÅ+Ð6NÐOÐðKð Kð Kð Kð KÝ7<¸[Ñ7IÔ7IðKñ Kô KÐðIð Ið Ið Ið IÝ16°{ÀQ±Ñ1GÔ1GðIñ Iô IÐðIð Ið Ið Ið Ið Ið Oð Oð Oð Oð Oð Oð Oð Oð. ˜a ¨hÔ!7Ð8¸8ÀQÍÐ:TÐUÐØ€FØ”^ð ð ˆ	ØÔ%ð 	ð 	ˆCØœð Dð D�à+/¬;¸¼ÀdÄl ˜�Ø”;˜{Ô+¨uÒ4Ð4Ý',¨V°a©Z¸À'Ñ9IÑ'JÔ'JÐ$Ý).¨v°vÀÑ7GÑ)HÔ)HÐ&Ð&å',¨R°&©[¸"¸v¹+ÈÑ:OÐQSÑ'TÔ'TÐ$Ý).¨r°F©{¸BÀ¹KÈ'Ñ<QÐSUÑ)VÔ)VÐ&Ø*ð Fð F�BÝ# F¨F°WÑ,<Ñ=Ô=ð Fð F˜Ø3EÐ(¨Ô,¨RÑ0Ð0ðFà,ð Hð H�BÝ# F¨Q¡J°¸Ñ0@ÑAÔAð Hð H˜Ø5GÐ*¨2Ô.¨rÑ2Ð2ðHð �˜D &¨&°'¸7ÑCÔCÐCÐCØ�a‰KˆFˆFð%	ð* €FØ”^ð ð ˆ	ØÔ%ð 	ð 	ˆCØˆK˜˜Q ¨
°AÑ6Ô6Ð6Ø�a‰KˆFˆFð	ð
 €FØ”^ð ð ˆ	Ý�iÔ(Ñ)Ô)ˆØˆ�I˜q &¨*°gÑ>Ô>Ð>Ø�'Ñˆˆð Ô+ð Bð BˆØ"Ô+ð 	Bð 	BˆFØˆK˜ ¤¨q°!°[ÑAÔAÐAÐAð	Bð Ô+ð Rð RˆØˆØ˜,Ô-¨q°,Ô2CÀ[ñ	Rô 	Rð 	Rð 	Rð €K��q˜!˜Z¨Ñ5Ô5Ð5ð
,ð ,ð ,ð.ð .ð .ð .ð .ðNð Nð Nð Nð NðOð Oð Oð Oð Oð €FØ”^ð ñ ˆ	Øˆ�yÑ!Ô!Ð!ØÔ%ð 	ñ 	ˆCØˆN˜3ÑÔÐØœð <ð <�Ø”{ F�1�Ø#'¤<°´˜�Ø”;˜{Ô+¨uÒ4Ð4Ø.Ð.¨q°!°Q¸±[ÑAÔA�CØ1Ð1°!°Q¸±[À!ÀgÁ+ÑNÔN�FØ-Ð-¨a°°A¸±KÑ@Ô@�DØ.Ð.¨q°7©{¸A¸qÀ7¹{ÑKÔK�E�Eà.Ð.°¨x¸!©|¸QÀÀÀ
ÀdÑKÔK�CØ1Ð1°7°(¸Q±,ÀÀGÁÈaÈRÈZÐSWÑXÔX�FØ-Ð-¨b°7©l¸QÑ.>ÀÀ1ÀwÁ;ÑOÔO�DØ.Ð.¨r°A©v°q¸!¸g¹+ÑFÔF�EØ%Ð% d¨E°3Ñ7Ô7Ð7Ø%Ð% d¨H°fÑ=Ô=Ð=Ø%Ð% d¨F°DÑ9Ô9Ð9Ø%Ð% d¨G°UÑ;Ô;Ð;Ð;Ø�a‰KˆF‰Fñ'	ð* Ô+ð #ð #ˆØˆ�|Ñ$Ô$Ð$Ø"Ô+ð 	#ð 	#ˆFØˆN˜6Ñ"Ô"Ð"Ð"ð	#ð Ð˜% Ð(<Ð(<¸QÀÀ:Ñ(NÔ(NÑOÔOÐOØÐØˆxÐ-Ð-¨a°¸jÑIÔIñKô Kð Kð Ð˜% Ð);Ð);¸A¸qÀ!Ñ)DÔ)DÑEÔEÐEØÐ˜% Ð*<Ð*<¸ZÈÈAÑ*NÔ*NÑOÔOÐOàÐ/Ð/Ð/r"   )Ú__doc__Úmathr   Útinycss2.color5Útinycss2Úformatting_structurer   Úloggerr   Úpercentr   r	   Ú	preferredr
   rÚ   rn   rõ   r  r  rm   r!  r#  Úslicer  Úcolor5Úparse_colorr  r†  r   r"   r    ú<module>r’     sc  ðØ 1Ð 1à Ð Ð Ð Ð Ð à Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ði	Nð i	Nð i	NðX*ð *ð *ðS(ð S(ð S(ðl\Eð \Eð \Eð~
)ð 
)ð 
)ðFð Fð Fð %*¸5¼=Ð:Jð ð ð ð ð, */¨¨q°$©¬ðC8ð C8ð C8ð C8ðL Œo×)Ò)¨-Ñ8Ô8€ðl0ð l0ð l0ð l0ð l0r"   