§
    ¥”j^¿  ã                   ó<  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZmZ 	 	 	 d&d„Zd„ Z d„ Z!ed„ ¦   «         Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d#„ Z/d$„ Z0d%„ Z1dS )'zCPage breaking and layout for block-level and block-container boxes.é    )Úinfé   )Úboxesé   )ÚAbsolutePlaceholderÚabsolute_layout)Úcolumns_layout)Úflex_layout)Úavoid_collisionsÚfloat_layoutÚget_clearance)Úgrid_layout)Úiter_line_boxes)Úhandle_min_max_width)Ú
percentageÚresolve_percentagesÚresolve_position_percentages)Úblock_replaced_box_layout)Útable_layoutÚtable_wrapper_widthTNFc                 óH  — |€g n|}|€g n|}|€g n|}t          |t          j        ¦  «        sÜt          ||¦  «         |j        dk    rd|_        |j        dk    rd|_        | j        dk    rE|rC|j        p|}|r8|j        d         dk    rd|_        n|j        d         dk    r| j	        sd|_        t          g |¢|j        ‘¦  «        }t          | ||¦  «        |_        |j        �#|j        |z   |j        z   }||j        z
  |_        g }t          | |||||||||	|
||¦  «        S )z Lay out the block-level ``box``.NÚautor   r   Úmargin_breakÚdiscard)Ú
isinstancer   ÚTableBoxr   Ú
margin_topÚmargin_bottomÚcurrent_pageÚis_for_root_elementÚstyleÚforced_breakÚcollapse_marginr   Ú	clearanceÚ
position_yÚblock_level_layout_switch)ÚcontextÚboxÚbottom_spaceÚ
skip_stackÚcontaining_blockÚpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styler   Ú	max_linesÚcollapse_with_pageÚcollapsed_marginÚtop_border_edges                   úf/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/block.pyÚblock_level_layoutr7      s…  € ð
 *Ð1�R�R°~€NØ#Ð+�"�"°€KØ/Ð7˜˜Ð=NÐå�c�5œ>Ñ*Ô*ð #Ý˜CÐ!1Ñ2Ô2Ð2àŒ>˜VÒ#Ð#ØˆCŒNØÔ Ò&Ð&Ø !ˆCÔàÔ !Ò#Ð#¨Ð#ð !Ô4ð "Ø!ð ð "ð +Ø”9˜^Ô,°	Ò9Ð9Ø%&�C”N�NØ”Y˜~Ô.°&Ò8Ð8Ø"Ô/ð +Ø)*˜œå*Ð+OÐ->Ð+OÀÄÐ+OÑPÔPÐÝ% g¨sÐ4DÑEÔEˆŒØŒ=Ð$Ø!œnÐ/?Ñ?À#Ä-ÑOˆOØ,¨s¬~Ñ=ˆCŒNØ "Ðå$Ø��l JÐ0@Ø�~ {Ð4EØÐ,¨g°yñBô Bð Bó    c                 óD  — t          |t          j        ¦  «        rt          | |||||||¦  «        }nét          |t          j        ¦  «        rt          | |||||||||	|
||¦  «        S t          |t          j        ¦  «        rt          | ||¦  «        }nˆt          |t          j        ¦  «        rt          | ||||||||¦	  «	        }nVt          |t          j
        ¦  «        rt          | |||||||¦  «        }n%t          dt          |¦  «        j        › d�¦  «        ‚g |¢d‘R S )z;Call the layout function corresponding to the ``box`` type.zLayout for z not handled yetN)r   r   r   r   ÚBlockBoxÚblock_box_layoutÚBlockReplacedBoxr   ÚFlexBoxr
   ÚGridBoxr   Ú	TypeErrorÚtypeÚ__name__)r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r2   Úresults                 r6   r&   r&   A   sb  € õ
 �#•u”~Ñ&Ô&ð LÝØ�S˜,¨
Ð4DØ˜>¨;ñ8ô 8ˆˆõ 
�C�œÑ	(Ô	(ð LÝØ�S˜,¨
Ð4DØ˜>¨;Ð8IØÐ 0°'¸9ñFô Fð 	Fõ 
�C�Ô/Ñ	0Ô	0ð LÝ*¨7°CÐ9IÑJÔJˆˆÝ	�C�œÑ	'Ô	'ð 	LÝØ�S˜,¨
Ð4DØ˜>¨;¸ñAô Aˆˆõ 
�C�œÑ	'Ô	'ð LÝØ�S˜,¨
Ð4DØ˜>¨;ñ8ô 8ˆˆõ ÐJ¥d¨3¡i¤iÔ&8ÐJÐJÐJÑKÔKÐKØˆVˆ?�Tˆ?ˆ?Ðr8   c                 óÂ  — |j         d         dk    s|j         d         dk    r|t          | |||||||||	|
¦  «        }|d         }|€R|d         }|j        |j        z   |j        z   }|r1t          | |g||¦  «         ||z  }t          | |||||||||	|
¦  «        }g |¢d‘R S |j        rt          | ||j        |j	        f¦  «         t          ||¦  «         t          | ||||||||	|
||¦  «        }|d         x}r|j        s|j        r|S |j        s|                     ¦   «         r=t          | ||d¬¦  «        \  }}}|                     ||j        z
  ||j        z
  ¦  «         |S )	zLay out the block ``box``.Úcolumn_widthr   Úcolumn_countr   Nr   F)Úouter)r!   r	   r   Úpadding_bottomÚborder_bottom_widthÚremove_placeholdersÚis_table_wrapperr   ÚwidthÚheightÚblock_level_widthÚblock_container_layoutÚ	is_columnÚis_flex_itemÚestablishes_formatting_contextr   Ú	translateÚ
position_xr%   )r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r2   rB   Ú	resume_atÚnew_boxÚcolumns_bottom_spacerS   r%   Ú_s                       r6   r;   r;   ^   s  € ð
 	Œ	�.Ô! VÒ+Ð+ØŒI�nÔ%¨Ò/Ð/ÝØ�S˜,¨
Ð4DÀmØ˜KÐ):Ð<NØñô ˆð ˜1”Iˆ	àÐØ˜Q”iˆGàÔ%¨Ô(>Ñ>ØÔ+ñ,ð !ð $ð :Ý#Ø˜g˜Y¨¸ñEô Eð EàÐ 4Ñ4�Ý'Ø˜S ,°
Ð<LØ! >°;Ð@QØ&Ð(8ñ:ô :�ð �ˆ˜ˆˆÐØ	Ô	ð MÝØ�SÐ+Ô1Ð3CÔ3JÐKñ	Mô 	Mð 	Må�cÐ+Ñ,Ô,Ð,å#Ø��l J°¸~ØÐ&Ð(:Ð<LÈgØñô €Fð ˜a”yÐ ˆGð  WÔ%6ð ¸'Ô:Nð ØˆØÔð N 7×#IÒ#IÑ#KÔ#Kð Nõ %5Ø�WÐ.°eð%=ñ %=ô %=Ñ!ˆ
�J à×ÒØ˜Ô+Ñ+¨Z¸'Ô:LÑ-Lñ	Nô 	Nð 	Nà€Mr8   c                 ó&  — t          |t          j        ¦  «        r|j        }|j        d         }n
|d         }d}| j        }| j        }| j        }| j        }| j	        }| j
        }	| j        }
||z   |z   |	z   }| j        dk    r?||
z   }|dk    r||z  }|dk    r||z  }||k    r|dk    r	dx}| _        |dk    r	dx}| _        |
dk    r5|dk    r/|dk    r)|dk    r#| j        s| xj        ||z
  |
z
  |z
  |z
  z  c_        |
dk    r0|dk    r	dx}| _        |dk    r	dx}| _        |||z   |z   z
  x}
| _        ||z
  |
z
  }||cxk    rdk    rn n|dz  | _        |dz  | _        dS |dk    r|dk    r||z
  | _        dS |dk    r|dk    r||z
  | _        dS dS dS )zSet the ``box`` width.Ú	directionr   Últrr   Úrtlr   N)r   r   ÚBoxrK   r!   Úmargin_leftÚmargin_rightÚpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthrO   rS   )r(   r+   Úcb_widthrY   Úmargin_lÚmargin_rÚ	padding_lÚ	padding_rÚborder_lÚborder_rrK   Úpaddings_plus_bordersÚtotalÚ
margin_sums                 r6   rM   rM   �   se  € õ Ð"¥E¤IÑ.Ô.ð Ø#Ô)ˆØ$Ô*¨;Ô7ˆ	ˆ	à# AÔ&ˆàˆ	ð
 Œ€HØÔ€HØÔ €IØÔ!€IØÔ$€HØÔ%€HØŒI€Eð &¨	Ñ1°HÑ<¸xÑGÐØ
„y�FÒÐØ%¨Ñ-ˆØ�vÒÐØ�XÑˆEØ�vÒÐØ�XÑˆEØ�8ÒÐØ˜6Ò!Ð!Ø-.Ð.�˜3œ?Ø˜6Ò!Ð!Ø./Ð/�˜3Ô+Ø�‚€˜8 vÒ-Ð-°(¸fÒ2DÐ2Dà˜ÒÐ c¤mÐØˆNŒNØÐ0Ñ0°5Ñ8¸8ÑCÀhÑNñPˆNŒNð �‚€Ø�vÒÐØ)*Ð*ˆH�s”Ø�vÒÐØ*+Ð+ˆH�sÔ'Ø$Ø! HÑ,¨xÑ7ñ9ð 	9ˆ�”	àÐ1Ñ1°EÑ9€JØ�8Ð%Ð%Ò%Ð%˜vÒ%Ð%Ð%Ð%Ð%Ø$ q™.ˆŒØ%¨™>ˆÔÐÐØ	�VÒ	Ð	 ¨FÒ 2Ð 2Ø$ xÑ/ˆŒˆˆØ	�VÒ	Ð	 ¨FÒ 2Ð 2Ø%¨Ñ0ˆÔÐÐð 
Ð	Ð 2Ð 2r8   c                 ó  — | j         d         dk    r°t          | |¦  «         | j        dk    r-| j        dk    r"| j         d         dk    r| j        }n2| j         }n)| j        dk    r| j        }n| j        dk    r	| j         }nd}| j        dk    r| j        }n| j        dk    r	| j         }nd}|                      ||¦  «         t          | t          j	        t          j
        f¦  «        r| j        D ]}t          ||¦  «         ŒdS dS )z5Translate the ``box`` if it is relatively positioned.ÚpositionÚrelativer   rY   rZ   r   N)r!   r   ÚleftÚrightÚtopÚbottomrR   r   r   Ú	InlineBoxÚLineBoxÚchildrenÚrelative_positioning)r(   r+   Útranslate_xÚtranslate_yÚchilds        r6   rw   rw   Ï   s2  € à
„y�Ô 
Ò*Ð*Ý$ SÐ*:Ñ;Ô;Ð;àŒ8�vÒÐ #¤)¨vÒ"5Ð"5ØŒy˜Ô%¨Ò.Ð.Ø!œh��à"œy˜j��ØŒX˜ÒÐØœ(ˆKˆKØŒY˜&Ò Ð Øœ9˜*ˆKˆKàˆKàŒ7�fÒÐØœ'ˆKˆKØŒZ˜6Ò!Ð!Øœ:˜+ˆKˆKàˆKà�Š�k ;Ñ/Ô/Ð/å�#�œ­¬Ð7Ñ8Ô8ð :Ø”\ð 	:ð 	:ˆEÝ  Ð(8Ñ9Ô9Ð9Ð9ð:ð :ð	:ð 	:r8   c
           	      óÊ  — d}
d }d }d }|xj         t          |¦  «        z  c_         |                     ¦   «         rlt          |¦  «        x}}||_        |                     |¦  «         |j        d         dk    r|                     |¦  «         �nP|                     |¦  «         �n9|                     ¦   «         rÑt          | |||||	d ¬¦  «        \  }}|  	                    |	|j         |j
        z   ¦  «        }|r| p| p|                     ¦   «         }|r||_        |                     |¦  «         n®t          |¦  «        }t          ||¦  «        }|d i}d }d}
|r0t          || ¦  «        r t          | |||¦  «        }|r|\  |d d …<   }d }nT|                     ¦   «         r@|j        d         d         }| j        }| j        |         |                              |¦  «         |
|||fS )NFrn   Úabsolute©r*   Tr   )r%   r#   Úis_absolutely_positionedr   ÚindexÚappendr!   Ú
is_floatedr   Úoverflows_pagerL   Úis_monolithicÚfind_last_in_flow_childÚblock_level_page_breakÚavoid_page_breakÚfind_earlier_page_breakÚ
is_runningr   Úrunning_elements)r'   r(   r   rz   Únew_childrenr,   r-   r.   r/   r)   ÚstoprT   Ú	new_childÚout_of_flow_resume_atÚplaceholderÚpage_overflowÚ	add_childÚlast_in_flow_childÚ
page_breakrB   Úrunning_nameÚpages                         r6   Ú_out_of_flow_layoutr•   î   si  € ð €DØ€IØ€IØ Ðð
 
ÐÔ�Ð(9Ñ:Ô:Ñ:ÐÔð ×%Ò%Ñ'Ô'ð /CÝ"5°eÑ"<Ô"<Ð<ˆ	�KØ!ˆÔØ×Ò˜KÑ(Ô(Ð(ØŒ;�zÔ" jÒ0Ð0Ø×!Ò! +Ñ.Ô.Ð.Ñ.à×Ò˜{Ñ+Ô+Ð+Ñ+ð 
×	Ò	Ñ	Ô	ð %CÝ+7Ø�U˜C °¸lØð,ñ ,ô ,Ñ(ˆ	Ð(ð
  ×.Ò.Ø˜)Ô.°Ô1AÑAñCô Cˆð Ð/ <Ð/ð  ØÐð à×ÒÑÔð 	ð ð 	%à#ˆIŒOØ×Ò 	Ñ*Ô*Ð*Ð*õ "9¸Ñ!FÔ!FÐÝ/Ð0BÀEÑJÔJˆJØ ˜ˆIØ$(Ð!ØˆDØð %Õ 0°¸WÑ EÔ Eð %å0Ø˜\¨>¸;ñHô H�àð %à17Ñ.�L   ‘O YØ $�Iøð 
×	Ò	Ñ	Ô	ð CØ”{ :Ô.¨qÔ1ˆØÔ#ˆØÔ  Ô.¨tÔ4×;Ò;¸EÑBÔBÐBà�˜IÐ'<Ð<Ð<r8   c                 ón  — t          |¦  «        |j        d         z
  }|dk     r|st          | |j        |	|
¦  «         dd|fS ||k    r|st          | |j        |	|
¦  «         dd|fS |r1||k    r+|| d…         D ]}t          | |j        |	|
¦  «         Œ|| d…= t          | |j        |	|
¦  «         dd||ifS )z[Break line where allowed by orphans and widows.

    Return (abort, stop, resume_at).

    Úorphansr   TFN)Úlenr!   rI   rv   )r'   r(   ÚlinerŠ   Úneededr,   r   r*   rT   r-   r.   Úover_orphansrz   s                r6   Ú_break_linerœ   0  s  € õ �|Ñ$Ô$ s¤y°Ô';Ñ;€LØ�aÒÐ Ðõ 	˜G T¤]°NÀKÑPÔPÐPØ�U˜IÐ%Ð%ð �ÒÐ ]Ðå˜G T¤]°NÀKÑPÔPÐPØ�U˜IÐ%Ð%Øð #�&˜LÒ(Ð(à! 6 ' ( (Ô+ð 	Fð 	FˆEÝØ˜œ¨¸ñFô Fð Fð Fà˜&˜˜˜Ð"å˜ ¤°ÀÑLÔLÐLØ�$˜ 
Ð+Ð+Ð+r8   c                 óh  ‡ — dx}}d }g }t          |j        ¦  «        dk    s
J d¦   «         ‚|r|
t          |¦  «        z  }
|}t          ‰ ||
|	||||||¦
  «
        }t	          |¦  «        D �]0\  }\  }}|�&|dk    r|j        d         |d         _         �n|dz  }||_        |j        |j	        z   }||d u z  }|r|j
        |j        z   }nd}|s| o‰                      |	||z   ¦  «        }|�rIdx}}|j        d         dz
  }|D ]}|dz  }|dk    r nŒt          |¦  «        dz   |j        d	         k     rd}n|dk    rd}t          |¦  «        |j        d	         k     rd}n|dk    rd}t          d|¦  «        }‰ j         o|o| }d} |rf‰ j        r_‰                      ‰ j        d         ¦  «         | dz  } ‰                      |	||z   ¦  «        s|                     |¦  «         d}n&|r‰ j        °_t%          ‰ ||||||||||¦  «        \  }}}| d
k    r!‰ j        d|  dz
  d…         }!|!‰ j        |  d …<    �nf|rC‰                      |	|¦  «        r-||j        z  }|                     d|j         ¦  «         d|_        ‰ j        rÿd}"ˆ fd„|                     ¦   «         D ¦   «         }#|#D ]Ö}$‰                      |$¦  «        }|                     |$¦  «         |p‰ j        p‰                      |	||z   ¦  «        }|r†‰                      |$¦  «         |s|sm|$j        d         dk    rE|j        d         dz
  x}r|D ]}|dz  }|dk    r nŒt%          ‰ ||||||||||¦  «        \  }}}d}" n|$j        d         dk    rdx}}" nŒ×|"r n|                     |¦  «         |}
|}�Œ2|r||d         j        i}||||
||fS )NFr   z$line box with siblings before layoutr   Úblock_ellipsiséÿÿÿÿTÚwidowsr—   r   c              3   óB   •K  — | ]}|j         ‰j        v ¯|j         V — Œd S ©N)ÚfootnoteÚ	footnotes)Ú.0Ú
descendantr'   s     €r6   ú	<genexpr>z"_linebox_layout.<locals>.<genexpr>®  sC   øè è € ð =ð =Ø(2ØÔ&¨'Ô*;Ð;Ð;ð Ô#Ø;Ð;Ð;Ð;ð=ð =r8   Úfootnote_policyr™   Úblock)r˜   rv   r#   r   Ú	enumerater!   rž   rT   r%   rL   rH   rG   r‚   ÚmaxÚ	in_columnÚcurrent_page_footnotesÚreport_footnoter€   rœ   Úreported_footnotesr   rR   r¤   ÚdescendantsÚlayout_footnote)%r'   r(   r   rz   rŠ   r,   r-   r.   r/   r)   r%   r*   r0   r1   Údraw_bottom_decorationr2   Úabortr‹   rT   Únew_footnotesÚnew_containing_blockÚlines_iteratorÚir™   Únew_position_yÚoffset_yÚoverflowÚcould_break_beforeÚcan_break_nowrš   rW   Úreportr¯   ÚextraÚbreak_lineboxr¤   r£   s%   `                                    r6   Ú_linebox_layoutrÀ   N  sx  ø€ ð Ð€EˆDØ€IØ€MåˆsŒ|ÑÔ Ò!Ð!Ð!Ð#IÑ!Ô!Ð!àð 9Ø•oÐ&7Ñ8Ô8Ñ8ˆ
ØÐÝ$Ø�˜
 L°*Ð>RØ˜Ð%7Ð9IñKô K€Nõ !*¨.Ñ 9Ô 9ð vñ vÑˆÑˆD�)àÐ Ø˜AŠ~ˆ~Ø25´)Ð<LÔ2M�˜RÔ Ô/Ø‘Ø˜‰NˆIð #ˆŒØœ¨4¬;Ñ6ˆð 	 )¨tÐ"3Ñ3ÐØ!ð 	ØÔ.°Ô1CÑCˆHˆHàˆHð
 Ð. Ð.ð LØ×"Ò" <°À(Ñ1JÑKÔKð 	ð ñ 3	ð 26Ð5Ð Ø”Y˜xÔ(¨1Ñ,ˆFØ#ð ð �Ø˜!‘�à˜R’<�<Ø�Eð  å�<Ñ Ô  1Ñ$ s¤y°Ô';Ò;Ð;Ø %��Ø˜1’�Ø %�Ý�<Ñ Ô  3¤9¨YÔ#7Ò7Ð7Ø%*Ð"Ð"Ø˜!’�Ø%*Ð"Ý˜˜F‘^”^ˆFØ Ô*Ð*ÐW¨}ÐWÐEWÐAWˆFØ!"ÐØð 
H˜WÔ;ð 
HØ×'Ò'¨Ô(FÀrÔ(JÑKÔKÐKØ" aÑ'Ð"Ø×-Ò-¨l¸NÈXÑ<UÑVÔVð Ø ×'Ò'¨Ñ-Ô-Ð-Ø�DØð ð 
H˜WÔ;ð 
Hõ *5Ø˜S $¨°f¸mÈUØ 	¨>¸;ñ*Hô *HÑ&��t˜Yð " QÒ&Ð&ØÔ2°2Ð7IÐ6IÈ!Ñ6KÈBÐ3NÔO�ØCH�Ô*Ð,>Ð+>Ð+?Ð+?Ñ@à‰Eð ð 	˜w×5Ò5°lÀNÑSÔSð 	ð ˜cœnÑ,ˆNØ�NŠN˜1˜sœ~˜oÑ.Ô.Ð.ØˆCŒNàÔð $	Ø!ˆMð=ð =ð =ð =Ø6:×6FÒ6FÑ6HÔ6Hð=ñ =ô =ˆIð &ð "ð "�Ø"×2Ò2°8Ñ<Ô<�Ø×$Ò$ XÑ.Ô.Ð.àð TØÔ.ðTà×*Ò*¨<¸È(Ñ9RÑSÔSð ð ð "Ø×+Ò+¨HÑ5Ô5Ð5ð
 $ð "¨=ð "Ø#œ>Ð*;Ô<ÀÒFÐFØ),¬°8Ô)<¸qÑ)@Ð@˜vð .Ø)7ð !.ð !. AØ$*¨a¡K Fà'-°¢{ {Ø(-¨ð (3å5@Ø '¨¨d°LÀ&È-Ø % z°9¸nØ +ñ6-ô 6-Ñ2˜E 4¨ð -1˜MØ!˜EØ%œ^Ð,=Ô>À'ÒIÐIØ48Ð8˜E MØ!˜EøØð Ø�à×Ò˜DÑ!Ô!Ð!Ø#ˆ
Øˆ
‰
àð 8Ø˜L¨Ô,Ô6Ð7ˆ	à�$˜	 :¨}¸iÐGÐGr8   c                 ó´	  — dx}}t          |¦  «        }|�bt          ||¦  «        }t          ||¦  «        }|st          || ¦  «        r/|                     ¦   «         d         }||dœ}|d i}d}||||
||||fS nd}|j        �s t          ||¦  «         |�€|                     ¦   «         rùt          |¦  «        }|j	        }|dk    rd}n;| j
        dk    r0|r.|j        d         dk    rd}n|j        d         dk    r	| j        sd}t          g |¢|‘¦  «        }||z
  }|D ]}|                     |¬	¦  «         Œt          | ||¦  «        }|�Y|D ]}|                     | ¬	¦  «         Œt          |¦  «        }|xj        ||j	        z
  z  c_        g }|                     ¦   «         }
|r¶|j        r"t          |¦  «        }|xj        |z  c_        g }n�t#          |t$          j        ¦  «        ss|j        d
         dk    rd}n&t)          |j        d
         |j        |j        ¦  «        }|                     |¦  «         t          |¦  «        |z
  }|xj        |z  c_        g }|ot/          d„ |D ¦   «         ¦  «         } t1          | ||	||| |||||||¦  «        \  }!}}}"}#}|!��Š|#�s7|!                     ¦   «         |!j        z   }$|                      |	|$¦  «        }%|	|!j        |!j        z   z  }	|                     ¦   «         s
|	|!j        z  }	|!                     ¦   «         |!                      ¦   «         z   }&|                      |	|&¦  «        }'| p| !                    ¦   «          }(|(r|%rtE          | |!g||¦  «         d }!ne|(ra|'r_tE          | |!g||¦  «         t1          | ||	||| |||||¦  «        \  }!}}}"}#}|!r)|!                     ¦   «         |!                      ¦   «         z   }
n|&}
|"}|!r|                     |!j        ¦  «         |!r0|!j#        r)|!                     ¦   «         |!                      ¦   «         z   }
|!€…tI          || ¦  «        r3tK          | |||¦  «        })|)r|)\  }}d}||||
||||fS |sd}||||
||||fS tM          d„ |D ¦   «         ¦  «        rtE          | |||¦  «         g }|r|d i}d}nd}||||
||||fS ||!_'        |                     |!¦  «         |�||i}d}||||
||||fS )NFr   ©Úbreakr”   Tr   r   r   r   )Údyr   c              3   óD   K  — | ]}t          |t          ¦  «        °|V — Œd S r¢   )r   r   ©r¥   rz   s     r6   r§   z"_in_flow_layout.<locals>.<genexpr>(  sG   è è € ð ?7ð ?7ØÝ˜%Õ!4Ñ5Ô5ð?7Øð?7ð ?7ð ?7ð ?7ð ?7ð ?7r8   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r¢   )r~   rÆ   s     r6   r§   z"_in_flow_layout.<locals>.<genexpr>v  s.   è è € ÐJÐJ°Eˆu×-Ò-Ñ/Ô/ÐJÐJÐJÐJÐJÐJr8   )(r„   r…   Úblock_level_page_nameÚforce_page_breakÚpage_valuesrJ   r   Útop_margin_collapsesr#   r   r   r!   r"   rR   r   r%   Úcontent_box_yr   r   r:   r   rK   r€   Úanyr7   rL   r‚   rG   rH   Úbottom_margin_collapsesr   Úborder_box_yÚborder_heightrƒ   rI   r$   r†   r‡   Úallr   )*r'   r(   r   rz   rŠ   r,   r-   r.   r/   r)   r%   r*   r0   r1   r   Ú	next_pager2   r³   r‹   r‘   r’   Ú	page_namerT   Úold_collapsed_marginÚchild_margin_topÚnew_collapsed_marginÚcollapsed_margin_differenceÚprevious_new_childr$   r4   r   r¹   Úpage_is_empty_with_no_childrenrŒ   Únext_adjoining_marginsÚcollapsing_throughÚnew_content_position_yÚcontent_page_overflowr¸   Úborder_page_overflowÚ	can_breakrB   s*                                             r6   Ú_in_flow_layoutrà   Ü  sò  € ð Ð€EˆDõ 1°Ñ>Ô>ÐØÐ%Ý+Ð,>ÀÑFÔFˆ
Ý)Ð*<¸eÑDÔDˆ	Øð 	4Õ(¨°WÑ=Ô=ð 	4Ø×)Ò)Ñ+Ô+¨AÔ.ˆIØ",°iÐ@Ð@ˆIØ ˜ˆIØˆDà�t˜Y¨
Ð4EØ˜<¨ð4ð 4ð	4ð ˆ
ð Ôñ !1Ý˜E 3Ñ'Ô'Ð'ØÑ%¨#×*BÒ*BÑ*DÔ*DÐ%õ $3Ð3DÑ#EÔ#EÐ ð  %Ô/ÐØ 6Ò)Ð)Ø#$Ð Ð ØÔ%¨Ò)Ð)¨mÐ)Ø”9˜^Ô,°	Ò9Ð9Ø'(Ð$Ð$Ø”Y˜~Ô.°&Ò8Ð8Ø"Ô/ð -Ø+,Ð(Ý#2Ø6Ð#Ð6Ð%5Ð6ñ$8ô $8Ð ð %Ð';Ñ;ð (à&2ð Mð MÐ"Ø"×,Ò,Ð0KÐ,ÑLÔLÐLÐLÝ% g¨uÐ6JÑKÔKˆIØÐ$Ø*6ð 9ð 9Ð&Ø&×0Ò0Ø7Ð7ð 1ñ 9ô 9ð 9ð 9õ $3Ð3DÑ#EÔ#EÐ Ø�”Ð"2°S´^Ñ"CÑC�”à$&Ð!Ø ×.Ò.Ñ0Ô0�
ð ð #ØÔð 	#Ý.Ð/@ÑAÔAÐØÐÔÐ 0Ñ0ÐÔØ "ÐÐÝ˜E¥5¤>Ñ2Ô2ð 		#ØŒ{˜<Ô(¨FÒ2Ð2Ø�
�
å'Ø”K Ô-¨u¬{¸C¼IñGô G�
à×$Ò$ ZÑ0Ô0Ð0Ý&Ð'8Ñ9Ô9¸JÑFˆHØÐÔ Ñ(ÐÔØ "Ðà%2ð &7½3ð ?7ð ?7Ø'ð?7ñ ?7ô ?7ñ <7ô <7ð 87Ð"õ
 '9Ø	�%˜ z°3Ð8VØ	˜Ð&7Ð9KØ	˜7 Iñ'/ô '/ñ$€Y�	˜9Ð&<Ø˜ð ÑØ!ñ 	,à%.×%<Ò%<Ñ%>Ô%>ÀÔAQÑ%QÐ"Ø$+×$:Ò$:ØÐ4ñ%6ô %6Ð!ð
 ˜IÔ4°yÔ7TÑTÑTˆLØ×.Ò.Ñ0Ô0ð 8Ø 	Ô 7Ñ7�Ø&×3Ò3Ñ5Ô5¸	×8OÒ8OÑ8QÔ8QÑQˆNØ#*×#9Ò#9¸,ÈÑ#WÔ#WÐ à;ÐR¸s×?PÒ?PÑ?RÔ?RÐSˆIØð ,Ð2ð ,å# G¨i¨[¸.È+ÑVÔVÐVØ �	�	Øð ,Ð3ð ,õ $ G¨i¨[¸.È+ÑVÔVÐVå2DØ˜e \°:¸sØ3°^À[Ø&¨°ñ3<ô 3<ñ0�˜I yÐ2HØ# Yð ð VØ!*×!7Ò!7Ñ!9Ô!9¸I×<SÒ<SÑ<UÔ<UÑ!U�Jøà+�
ð 3ÐØð 	>Ø×$Ò$ YÔ%<Ñ=Ô=Ð=ð ð 	N˜Ô,ð 	NØ"×/Ò/Ñ1Ô1°I×4KÒ4KÑ4MÔ4MÑMˆJàÐå˜J¨Ñ0Ô0ð 	<å,Ø˜ ~°{ñDô DˆFàð <Ø*0Ñ'�˜iØ�à˜4 ¨JÐ8IØ˜|¨Yð8ð 8ð
 %ð <ð !�Eà˜t Y°
Ð<MØ! <°ð<ð <õ ÐJÐJ¸\ÐJÑJÔJÑJÔJð 	õ   ¨°~À{ÑSÔSÐSØˆLàð 	à ˜ˆIØˆDˆDð ˆEà�4˜ JÐ0AÀ9Ø˜)ð%ð 	%ð €I„Oà×Ò˜	Ñ"Ô"Ð"ØÐØ˜IÐ&ˆ	Øˆð 	ˆt�Y 
Ð,=¸yØ�ið!ð !r8   c                 óö  ‡— t          ‰t          j        ¦  «        sJ ‚‰                     ¦   «         r|                      ‰¦  «         |du }‰                     | d¬¦  «         |
‰j        d         dk    z  }
|
p‰j        d         dk    }|€g }|r|‰j        ‰j        z   ‰j	        z   z  }| 
                    ‰j        ¦  «         |}‰                     ¦   «         r‰j        }n;‰xj        t          |¦  «        ‰j        z
  z  c_        g }‰                     ¦   «         }‰                     ¦   «         }‰j        d         d	k    rg }g }d
ddœ}‰j        d         dk    r"t#          ‰j        d         |pt$          ¦  «        }‰j        �"ˆfd„‰j        j        D ¦   «         }|	€|}	n|	|z  }	‰j        �"ˆfd„‰j        j        D ¦   «         }|€|}n||z  }|rd}n|                     ¦   «         \  \  }}t/          ‰j        |d…         |pd¬¦  «        D �]�\  }}||_        ||_        g }|                     ¦   «         sˆd}t7          | ‰||||||||¦
  «
        \  }}}}|r|                      ||‰|¦  «         |j        rG‰                     ¦   «         |_        |j        d         dk    r|xj        ‰j        ‰j         z   z  c_        nút          |t          j!        ¦  «        r3tE          | ‰||||||||||||	||¦  «        \  }}}}}}||du z  }g }dx}}	n­tG          | ‰||||||||||||	|
||¦  «        \  }}}}}}}}d}dx}}	d||fvry|}|dk    rqd}|‰j        d         k    }|s\|} | rX| d         }t          |t          j!        ¦  «        r‰j        d         |_$        n"t          |t          j%        ¦  «        r|j        } ŒY	 |rˆ| &                    ¦   «         d         }!tO          | ‰j        |d…         ||¦  «         |D ]}"|  (                    |"¦  «         Œ‰                     ¦   «         r|  )                    ¦   «          ddd
|!dœg d|fc S |rU‰j*        dk    rF‰j        ‰ +                    ¦   «         z   }#t          |¦  «        }$|  ,                    |#||$z
  ¦  «        rd}g } n�Œ�d}|dup‰j-        }%‰j        d         dk    rd}|%rst]          ‰j        d         | ¦  «        rX|sVtO          | g |¢‰j        |d…         ¢||¦  «         ‰                     ¦   «         r|  )                    ¦   «          ddd
ddœg d|fS ‰                     ¦   «         r%‰xj        t          |¦  «        ‰j        z
  z  c_        t_          |¦  «        }&d}'|&€kt          |¦  «        }(‰j*        dv rKta          | ‰|(¦  «        €:tc          d„ ‰j2        ‰j3        ‰j4        ‰j        ‰j        fD ¦   «         ¦  «        rd}'n||(z  }g }n‰j*        dk    rg }‰ 5                    ¦   «         s|t          |¦  «        z  }g }|%r6|r4|d         }t          |t          j!        ¦  «        r‰j        d         |_$        ‰ 6                    |¦  «        })|)                     | |%o|
 ¬¦  «         |)j*        dk    r‘| j7        r?|)j        d         dk    r.tq          d„ | j7        D ¦   «         ¦  «        }*tq          |*|¦  «        }||)                     ¦   «         cxk    rt$          k    rn nd|)_*        n||)                     ¦   «         z
  |)_*        |)j        d         d	k    r|D ]}+ts          | |+|)||d¬¦  «         Œ|)j        D ]}tu          ||)j        |)j*        f¦  «         Œ‰                     ¦   «         r|  )                    |)¦  «         |
s|%s3tq          t#          |)j*        |)j;        ¦  «        |)j2        ¦  «        |)_*        n{|t$           k    ro|)j<        sh| j=        |z
  |)j        z
  |) >                    ¦   «         |)j*        z
  z
  },|,|)j*        k    r.|,|)_*        |r%|)xj*        ‰j        ‰j        z   ‰j	        z   z  c_*        |d         €|) &                    ¦   «         d          |d<   |)||||'|fS )!zSet the ``box`` height.NF)ÚstartÚendÚcontinuer   Úbox_decoration_breakÚclonern   ro   rÍ   rÂ   r2   Únonec                 ó,   •— i | ]}|‰j         |         “ŒS © )r1   ©r¥   Úkeyr(   s     €r6   ú
<dictcomp>z*block_container_layout.<locals>.<dictcomp>Ä  s6   ø€ ð  Uð  Uð  UØ/2ˆC�Ô% cÔ*ð Uð  Uð  Ur8   c                 ó,   •— i | ]}|‰j         |         “ŒS ré   )r0   rê   s     €r6   rì   z*block_container_layout.<locals>.<dictcomp>Ì  s6   ø€ ð "Yð "Yð "YØ14ˆC�Ô'¨Ô,ð"Yð "Yð "Yr8   r   )râ   rY   r[   TrŸ   rž   r   Úbreak_inside)r   r   c              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   Nré   )r¥   Úvalues     r6   r§   z)block_container_layout.<locals>.<genexpr>J  s6   è è € ð >ð >˜u�˜’
ð >ð >ð >ð >ð >ð >r8   rº   Úvisiblec              3   óN   K  — | ] }|j         |                     ¦   «         z   V — Œ!d S r¢   )r%   Úmargin_height)r¥   Ú	float_boxs     r6   r§   z)block_container_layout.<locals>.<genexpr>l  sJ   è è € ð ':ð ':àð Ô$ y×'>Ò'>Ñ'@Ô'@Ñ@ð':ð ':ð ':ð ':ð ':ð ':r8   r}   r”   r   )?r   r   ÚBlockContainerBoxrQ   Úcreate_block_formatting_contextÚremove_decorationr!   rG   rH   r   r€   r   rË   r%   r#   rÌ   Úcontent_box_xÚminr   r1   Úcascadedr0   Úitemsrª   rv   rS   Úis_in_normal_flowr•   Úadd_broken_out_of_flowÚis_outside_markerÚborder_box_xrK   r`   ru   rÀ   rà   rž   Ú	ParentBoxrÊ   rI   Úunlayout_footnoteÚfinish_block_formatting_contextrL   rÐ   Ú	overflowsÚforce_fragmentationr†   r„   r   rÑ   Ú
min_heightÚborder_top_widthÚpadding_toprÎ   Úcopy_with_childrenÚexcluded_shapesr«   r   rw   Ú
max_heightrO   Úpage_bottomrô   )-r'   r(   r)   r*   r,   r-   r.   r/   r0   r1   r   r2   Úis_startr²   Úthis_box_adjoining_marginsr%   rS   rŠ   rÒ   Úbox_first_line_styleÚbox_first_letter_styleÚskipr   rz   r´   r³   r‹   rT   rŒ   r�   Únew_max_linesÚ
last_childrv   r”   r£   Ú
box_bottomÚbottom_marginÚbox_is_fragmentedr‘   rÛ   r4   rU   Úmax_float_position_yÚabsolute_boxÚnew_box_heights-    `                                           r6   rN   rN   •  sC  ø€ õ �c�5Ô2Ñ3Ô3Ð3Ð3Ð3à
×)Ò)Ñ+Ô+ð 5Ø×/Ò/°Ñ4Ô4Ð4ð ˜TÐ!€HØ×Ò H °%ÐÑ8Ô8Ð8àˆsŒy˜Ô$¨	Ò1Ñ1€GØ$ÐT¨¬	Ð2HÔ(IÈWÒ(TÐàÐ ØÐàð YØ˜Ô*¨SÔ-DÑDÀsÔGXÑXÑXˆà×Ò˜Sœ^Ñ,Ô,Ð,Ø!2Ðà
×ÒÑ!Ô!ð )ð ”^ˆ
ˆ
àˆŒ�/Ð*;Ñ<Ô<¸s¼~ÑMÑMˆŒØÐØ×&Ò&Ñ(Ô(ˆ
à×"Ò"Ñ$Ô$€Jà
„y�Ô 
Ò*Ð*àˆà€LØ¨Ð.Ð.€Ià
„y�Ô Ò'Ð'Ý˜œ	 +Ô.°	Ð0@½SÑAÔAˆ	à
ÔÐ'ð Uð  Uð  Uð  UØ69Ô6JÔ6Sð Uñ  Uô  UÐàÐ#Ø3ÐÐàÐ 4Ñ4Ðà
ÔÐ)ð"Yð "Yð "Yð "YØ8;Ô8NÔ8Wð"Yñ "Yô "YÐàÐ%Ø!7ÐÐàÐ"8Ñ8Ðð ð 1Øˆˆà(×.Ò.Ñ0Ô0ÑÑˆˆzÝ! #¤,¨t¨u¨uÔ"5¸d¸iÀaÐIÑIÔIð Xñ X‰ˆˆuØ%ˆÔØ%ˆÔØˆà×&Ò&Ñ(Ô(ð 8	"àˆEå#Ø˜S %¨°¸mØ" KÐ1BÀLñRô Rñ >ˆD�)˜YÐ(=ð %ð BØ×.Ò.Ø˜u cÐ+@ñBô Bð BàÔ&ð JØ'*×'7Ò'7Ñ'9Ô'9�	Ô$Ø”;˜{Ô+¨uÒ4Ð4ØÐ(Ô(¨C¬I¸Ô8IÑ,IÑIÐ(Ô(øå˜�uœ}Ñ-Ô-ð )	"õ *9Ø˜˜e U¨L¸-Ø Ð->ÀØ˜JÐ(:Ð<LØ&¨	ñ	*3ô *3ñ'ˆU�D˜) ZØ˜Ið
 # i°4Ð&7Ñ7Ð"Ø "ÐØ48Ð8ÐÐ!1Ð!1õ
 8GØ˜#˜u e¨\¸=Ø Ð.?ÀØ˜ZÐ);Ð=MØ˜) Yñ	80ô 80ñ5ˆU�D˜) ZÐ1BØ˜ mð
 ˆJØ48Ð8ÐÐ!1ð ˜M¨9Ð5Ð5Ð5Ø)�	Ø ’>�>à�DØ"'¨3¬<¸Ô+;Ò";�JØ%ð "ð $0˜Ø&ð "Ø)1°"¬˜JÝ)¨*µe´mÑDÔDð )Ø<?¼IÐFVÔ<W 
Ô 9Ð 9Ý!+¨J½¼Ñ!HÔ!Hð )Ø+5Ô+> Ø (Ø!àð 	à×$Ò$Ñ&Ô& qÔ)ˆDÝØ˜œ d e eÔ,¨n¸kñKô Kð Kà)ð 4ð 4�Ø×)Ò)¨(Ñ3Ô3Ð3Ð3Ø×1Ò1Ñ3Ô3ð :Ø×7Ò7Ñ9Ô9Ð9à�d e°TÐ:Ð:¸BÀØðð ð ð ð ð 
	àŒz˜VÒ#Ð#Ø œ^¨c×.?Ò.?Ñ.AÔ.AÑA�
Ý /Ð0AÑ BÔ B�Ø×$Ò$ Z°¸mÑ1KÑLÔLð %ð !%�IØ "ÐØˆEñ
	ð ˆ	à!¨Ð-ÐH°Ô1HÐØ
„y�Ô 	Ò)Ð)Øˆ	àð PÝ˜SœY ~Ô6¸Ñ@Ô@ðPàðPõ 	ØÐ:�|Ð: c¤l°4°5°5Ô&9Ð:¸NÈKñ	Yô 	Yð 	Yà×-Ò-Ñ/Ô/ð 	6Ø×3Ò3Ñ5Ô5Ð5Ø�T U°DÐ9Ð9¸2¸uÀiÐOÐOà
×ÒÑ!Ô!ð WØˆŒ�/Ð*DÑEÔEÈÌÑVÑVˆŒõ 1°Ñ>Ô>ÐØÐØÐ!å*Ð+<Ñ=Ô=ÐØŒJ˜+Ð%Ð%Ý˜' 3Ð(8Ñ9Ô9ÐAÝð >ð >Ø” Ô 4°c´oØÔ'¨Ô);ð)=ð >ñ >ô >ñ >ô >ð Bð
 "&ÐÐð Ð*Ñ*ˆJØ "ÐÐð Œ:˜ÒÐà "Ðà×&Ò&Ñ(Ô(ð Ø•oÐ&7Ñ8Ô8Ñ8ˆ
ØÐð ð D˜\ð DØ! "Ô%ˆ
Ý�j¥%¤-Ñ0Ô0ð 	DØ(+¬	Ð2BÔ(CˆJÔ%à×$Ò$ \Ñ2Ô2€GØ×ÒØˆlÐ 1Ð A¸'°kð ñ Cô Cð Cð „~˜ÒÐØÔ"ð 	? w¤}°ZÔ'@ÀIÒ'MÐ'MÝ#&ð ':ð ':à!(Ô!8ð':ñ ':ô ':ñ $:ô $:Ð õ Ð1°:Ñ>Ô>ˆJØ˜×.Ò.Ñ0Ô0Ð7Ð7Ò7Ð7µCÒ7Ð7Ð7Ð7Ð7ØˆGŒNˆNà'¨'×*?Ò*?Ñ*AÔ*AÑAˆGŒNà„}�ZÔ  JÒ.Ð.à*ð 	!ð 	!ˆLÝØ˜ w°¸\Øð!ñ !ô !ð !ð !ð Ô!ð Eð EˆÝ˜U W¤]°G´NÐ$CÑDÔDÐDÐDà
×)Ò)Ñ+Ô+ð 9Ø×/Ò/°Ñ8Ô8Ð8àð 'Ð'ð 'õ Ý�” Ô 2Ñ3Ô3°WÔ5GñIô IˆŒˆà	�˜Ò	Ð	 WÔ%6Ð	ð Ô ,Ñ.°Ô1CÑCØ×"Ò"Ñ$Ô$ w¤~Ñ5ñ7ð 	ð ˜GœNÒ*Ð*Ø+ˆGŒNØ%ð 'Ø�”ØÔ&¨Ô)@Ñ@ØÔ%ñ&ñ'�”ð �ÔÐ Ø#×/Ò/Ñ1Ô1°!Ô4ˆ	�&Ñð 	�˜IÐ'8Ð:LØðð r8   c                 ó    — dg}|                      | ¦  «         d„ |D ¦   «         }d„ |D ¦   «         }t          |¦  «        t          |¦  «        z   S )zCGet the amount of collapsed margin for a list of adjoining margins.r   c              3   ó&   K  — | ]}|d k    ¯|V — ŒdS rð   ré   ©r¥   Úms     r6   r§   z"collapse_margin.<locals>.<genexpr>   ó&   è è € Ð.Ð.�q q¨A¢v v� v v v vÐ.Ð.r8   c              3   ó&   K  — | ]}|d k    ¯|V — ŒdS rð   ré   r  s     r6   r§   z"collapse_margin.<locals>.<genexpr>¡  r  r8   )Úextendr«   rú   )r/   ÚmarginsÚ	positivesÚ	negativess       r6   r#   r#   œ  sY   € àˆc€GØ‡N‚NÐ$Ñ%Ô%Ð%Ø.Ð.˜GÐ.Ñ.Ô.€IØ.Ð.˜GÐ.Ñ.Ô.€IÝˆy‰>Œ>�C 	™NœNÑ*Ð*r8   c                 óú  — g }t           j        t           j        t           j        f}| }t	          ||¦  «        rE|                     |j        d         ¦  «         |j        sn|j        d         }t	          ||¦  «        °E|                     ¦   «          |}t	          ||¦  «        rE|                     |j        d         ¦  «         |j        sn|j        d         }t	          ||¦  «        °Ed}|D ]}|dv s||fdv r|}Œ|S )a�  Get the correct page break value between siblings.

    Return the value of ``page-break-before`` or ``page-break-after`` that
    "wins" for boxes that meet at the margin between two sibling boxes.

    For boxes before the margin, the 'page-break-after' value is considered;
    for boxes after the margin the 'page-break-before' value is considered.

    * 'avoid' takes priority over 'auto'
    * 'page' takes priority over 'avoid' or 'auto'
    * 'left' or 'right' take priority over 'always', 'avoid' or 'auto'
    * Among 'left' and 'right', later values in the tree take priority.

    See https://drafts.csswg.org/css-page-3/#allowed-pg-brk

    Úbreak_afterrŸ   Úbreak_beforer   r   )rp   rq   ÚrectoÚverso))r”   r   )r”   Úavoid)r”   ú
avoid-page)r”   úavoid-column)Úcolumnr   )r,  r)  )r,  r*  )r,  r+  )r)  r   )r*  r   )r+  r   )	r   ÚBlockLevelBoxÚTableRowGroupBoxÚTableRowBoxr   r€   r!   rv   Úreverse)Úsibling_beforeÚsibling_afterÚvaluesÚblock_parallel_box_typesr(   rB   rñ   s          r6   r…   r…   ¥  s:  € ð" €Fõ 	Ô�UÔ3µUÔ5Fð HÐð €CÝ
�SÐ2Ñ
3Ô
3ð Ø�Š�c”i Ô.Ñ/Ô/Ð/ØŒ|ð 	ØØŒl˜2Ôˆõ	 �SÐ2Ñ
3Ô
3ð ð
 ‡N‚NÑÔÐà
€CÝ
�SÐ2Ñ
3Ô
3ð Ø�Š�c”i Ô/Ñ0Ô0Ð0ØŒ|ð 	ØØŒl˜1Œoˆõ	 �SÐ2Ñ
3Ô
3ð ð €FØð ð ˆØÐ7Ð7Ð7¸EÀ6¸?ð O*ð <*ð <*ð ˆFøà€Mr8   c                 ó~   — |                       ¦   «         d         }|                      ¦   «         d         }||k    r|S dS )zBReturn the next page name when siblings don't have the same names.r   r   N)rÊ   )r1  r2  Úbefore_pageÚ
after_pages       r6   rÈ   rÈ   Ý  sG   € à ×,Ò,Ñ.Ô.¨qÔ1€KØ×*Ò*Ñ,Ô,¨QÔ/€JØ�jÒ Ð ØÐð !Ð r8   c                 ó¤  — |r—t          |d         t          j        ¦  «        rw|d         j        d         }|d         j        d         }t	          |¦  «        |z
  }||k     rdS |d|…         }d|d         j        i}t          | ||d…         ||¦  «         ||fS d}	t          |¦  «        D �]…\  }}
t          |
t          j        ¦  «        r|
j	        s|
j
        rŒ/|
j        rŒ7|
                     ¦   «         rDt          |
|	¦  «        }|	�0t          || ¦  «        s |dz  }|d|…         }||         j        di} nü|
}	|
                     ¦   «         rât          |
j        d         | ¦  «        sÇt          j        t          j        t          j        f}t          |
|¦  «        r”t%          | |
j        ||¦  «        }|r{|\  }}|
                     |¦  «        }g |d|…         ¢|‘}t          |
t          j        ¦  «        r)||d…         D ]}|j
        r|                     |¦  «         Œ|j        |i}|dz  } n�Œ‡dS t          | ||d…         ||¦  «         ||fS )aq  Find the last possible page break in ``children``.

    Because of a `page-break-before: avoid` or a `page-break-after: avoid` we
    need to find an earlier page break opportunity inside `children`.

    Absolute or fixed placeholders removed from children should also be
    removed from `absolute_boxes` or `fixed_boxes`.

    Return (new_children, resume_at).

    r   r—   r    NrŸ   r   rî   )r   r   ru   r!   r˜   rT   rI   Úreversed_enumerater.  Ú	is_headerÚ	is_footerrO   rý   r…   r†   r   r:   r   r‡   rv   r	  r€   )r'   rv   r-   r.   r—   r    r   rŠ   rT   Úprevious_in_flowrz   r’   Úbreakable_box_typesrB   Únew_grand_childrenrŒ   Ú
next_childs                    r6   r‡   r‡   å  sÕ  € ð ð '•J˜x¨œ{­E¬MÑ:Ô:ð 'ð ˜1”+Ô# IÔ.ˆØ˜!”Ô" 8Ô,ˆÝ�H‘” Ñ&ˆØ�7Š?ˆ?Ø�4Ø   Ô'ˆØ˜ RÔ(Ô2Ð3ˆ	ÝØ�X˜e˜f˜fÔ% ~°{ñ	Dô 	Dð 	Dà˜YÐ&Ð&àÐÝ*¨8Ñ4Ô4ð ,ñ ,‰ˆˆuÝ�e�UÔ3Ñ4Ô4ð 	Ø”ð	Ø#(¤?ð	ð ØŒ_ð 	àà×"Ò"Ñ$Ô$ð 		%Ý/°Ð7GÑHÔHˆJØÐ+Ý(¨°WÑ=Ô=ð ,à˜‘
�Ø'¨¨¨Ô/�à% eœ_Ô2°DÐ9�	Ø�Ø$Ðà×"Ò"Ñ$Ô$ð 	Ý$ U¤[°Ô%@À'ÑJÔJð	õ ”¥¤µÔ0Fð#HÐå˜%Ð!4Ñ5Ô5ð Ý0Ø˜Uœ^¨^¸[ñJô J�àð Ø4:Ñ1Ð&¨	Ø %× 8Ò 8Ð9KÑ LÔ L�IØ#A X¨f¨u¨fÔ%5Ð#A°yÐ#A�Lõ " %­Ô)?Ñ@Ô@ð @Ø*2°5°6°6Ô*:ð @ð @˜JØ)Ô3ð @Ø ,× 3Ò 3°JÑ ?Ô ?Ð ?øð "+¤°)Ð <�IØ˜Q‘J�EØ�Eùàˆtõ ˜ ¨%¨&¨&Ô!1°>À;ÑOÔOÐOØ˜Ð"Ð"r8   c                 óZ   — t          | ¦  «        D ]}|                     ¦   «         r|c S ŒdS )z=Find and return the last in-flow child of given ``children``.N)Úreversedrý   )rv   rz   s     r6   r„   r„   3  sE   € å˜(Ñ#Ô#ð ð ˆØ×"Ò"Ñ$Ô$ð 	ØˆLˆLˆLð	ðð r8   c           	      óŠ   — t          t          t          t          | ¦  «        ¦  «        ¦  «        t          | ¦  «        ¦  «        S )zBLike reversed(list(enumerate(seq))) without copying the whole seq.)ÚziprA  Úranger˜   )Úseqs    r6   r9  r9  :  s,   € å�x��c #™hœh™œÑ(Ô(­(°3©-¬-Ñ8Ô8Ð8r8   c                 ó¤  — |D ]Ì}t          |t          j        ¦  «        rt          | |j        ||¦  «         |j        d         dk    r||v r|                     |¦  «         n*|j        d         dk    r||v r|                     |¦  «         |j        r|                      |j        ¦  «         || j	        v r| j	         
                    |¦  «         ŒÍdS )zúRemove placeholders from absolute and fixed lists.

    For boxes that have been removed in find_earlier_page_break(), remove the
    matching placeholders in absolute_boxes and fixed_boxes.

    Also takes care of removed footnotes and floats.

    rn   r|   ÚfixedN)r   r   r  rI   rv   r!   Úremover£   r  Úbroken_out_of_flowÚpop)r'   Úbox_listr-   r.   r(   s        r6   rI   rI   ?  sû   € ð ð 0ð 0ˆÝ�c�5œ?Ñ+Ô+ð 	DÝØ˜œ ~°{ñDô Dð DàŒ9�ZÔ  JÒ.Ð.°3¸.Ð3HÐ3HØ×!Ò! #Ñ&Ô&Ð&Ð&ØŒY�zÔ" gÒ-Ð-°#¸Ð2DÐ2DØ×Ò˜sÑ#Ô#Ð#ØŒ<ð 	4Ø×%Ò% c¤lÑ3Ô3Ð3Ø�'Ô,Ð,Ð,ØÔ&×*Ò*¨3Ñ/Ô/Ð/øð0ð 0r8   c                 ó    — |j         r| dv S | dv S )z$Test whether we should avoid breaks.)r)  r*  r+  )r)  r*  ©r¬   ©r’   r'   s     r6   r†   r†   V  s&   € àÔð EØÐDÐDÐDØÐ0Ð0Ð0r8   c                 ó    — |j         r| dv S | dv S )z$Test whether we should force breaks.)r”   rp   rq   r'  r(  r,  )r”   rp   rq   r'  r(  rM  rN  s     r6   rÉ   rÉ   ]  s/   € àÔð AØð Að Að 	AàÐDÐDÐDr8   )TNNNNNFN)2Ú__doc__Úmathr   Úformatting_structurer   r|   r   r   r,  r	   Úflexr
   Úfloatr   r   r   Úgridr   Úinliner   Úmin_maxr   Úpercentr   r   r   Úreplacedr   Útabler   r   r7   r&   r;   rM   rw   r•   rœ   rÀ   rà   rN   r#   r…   rÈ   r‡   r„   r9  rI   r†   rÉ   ré   r8   r6   ú<module>r[     sn  ðØ IÐ Ià Ð Ð Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø )Ð )Ð )Ð )Ð )Ð )Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ð MQØBFØGKð,Bð ,Bð ,Bð ,Bð^ð ð ð:/ð /ð /ðd ð;1ð ;1ñ Ôð;1ð|:ð :ð :ð>?=ð ?=ð ?=ðD,ð ,ð ,ð<KHð KHð KHð\v!ð v!ð v!ðrDð Dð DðN+ð +ð +ð5ð 5ð 5ðpð ð ðK#ð K#ð K#ð\ð ð ð9ð 9ð 9ð
0ð 0ð 0ð.1ð 1ð 1ðEð Eð Eð Eð Er8   