Ë
    o]j
£  ã                   ój  — d Z ddl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 ddlmZ d	d
lmZmZ d	dlmZmZ d	dlmZ d	dlmZmZ d	dlmZ d	dlmZmZ  edg d¢«      Z G d„ d«      Z G d„ de«      Z  G d„ de«      Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ed„ «       Z(ed„ «       Z)d „ Z*d!„ Z+d"„ Z,d#„ Z-d$„ Z.d%„ Z/y)&z'Layout for pages and CSS3 margin boxes.é    N)ÚdefaultdictÚ
namedtuple)Úinfé   )ÚAnonymousStyle)ÚboxesÚbuild)ÚPROGRESS_LOGGERé   )Úabsolute_box_layoutÚabsolute_layout)Úblock_container_layoutÚblock_level_layout)Úfloat_layout)Úhandle_min_max_heightÚhandle_min_max_width)Úresolve_percentages)Úmax_content_widthÚmin_content_widthÚPageType)ÚsideÚblankÚnameÚindexÚgroupsc                   óp   — e Zd Zed„ «       Zed„ «       Zej                  d„ «       Zed„ «       Zed„ «       Zy)ÚOrientedBoxc                 óN   — | j                   | j                  z   | j                  z   S ©N)Úpadding_plus_borderÚmargin_aÚmargin_b©Úselfs    úM/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/layout/page.pyÚsugarzOrientedBox.sugar   s    € à×'Ñ'¨$¯-©-Ñ7¸$¿-¹-ÑGÐGó    c                 ó4   — | j                   | j                  z   S r   )r&   Úinnerr#   s    r%   ÚouterzOrientedBox.outer   s   € à�z‰z˜DŸJ™JÑ&Ð&r'   c                 ó|   — t        t        | j                  || j                  z
  «      | j                  «      | _        y r   )ÚminÚmaxÚmin_content_sizer&   Úmax_content_sizer)   )r$   Únew_outer_widths     r%   r*   zOrientedBox.outer   s0   € äÜ�×%Ñ% ¸¿¹Ñ'CÓDØ×!Ñ!ó#ˆ�
r'   c                 ón   — | j                   | j                  dk(  r| j                  z   S | j                  z   S ©NÚauto)r&   r)   r.   r#   s    r%   Úouter_min_content_sizez"OrientedBox.outer_min_content_size#   ó<   € à�z‰zØ%)§Z¡Z°6Ò%9ˆD×!Ñ!ñKð 	KØ?C¿z¹zñKð 	Kr'   c                 ón   — | j                   | j                  dk(  r| j                  z   S | j                  z   S r2   )r&   r)   r/   r#   s    r%   Úouter_max_content_sizez"OrientedBox.outer_max_content_size(   r5   r'   N)	Ú__name__Ú
__module__Ú__qualname__Úpropertyr&   r*   Úsetterr4   r7   © r'   r%   r   r      sn   „ ØñHó ðHð ñ'ó ð'ð ‡\�\ñ#ó ð#ð
 ñKó ðKð ñKó ñKr'   r   c                   ó8   — e Zd Zd„ Zd„ Zed„ «       Zed„ «       Zy)ÚVerticalBoxc                 óö   — || _         || _        |j                  | _        |j                  | _        |j                  | _        |j                  |j                  z   |j                  z   |j                  z   | _        y r   )ÚcontextÚboxÚheightr)   Ú
margin_topr!   Úmargin_bottomr"   Úpadding_topÚpadding_bottomÚborder_top_widthÚborder_bottom_widthr    ©r$   rA   rB   s      r%   Ú__init__zVerticalBox.__init__/   sk   € ØˆŒØˆŒð —Z‘ZˆŒ
ØŸ™ˆŒØ×)Ñ)ˆŒà�O‰O˜c×0Ñ0Ñ0Ø× Ñ ñ!Ø#&×#:Ñ#:ñ;ð 	Õ r'   c                 ó‚   — | j                   }| j                  |_        | j                  |_        | j
                  |_        y r   )rB   r)   rC   r!   rD   r"   rE   ©r$   rB   s     r%   Úrestore_box_attributesz"VerticalBox.restore_box_attributes;   s-   € Ø�h‰hˆØ—Z‘ZˆŒ
ØŸ™ˆŒØ ŸM™MˆÕr'   c                  ó   — y)Nr   r=   r#   s    r%   r.   zVerticalBox.min_content_sizeB   s   € àr'   c                  ó   — y)Ng    €„.Ar=   r#   s    r%   r/   zVerticalBox.max_content_sizeF   s   € àr'   N©r8   r9   r:   rK   rN   r;   r.   r/   r=   r'   r%   r?   r?   .   s4   „ ò
<ò*ð ñó ðð ñó ñr'   r?   c                   ó8   — e Zd Zd„ Zd„ Zed„ «       Zed„ «       Zy)ÚHorizontalBoxc                 ó  — || _         || _        |j                  | _        |j                  | _        |j                  | _        |j                  |j                  z   |j                  z   |j                  z   | _        d | _        d | _        y r   )rA   rB   Úwidthr)   Úmargin_leftr!   Úmargin_rightr"   Úpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthr    Ú_min_content_sizeÚ_max_content_sizerJ   s      r%   rK   zHorizontalBox.__init__L   s}   € ØˆŒØˆŒØ—Y‘YˆŒ
ØŸ™ˆŒØ×(Ñ(ˆŒà×Ñ˜s×0Ñ0Ñ0Ø×!Ñ!ñ"Ø$'×$:Ñ$:ñ;ð 	Ô ð "&ˆÔØ!%ˆÕr'   c                 ó‚   — | j                   }| j                  |_        | j                  |_        | j
                  |_        y r   )rB   r)   rU   r!   rV   r"   rW   rM   s     r%   rN   z$HorizontalBox.restore_box_attributesX   s-   € Ø�h‰hˆØ—J‘JˆŒ	ØŸ-™-ˆŒØŸ=™=ˆÕr'   c                 ó€   — | j                   €'t        | j                  | j                  d¬«      | _         | j                   S ©NF)r*   )r\   r   rA   rB   r#   s    r%   r.   zHorizontalBox.min_content_size^   ó6   € à×!Ñ!Ð)Ü%6Ø—‘˜dŸh™h¨eô&5ˆDÔ"à×%Ñ%Ð%r'   c                 ó€   — | j                   €'t        | j                  | j                  d¬«      | _         | j                   S r`   )r]   r   rA   rB   r#   s    r%   r/   zHorizontalBox.max_content_sizee   ra   r'   NrQ   r=   r'   r%   rS   rS   K   s4   „ ò
&ò)ð ñ&ó ð&ð ñ&ó ñ&r'   rS   c                 ó^  —  |rt         nt        | |«      }|j                  t        d„ |j                  |j
                  |j                  fD «       «      z   }||kD  rB|j                  dk(  rd|_        |j
                  dk(  rd|_        |j                  dk(  rd|_        d|j                  |j
                  |j                  fvr|rd|_        nd|_        |j                  |j
                  |j                  gj                  d«      dk(  r¹|j                  dk(  r/||j                  z
  |j                  z
  |j
                  z
  |_        n{|j                  dk(  r/||j                  z
  |j
                  z
  |j                  z
  |_        n=|j
                  dk(  r.||j                  z
  |j                  z
  |j                  z
  |_        |j                  dk(  rZ|j                  dk(  rd|_        |j
                  dk(  rd|_        ||j                  z
  |j                  z
  |j
                  z
  |_        |j                  |j
                  cxk(  rdk(  r.n n+||j                  z
  |j                  z
  dz  x|_        |_        d|j                  |j
                  |j                  fvsJ ‚|j                  «        y)a¢  Compute and set a margin box fixed dimension on ``box``.

    Described in: https://drafts.csswg.org/css-page-3/#margin-constraints

    :param box:
        The margin box to work on
    :param outer:
        The target outer dimension (value of a page margin)
    :param vertical:
        True to set height, margin-top and margin-bottom; False for width,
        margin-left and margin-right
    :param top_or_left:
        True if the margin box in if the top half (for vertical==True) or
        left half (for vertical==False) of the page.
        This determines which margin should be 'auto' if the values are
        over-constrained. (Rule 3 of the algorithm.)
    c              3   ó*   K  — | ]  }|d k7  r|–— Œ y­w)r3   Nr=   )Ú.0Úvalues     r%   ú	<genexpr>z*compute_fixed_dimension.<locals>.<genexpr>‚   s   è ø€ ò *ØØ�FŠ?ô 	ñ*ùs   ‚r3   r   r   r   N)	r?   rS   r    Úsumr!   r"   r)   ÚcountrN   )rA   rB   r*   ÚverticalÚtop_or_leftÚtotals         r%   Úcompute_fixed_dimensionrm   m   sV  € ð$ 6™(�;¬°wÀÓ
D€Cð ×#Ñ#¤cñ *ØŸL™L¨#¯,©,¸¿	¹	ÐBô*ó 'ñ €Eð ˆu‚}Ø�<‰<˜6Ò!ØˆCŒLØ�<‰<˜6Ò!ØˆCŒLØ�9‰9˜Òð
 ˆCŒIà�c—l‘l C§L¡L°#·)±)Ð<Ñ<áØ!ˆC�Là!ˆCŒLà�‰�c—l‘l C§I¡IÐ.×4Ñ4°VÓ<ÀÒAØ�9‰9˜ÒØ ×!8Ñ!8Ñ8ØŸ™ñ&Ø(+¯©ñ5ˆC�Ià�\‰\˜VÒ#Ø! C×$;Ñ$;Ñ;ØŸL™Lñ)Ø+.¯9©9ñ5ˆC�Là�\‰\˜VÒ#Ø! C×$;Ñ$;Ñ;ØŸL™Lñ)Ø+.¯9©9ñ5ˆCŒLð ‡y�y�FÒØ�<‰<˜6Ò!ØˆCŒLØ�<‰<˜6Ò!ØˆCŒLØ˜S×4Ñ4Ñ4Ø—\‘\ñ"Ø$'§L¡Lñ1ˆŒ	ð ‡|�|�s—|‘|Ô- vÕ-à�C×+Ñ+Ñ+¨c¯i©iÑ7¸1ñ'=ð 	=ˆŒ�s”|ð ˜#Ÿ,™,¨¯©°c·i±iÐ@Ñ@Ð@Ð@à×ÑÕ r'   c                 ó(	  — |rt         nt        }|D �cg c]  } || |«      ‘Œ }}|\  }}}|D ]/  }|j                  dk(  rd|_        |j                  dk(  sŒ)d|_        Œ1 |j                  j
                  �s4|j                  dk(  sJ ‚|j                  |j                  cxk(  rdk(  �r¸n �n´||j                  |j                  z   kD  rv||j                  z
  |j                  z
  }	|j                  }
|j                  }|
|z   }|dk(  rd}|j                  |	|
z  |z  z   |_	        |j                  |	|z  |z  z   |_	        �n||j                  |j                  z   kD  r�||j                  z
  |j                  z
  }	|j                  |j                  z
  }
|j                  |j                  z
  }|
|z   }|dk(  rd}|j                  |	|
z  |z  z   |_	        |j                  |	|z  |z  z   |_	        �nk||j                  z
  |j                  z
  }	|j                  }
|j                  }|
|z   }|dk(  rd}|j                  |	|
z  |z  z   |_	        |j                  |	|z  |z  z   |_	        �nõ|j                  dk(  r||j                  z
  |_	        �nÐ|j                  dk(  �rÀ||j                  z
  |_	        �nª|j                  dk(  �rNdt        |j                  |j                  «      z  }||j                  |z   kD  rG||j                  z
  |z
  }	|j                  }|}||z   }|dk(  rd}|j                  |	|z  |z  z   |_	        nÒdt        |j                  |j                  «      z  }||j                  |z   kD  rW||j                  z
  |z
  }	|j                  |j                  z
  }||z
  }||z   }|dk(  rd}|j                  |	|z  |z  z   |_	        nF||j                  z
  |z
  }	|j                  }|}||z   }|dk(  rd}|j                  |	|z  |z  z   |_	        |j                  dk(  r||j                  z
  dz  |_	        |j                  dk(  r||j                  z
  dz  |_	        d|D �cg c]  }|j                  ‘Œ c}vsJ ‚|D ]  }|j                  «        Œ yc c}w c c}w )ua  Compute and set a margin box fixed dimension on ``box``

    Described in: https://drafts.csswg.org/css-page-3/#margin-dimension

    :param side_boxes:
        Three boxes on a same side (as opposed to a corner).
        A list of:
        - A @*-left or @*-top margin box
        - A @*-center or @*-middle margin box
        - A @*-right or @*-bottom margin box
    :param vertical:
        ``True`` to set height, margin-top and margin-bottom;
        ``False`` for width, margin-left and margin-right.
    :param available_size:
        The distance between the page boxâ€™s left right border edges

    r3   r   r   r   N)r?   rS   r!   r"   rB   Úis_generatedr)   r7   r/   r*   r4   r.   r-   rN   )rA   Ú
side_boxesrj   Úavailable_sizeÚ	box_classrB   Úbox_aÚbox_bÚbox_cÚ
flex_spaceÚflex_factor_aÚflex_factor_cÚflex_factor_sumÚac_max_content_sizeÚflex_factor_bÚflex_factor_acÚac_min_content_sizes                    r%   Úcompute_variable_dimensionr~   ´   sS  € ñ$  (•¬]€IØ5?Ö@¨c‘)˜G SÕ)Ð@€JÐ@Ø$Ñ€Eˆ5�%àò ˆØ�<‰<˜6Ò!ØˆCŒLØ�<‰<˜6Ó!ØˆC�Lð	ð �9‰9×!Ó!à�{‰{˜aÒÐÐØ�;‰;˜%Ÿ+™+Ô/¨×/àØ×0Ñ0Ø×0Ñ0ñ1ò2ð #Ø×0Ñ0ñ1à×0Ñ0ñ1ð ð !&× <Ñ <�Ø %× <Ñ <�Ø"/°-Ñ"?�Ø" aÒ'Ø&'�OØ#×4Ñ4Ø Ñ.°Ñ@ñB�”à#×4Ñ4Ø Ñ.°Ñ@ñB�–àØ×0Ñ0Ø×0Ñ0ñ1ò2ð #Ø×0Ñ0ñ1à×0Ñ0ñ1ð ð
 ×*Ñ*¨U×-CÑ-CÑCð ð ×*Ñ*¨U×-CÑ-CÑCð à"/°-Ñ"?�Ø" aÒ'Ø&'�OØ#×4Ñ4Ø Ñ.°Ñ@ñB�”à#×4Ñ4Ø Ñ.°Ñ@ñB�–ð
 #Ø×0Ñ0ñ1à×0Ñ0ñ1ð ð !&× 6Ñ 6�Ø %× 6Ñ 6�Ø"/°-Ñ"?�Ø" aÒ'Ø&'�OØ#×4Ñ4Ø Ñ.°Ñ@ñB�”à#×4Ñ4Ø Ñ.°Ñ@ñB�–ð �{‰{˜fÒ$Ø,¨u¯{©{Ñ:�–Ø—‘ Ó&Ø,¨u¯{©{Ñ:�–à�;‰;˜&Ó à"#¤cØ×,Ñ,¨e×.JÑ.Jó'Lñ #LÐàØ×0Ñ0Ð3FÑFòHð #Ø×0Ñ0ñ1à'ñ(ð ð !&× <Ñ <�Ø!4�Ø"/°.Ñ"@�Ø" aÒ'Ø&'�OØ#×4Ñ4Ø Ñ.°Ñ@ñB�•ð '(¬#Ø×0Ñ0°%×2NÑ2Nó+Pñ 'PÐ#à!Ø×4Ñ4Ð7JÑJòLð 'Ø×4Ñ4ñ5à+ñ,ð ð
 ×.Ñ.°×1GÑ1GÑGð "à%8Ð;NÑ%N�NØ&3°nÑ&D�OØ&¨!Ò+Ø*+˜Ø"'×"8Ñ"8Ø" ]Ñ2°_ÑDñ#F�E•Kð 'Ø×4Ñ4ñ5à+ñ,ð ð %*×$:Ñ$:�MØ%8�NØ&3°nÑ&D�OØ&¨!Ò+Ø*+˜Ø"'×"8Ñ"8Ø" ]Ñ2°_ÑDñ#F�E”Kà�;‰;˜&Ò Ø)¨E¯K©KÑ7¸1Ñ<ˆEŒKØ�;‰;˜&Ò Ø)¨E¯K©KÑ7¸1Ñ<ˆEŒKð ¨zÖ:¨˜#Ÿ)›)Ò:Ñ:Ð:Ð:àò %ˆØ×"Ñ"Õ$ñ%ùòA Aùò| ;s   “R
ÑRc                 óÎ   — d}dD ]M  }| |   dk(  rd| |<   Œg }| |   D ]%  \  }}|dk(  rd}|dk7  sŒ|j                  ||f«       Œ' t        |«      | |<   ŒO |€|sd	| d
   z   | d
<   yyy)zªDrop 'pages' counter from style in @page and @margin context.

    Ensure `counter-increment: page` for @page context if not otherwise
    manipulated by the style.

    F)Úcounter_setÚcounter_resetÚcounter_incrementr3   r=   ÚpageTÚpagesN))rƒ   r   r‚   )ÚappendÚtuple)ÚstyleÚpseudo_typeÚpage_counter_touchedÚpropnameÚjustified_valuesr   rf   s          r%   Ú _standardize_page_based_countersrŒ   K  s³   € ð !ÐØIò 
2ˆØ�‰?˜fÒ$Ø ˆE�(‰OØØÐØ  ™?ò 	7‰KˆD�%Ø�vŠ~Ø'+Ð$Ø�w‹Ø ×'Ñ'¨¨u¨Õ6ð		7ô
  Ð 0Ó1ˆˆhŠð
2ð ÐÑ#7ð&Ø!Ð"5Ñ6ñ&7ˆÐ!Ò"ð $8Ðr'   c           
   #   ó^  ‡ ‡‡K  — ˆ ˆˆfd„}‰j                   }‰j                  }‰j                  }‰j                  }‰j	                  «       }‰j                  «       }	||z   }
||	z   }g }dd||f|dfdd||f||fdd||	fd|fdd||	f|
|ffD �]  \  }}}}}|r
g d	¢}|\  }}n	g d
¢}|\  }}|D �cg c]  } |d|› d|› �|«      ‘Œ }}t        d„ |D «       «      sŒNt        ‰ |||«       t        |g d¢«      D ]˜  \  }}|j                  sŒ||_
        ||_        |r*|xj                  |||j                  «       z
  z  z  c_        n)|xj                  |||j                  «       z
  z  z  c_
        t        ‰ ||| |dv «       |j                  |«       Œš �Œ d||ddfd|||
dfd||d|fd|||
|ffD ]a  \  }}}}} ||||f«      }|j                  sŒ!||_
        ||_        t        ‰ ||dd|v «       t        ‰ ||dd|v «       |j                  |«       Œc |D ]  }t!        ‰ ‰|«      –— Œ yc c}w ­w)z›Yield laid-out margin boxes for this page.

    ``state`` is the actual, up-to-date page-state from
    ``context.page_maker[context.current_page]``.

    c                 ó  •— ‰
j                  ‰j                  | «      }|€t        ‰j                  «      }t	        || «       t        j                  | |«      }|d   dv|_        |j                  rÞt        j                  ‰«      }|\  }}}}|j                  t        «       «       t        j                  ||j                  «       t        j                  |j                  |||‰
j                  ‰
j                   ‰
j"                  ‰
‰«	      |_        t        j&                  |«       t        j(                  |«       t        j*                  |«      }t-        ||«       |j                  s&dx|_        |_        dD ]  }	|j3                  |	«       Œ |S )aa  Return a margin box with resolved percentages.

        The margin box may still have 'auto' values.

        Return ``None`` if this margin box should not be generated.

        :param at_keyword:
            Which margin box to return, e.g. '@top-left'
        :param containing_block:
            As expected by :func:`resolve_percentages`.

        Úcontent)ÚnormalÚinhibitÚnoner   )ÚtopÚrightÚbottomÚleft)Ú	style_forÚ	page_typer   r‡   rŒ   r   Ú	MarginBoxro   ÚcopyÚdeepcopyr…   Úsetr	   Úupdate_countersÚcontent_to_boxesÚget_image_from_uriÚtarget_collectorÚcounter_styleÚchildrenÚprocess_whitespaceÚprocess_text_transformÚcreate_anonymous_boxesr   rU   rC   Ú_reset_spacing)Ú
at_keywordÚcontaining_blockr‡   rB   Úmargin_stateÚquote_depthÚcounter_valuesÚcounter_scopesÚ_page_groupsr   rA   rƒ   Ústates             €€€r%   Úmake_boxz#make_margin_boxes.<locals>.make_boxl  s[  ø€ ð ×!Ñ! $§.¡.°*Ó=ˆØˆ=ä" 4§:¡:Ó.ˆEÜ(¨°
Ô;Ü�o‰o˜j¨%Ó0ˆð ! Ñ+ð 4)ð )ˆÔð ×ÒäŸ=™=¨Ó/ˆLØHTÑEˆK˜¨¸à×!Ñ!¤#£%Ô(Ü×!Ñ! ,°·	±	Ô:Ü ×1Ñ1Ø—	‘	˜3 ¨^Ø×*Ñ*¨G×,DÑ,DØ×%Ñ% w°ó6ˆCŒLô ×$Ñ$ SÔ)Ü×(Ñ(¨Ô-Ü×.Ñ.¨sÓ3ˆCÜ˜CÐ!1Ô2Ø×ÒØ%&Ð&ˆCŒI˜œ
Ø:ò )�Ø×"Ñ" 4Õ(ð)àˆ
r'   r“   Fr   r•   r–   Tr”   )r“   Úmiddler•   )r–   Úcenterr”   ú@ú-c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )ro   )re   rB   s     r%   rg   z$make_margin_boxes.<locals>.<genexpr>¼  s   è ø€ Ò:¨�3×#Õ#Ñ:ùs   ‚)r   g      à?r   )r“   r–   z@top-left-cornerz@top-right-cornerz@bottom-left-cornerz@bottom-right-cornerN)rD   rE   rV   rW   Úborder_widthÚborder_heightÚanyr~   Úzipro   Ú
position_xÚ
position_yÚmargin_heightÚmargin_widthrm   r…   Úmargin_box_content_layout)rA   rƒ   r®   r¯   rD   rE   rV   rW   Úmax_box_widthÚmax_box_heightÚ
page_end_xÚ
page_end_yÚgenerated_boxesÚprefixrj   r¨   r¹   rº   ÚsuffixesÚfixed_outerÚvariable_outerÚsuffixrp   rB   Úoffsetr§   Úcb_widthÚ	cb_heights   ```                         r%   Úmake_margin_boxesrË   d  s  úè ø€ ö,ð\ —‘€JØ×&Ñ&€MØ×"Ñ"€KØ×$Ñ$€LØ×%Ñ%Ó'€MØ×'Ñ'Ó)€Nð ˜}Ñ,€JØ˜nÑ,€Jð €Oð 
�˜ zÐ2Ø˜ð	à	�5˜=¨-Ð8Ø˜ð	%à	�˜ ^Ð4Øˆzð	à	�$˜ ~Ð6Ø˜
ð	$ð	Gó &(ÑBˆ�Ð*¨J¸
ñ Ú2ˆHØ*:Ñ'ˆK™â2ˆHØ*:Ñ'ˆN˜Kð #ö$àñ �q˜˜  & Ð*Ð,<Õ=ð$ˆ
ð $ô Ñ:¨zÔ:Ô:Øä"Ø�Z ¨>ô	;ä˜zª;Ó7ò 	(‰KˆC�Ø×#Ò#ØØ'ˆCŒNØ'ˆCŒNÙØ—’ &Ø" S×%6Ñ%6Ó%8Ñ8ñ#:ñ :–ð —’ &Ø" S×%5Ñ%5Ó%7Ñ7ñ#9ñ 9•ä#Ø˜˜k¨x¨<Ø˜/Ð)ô+ð ×"Ñ" 3Õ'ò	(ð1&(ðV 
˜[¨*°a¸Ð;Ø	˜l¨J¸
ÀAÐFØ	 ¨]¸A¸zÐJØ	 ¨}Ø˜
ð	$ð	Dò $Ñ?ˆ
�H˜i¨°Zñ �z H¨iÐ#8Ó9ˆØ×ÒØØ#ˆŒØ#ˆŒÜØ�S˜) T¨5°JÐ+>ô	@äØ�S˜( E¨6°ZÐ+?ô	Aà×Ñ˜sÕ#ð!$ð$ ò <ˆÜ'¨°°sÓ;Ó;ñ<ùòY$ùs   …B)H-Â.H(ÃE)H-c                 óÖ  — g }t        | |t         dd||ddddd¬«      \  }}}}}}|�J ‚|D ]  }t        | |||dd¬«       Œ |j                  d   }|dv r”|j                  rˆ|j                  d   }	|j                  d	   }
|	j
                  }|
j
                  |
j                  «       z   }||z
  }|j                  |z
  }|d
k(  r|dz  }|j                  D ]  }|j                  d|«       Œ |S )u<   Layout a margin boxâ€™s content once the box has dimensions.NTF)
Úbottom_spaceÚ
skip_stackÚpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styleÚdiscardÚ	max_linesr   ©rÍ   rÎ   Úvertical_align)r°   r•   éÿÿÿÿr°   r   )	r   r   r   r‡   r¢   rº   r»   rC   Ú	translate)rA   rƒ   rB   Úpositioned_boxesÚ	resume_atÚ	next_pageÚ_Úabsolute_boxrØ   Úfirst_childÚ
last_childr“   r•   Úcontent_heightrÈ   Úchilds                   r%   r½   r½   é  s!  € àÐÜ)?Ø�¤C 4°DÈØ'Ð5EØ°4È$Ø ô	*'Ñ&€Cˆ�I˜q ! Qð
 ÐÐÐØ(ò ˆÜØ�\ 3Ð(8ÀqØö	ðð
 —Y‘YÐ/Ñ0€NàÐ-Ñ-°#·,²,Ø—l‘l 1‘oˆØ—\‘\ "Ñ%ˆ
Ø×$Ñ$ˆð ×&Ñ&¨×)AÑ)AÓ)CÑCˆØ #™ˆØ—‘˜nÑ,ˆØ˜XÒ%Ø�a‰KˆFØ—\‘\ò 	'ˆEØ�O‰O˜A˜vÕ&ð	'à€Jr'   c                 ó@  — || j                   z
  }| j                  dk(  rN| j                  dk(  rd| _        | j                  dk(  rd| _        || j                  z
  | j                  z
  | _        n¢| j                  | j                  cxk(  rdk(  r"n n|| j                  z
  dz  x| _        | _        na| j                  dk(  r"|| j                  z
  | j                  z
  | _        n0| j                  dk(  r!|| j                  z
  | j                  z
  | _        | j	                  «        y)a¾  Take a :class:`OrientedBox` object and set either width, margin-left
    and margin-right; or height, margin-top and margin-bottom.

    "The width and horizontal margins of the page box are then calculated
     exactly as for a non-replaced block element in normal flow. The height
     and vertical margins of the page box are calculated analogously (instead
     of using the block height formulas). In both cases if the values are
     over-constrained, instead of ignoring any margins, the containing block
     is resized to coincide with the margin edges of the page box."

    https://drafts.csswg.org/css-page-3/#page-box-page-rule
    https://www.w3.org/TR/CSS21/visudet.html#blockwidth

    r3   r   r   N)r    r)   r!   r"   rN   )rB   Úcontaining_block_sizeÚ	remainings      r%   Úpage_width_or_heightrç   	  sæ   € ð &¨×(?Ñ(?Ñ?€IØ
‡y�y�FÒØ�<‰<˜6Ò!ØˆCŒLØ�<‰<˜6Ò!ØˆCŒLØ §¡Ñ,¨s¯|©|Ñ;ˆ�	Ø	�‰˜Ÿ™Ô	/¨Õ	/Ø'0°3·9±9Ñ'<ÀÑ&AÐAˆŒ�s•|Ø	�‰˜Ò	Ø  3§9¡9Ñ,¨s¯|©|Ñ;ˆ�Ø	�‰˜Ò	Ø  3§9¡9Ñ,¨s¯|©|Ñ;ˆŒØ×ÑÕ r'   c                 ó0   — t        t        || «      |«       y r   )rç   rS   )rB   rA   Úcontaining_block_widths      r%   Ú
page_widthrê   (  s   € äœ w°Ó4Ð6LÕMr'   c                 ó0   — t        t        || «      |«       y r   )rç   r?   )rB   rA   Úcontaining_block_heights      r%   Úpage_heightrí   -  s   € äœ W¨cÓ2Ð4KÕLr'   c                 óª  — | j                  |«      }|j                  |d<   t        j                  ||«      }|j                  d   }t        ||«       d|_        d|_        |\  }	}
t        || |	«       t        || |
«       |dk(  rH|| j                   j                  d<   |j                  |j                  f| j                   j                  d<   |j                  «       |_        |j                  «       |_        |j                  |j                  z   | _        |}| j                  |d«      }t        j                   ||«      }t        ||«       |j                  «       |_        | j                  |_        |j"                  r|}|j%                  g «      }t'        |t        j(                  «      sJ ‚| j+                  «        || _        g | _        || _        | j2                  }g | _        t5        |«      D ]V  \  }}| j6                  j9                  |«       | j;                  |«      }|sŒ5|dk7  sŒ;| j=                  |«       ||d | _         n d	}g }g }g }t?        t@        «      }i }| jB                  jE                  «       }|| _!        |D ]É  \  }}}}|r| j+                  |«       |j                  «       |_        |jG                  «       r)tI        | ||||d|«      \  }}||   j9                  |«       n%|jK                  «       sJ ‚tM        | |||d|«      \  }}|j9                  |«       d
}|r| jO                  ||||«       |sŒº| jQ                  «        ŒË |jS                  «       D ]  \  }} | | jT                  |<   Œ |}!|}"tW        | |d||||||«	      \  }}}#}$}$}$|s‹|rJ ‚|!jY                  «       x}x}%}!|"}|rEt[        |«      dk(  r7|jS                  «       \  \  }&}|j\                  |&   |}%}|rt[        |«      dk(  rŒ7g |%_.        d	|%_/        tW        | |!d|"|d	|||«	      \  }}$}$}$}$}$|"}||j\                  z   |_.        ta        jb                  |jY                  «       «      }tW        | |td         d|jf                  d	||¬«      d   }|ji                  |jk                  «        ¬«       |D �'cg c]*  }'|'jl                  j                  d   dk(  r|'jl                  ‘Œ, c}'|_7        |D ]  }(tq        | |(||dd¬«       Œ | jQ                  «        ||g|_.        ts        |d«       ta        jt                  ||«       |d   })| jv                  }*| jx                  }+|+|dz
     d   },g }-g }.|+d|dz
   D ]J  \  }$}$}$}$}/|-j{                  |/j}                  dg «      «       |.j{                  |/j}                  dg «      «       ŒL |j                  d	¬«      D �]ï  }0|0j                  d   }1|1r@|1|-vr<|,d   j9                  |1«       |-j9                  |1«       |*j�                  |1|)|dz
  |+«       |0j‚                  r(|*j„                  j}                  |0j‚                  df«      }2nd}2|2€ŒŽd
}3t‡        |2«      }4|4|.v}5|5r/|,d   j9                  |4«       |.j9                  |4«       |dz
  |2_D        |2jŠ                  r2|)|2jŒ                  k7  rt�        jX                  |)«      |2_F        d
|2_E        d	}3|2j�                  }6|6rSd|6v rd	|,d<   |5rH|)|2jŒ                  k7  r9t�        jX                  |)«      |2_F        |6D ]  }7|)j}                  |7d«      }8|8€Œd	}3 n |2j’                  }9|9jS                  «       D ]H  \  }:};d|;vrŒ|*j”                  j}                  |:d«      }<|<jˆ                  }=|=dk\  sŒ9|:|-v sŒ>d	|+|=   d   d<   ŒJ |3s�ŒÚd	|,d<   |2j—                  |)«       �Œò |j"                  r}|+|dz
     d   }#|||#fS c c}'w )aÕ  Take just enough content from the beginning to fill one page.

    Return ``(page, finished)``. ``page`` is a laid out PageBox object
    and ``resume_at`` indicates where in the document to start the next page,
    or is ``None`` if this was the last page.

    :param int page_number:
        Page number, starts at 1 for the first page.
    :param resume_at:
        As returned by ``make_page()`` for the previous page, or ``None`` for
        the first page.

    ÚoverflowÚsizer   r   rB   Úareaz	@footnoteNTF)rÍ   rÎ   r¨   rÏ   rÐ   rÑ   )ÚdyÚpositionÚfixedr×   rÙ   ÚanchorsÚcontent_lookups)ÚplaceholdersÚanchorr�   r„   Úpages_wantedÚcontent_changed)Lr—   Úviewport_overflowr   ÚPageBoxr‡   r   r¹   rº   rê   rí   Úinitial_page_sizesrU   rC   Úcontent_box_xÚcontent_box_yÚpage_bottomÚFootnoteAreaBoxr   Úcopy_with_childrenÚ
isinstanceÚBlockLevelBoxÚcreate_block_formatting_contextÚcurrent_pageÚcurrent_page_footnotesÚcurrent_footnote_areaÚreported_footnotesÚ	enumerateÚ	footnotesr…   Úlayout_footnoteÚreport_footnoter   ÚlistÚbroken_out_of_flowÚvaluesÚ
is_floatedr   Úis_absolutely_positionedr   Úadd_broken_out_of_flowÚfinish_block_formatting_contextÚitemsÚ_excluded_shapesr   r›   Úlenr¢   Úforce_fragmentationr	   r¥   r   rƒ   rÚ   r»   Ú_boxrÑ   r   rŒ   r�   r    Ú
page_makerÚextendÚgetÚdescendantsÚcache_target_page_countersÚmissing_linkÚcounter_lookup_itemsÚidÚpage_maker_indexÚpendingÚcached_page_counter_valuesrš   Úmissing_countersÚmissing_target_countersÚtarget_lookup_itemsÚparse_again)>rA   Úroot_boxr˜   rÜ   Úpage_numberÚ
page_stater‡   rƒ   Údevice_sizerÉ   rÊ   Úinitial_containing_blockÚfootnote_area_styleÚfootnote_areaÚprevious_resume_atr	  ÚiÚreported_footnoterï   rÏ   rÒ   rÛ   Úout_of_flow_boxesÚexcluded_shapesr  Úcontext_out_of_flowrB   r¨   Úcontext_boxrÎ   Úout_of_flow_boxÚout_of_flow_resume_atÚshapesÚinitial_root_boxÚinitial_resume_atrÝ   rÞ   ÚparentÚskipÚplaceholderrß   Úpage_counter_valuesr    r  Úremake_stateÚcached_anchorsÚcached_lookupsÚx_remake_staterã   rø   Úcounter_lookupÚcall_parse_againÚcounter_lookup_idÚrefresh_missing_countersr%  Úcounter_nameÚcounter_valueÚtarget_missingÚanchor_nameÚmissed_countersÚitemr"  s>                                                                 r%   Ú	make_pagerN  2  sâ  € ð ×Ñ˜iÓ(€Eð !×2Ñ2€Eˆ*ÑÜ�=‰=˜ EÓ*€Dà—*‘*˜VÑ$€Kä˜˜kÔ*à€D„OØ€D„OØ%Ñ€HˆiÜˆt�W˜hÔ'Ü��g˜yÔ)à�aÒØ6Aˆ×Ñ×,Ñ,¨UÑ3Ø8<¿
¹
ÀDÇKÁKÐ7Pˆ×Ñ×,Ñ,¨VÑ4à×,Ñ,Ó.€HÔØ×,Ñ,Ó.€HÔØ"×-Ñ-°·±Ñ;€GÔØ#Ðà!×+Ñ+¨I°{ÓCÐÜ×)Ñ)¨$Ð0CÓD€MÜ˜ tÔ,Ø#×1Ñ1Ó3€MÔØ&×2Ñ2€MÔà‡‚Ø&ÐØ×.Ñ.¨rÓ2ˆô �h¤× 3Ñ 3Ô4Ð4Ð4Ø×+Ñ+Ô-Ø&€GÔØ%'€GÔ"Ø$1€GÔ!à ×3Ñ3ÐØ!#€GÔÜ )Ð*<Ó =ò ÑˆÐØ×Ñ× Ñ Ð!2Ô3Ø×*Ñ*Ð+<Ó=ˆÚ˜˜Q›Ø×#Ñ#Ð$5Ô6Ø);¸A¸BÐ)?ˆGÔ&Ùðð €MØÐØÐØÐÜ!¤$Ó'€OØÐØ!×4Ñ4×;Ñ;Ó=ÐØ!3€GÔØ:Mò 6Ñ6ˆÐ˜{¨JÙØ×3Ñ3°KÔ@Ø!×/Ñ/Ó1ˆŒØ�>‰>ÔÜ5AØ˜Ð.Ð0@Ø  ! Zó61Ñ2ˆOÐ2ð ˜KÑ(×/Ñ/°Õ@à×/Ñ/Ô1Ð1Ð1Ü5HØ˜Ð.Ð0@À!Øó6Ñ2ˆOÐ2ð 	× Ñ  Ô1ØˆÙ Ø×*Ñ*Ø Ð&6Ð8MôOâØ×3Ñ3Õ5ð)6ð.  /×4Ñ4Ó6ò 7Ñˆ�VØ06ˆ× Ñ  Ò-ð7ð  ÐØ!ÐÜ.@Ø�˜1˜iÐ)AØÐ'Ð)9Ð;Ló/NÑ+€Hˆi˜ A q¨!ñ ñ !Ð Ð Ø*:×*CÑ*CÓ*EÐEˆÐEˆfÐ'Ø&ˆ
ÙœS ›_°Ò1Ø",×"2Ñ"2Ó"4ÑÑˆT�:ØŸ,™, tÑ,¨c�ˆCñ œS ›_°Ó1ð ˆŒØ%)ˆÔ"Ü"4ØÐ% qÐ*;Ð=UØÐ"Ð$4Ð6Gó#IÑˆ�!�Q˜˜1˜að &ˆ	Ø)¨H×,=Ñ,=Ñ=€HÔä×0Ñ0°×1GÑ1GÓ1IÓJ€MÜ&Ø�¬c¨T¸dØ&×+Ñ+¸4Ø'Ð5EôGð HIñJ€Mð ×Ñ × ;Ñ ;Ó =Ð=ÐÔ>ð -=ö:Ø(Ø×Ñ×!Ñ! *Ñ-°Ò8ð 	×Óò:€DÔð )ò ˆÜØ�\ 4Ð)9ÈØö	ðð
 ×+Ñ+Ô-à˜}Ð-€D„Mô % U¨DÔ1Ü	×Ñ˜* eÔ,Ø$ Q™-Ðð ×/Ñ/ÐØ×#Ñ#€Jð ˜k¨A™oÑ.¨rÑ2€Lð
 €NØ€NØ(2Ð3C°KÀ!±OÐ(Dò IÑ$ˆˆAˆq�!�^Ø×Ñ˜n×0Ñ0°¸BÓ?Ô@Ø×Ñ˜n×0Ñ0Ð1BÀBÓGÕHðIð ×!Ñ!¨tÐ!Ó4ó M@ˆà—‘˜XÑ&ˆÙ�f NÑ2Ø˜Ñ#×*Ñ*¨6Ô2Ø×!Ñ! &Ô)à×7Ñ7ØÐ+¨[¸1©_¸jôJð ×Òà-×BÑB×FÑFØ×#Ñ# YÐ/ó1‰Nð "ˆNð Ñ%Ø$Ðô !# >Ó 2ÐØ'8ÀÐ'NÐ$Ù'ØÐ.Ñ/×6Ñ6Ð7HÔIØ×%Ñ%Ð&7Ô8Ø2=À±/�Ô/ð ×%Ò%Ø'Ø&×AÑAòBä@DÇÁØ+óA-�NÔ=à).�Ô&Ø#'Ð ð
  .×>Ñ>ÐÙØÐ.Ñ.Ø37�L Ñ0Ù+Ð0CØ&×AÑAò1Bô Ÿ™Ð&9Ó:ð #Ô=à(8ò "˜Ø(;×(?Ñ(?Ø(¨$ó)0˜à(Ñ4Ø/3Ð,á!ð"ð ,×CÑCˆNØ0>×0DÑ0DÓ0Fò LÑ,�˜_Ø /Ñ1Øà'×;Ñ;×?Ñ?Ø ó'�à#'×#8Ñ#8Ð Ø# qÓ(¨[¸NÒ-JØGK�JÐ/Ñ0°Ñ4°^ÒDðLó  Ø26�Ð.Ñ/Ø×*Ñ*Ð+>Ö?ð[M@ð^ ‡‚Ø&ˆ	Ø˜{¨Q™Ñ/°Ñ2ˆ	à�˜IÐ%Ð%ùòk:s   Ò"/_c                 ó"  — |j                  | «       |j                  | |j                  |j                  |j                  ¬«       |j	                  «       D ]8  \  }}|sŒ	|| k(  sŒ|j                  |||j                  ||j                  ¬«       Œ: y)zASet style for page types and pseudo-types matching ``page_type``.)Úrootr<  Úbase_url)rˆ   rP  r<  rQ  N)Úadd_page_declarationsÚset_computed_stylesÚetree_elementrQ  Úget_cascaded_styles)r˜   Úhtmlr—   Úelementrˆ   s        r%   Úset_page_type_computed_stylesrX  0  s•   € à×#Ñ# IÔ.ð ×!Ñ!Øð ×Ñ¨×(:Ñ(:Ø—‘ð "ô  ð !*× =Ñ =Ó ?ò (Ñˆ�Ú˜7 iÓ/Ø×)Ñ)Ø [à×'Ñ'°ØŸ™ð	 *õ (ñ(r'   c                 ód   — |sy|j                  «       \  \  }}| �|| vry|€yt        | |   |«      S )NTF)r  Ú_includes_resume_at)rÜ   Úpage_group_resume_atÚpage_child_indexÚpage_child_resume_ats       r%   rZ  rZ  F  sN   € ÙØØ0D×0JÑ0JÓ0LÑ-Ñ,ÐÐ+ØÐÐ,°IÑ=ØØÐ#ØÜ˜yÐ)9Ñ:Ð<PÓQÐQr'   c                 óö  — t        | «      }t        | d d  «      D ]6  \  }}t        ||d   «      r|dxx   dz  cc<   Œ#| j                  ||z
  «       Œ8 |s)|r|d   dk(  s|d   s|d   S | r| d   d   |d   k(  r|d   S t	        j
                  |«      xs dd ix}}	|}
	 t        |j                  «       «      d   \  }}|
}|
j                  |   }
|€n|}Œ6|r|j                  d   S 	 |
j                  d   |d   k(  r| j                  |d   d|	g«       |d   S t        |
t        j                  «      s|d   S t        |
j                  «      D ]'  \  }}|j                  «       sŒ|d i||<   ||   }|}|}
 n |d   S Œ•)Nr   r   Úbreakr·   rƒ   rÙ   r   )r  r
  rZ  Úpoprš   r›   r†   r  r¢   r‡   r…   r  r   Ú	ParentBoxÚis_in_normal_flow)Úpage_groupsrÜ   rÝ   r)  r   Úpage_groups_lengthr1  Ú
page_groupÚcurrent_resume_atr[  Úcurrent_elementÚchild_indexÚchild_resume_atÚparent_elementrã   s                  r%   Ú_update_page_groupsrk  Q  sé  € ô ˜[Ó)ÐÜ" ;©q >Ó2ò 4‰ˆˆ:Ü˜y¨*°Q©-Ô8Ø�q‹M˜QÑŒMà�O‰O˜AÐ 2Ñ2Õ3ð	4ñ Ù˜) GÑ,°Ò5¸iÈÒ>Oà˜VÑ$Ð$Ù˜; r™?¨1Ñ-°¸6Ñ1BÒBà˜VÑ$Ð$ô 04¯}©}¸YÓ/GÒ/TÈAÈtÈ9ÐTÐÐ,Ø€OØ
Ü',Ð->×-DÑ-DÓ-FÓ'GÈÑ'KÑ$ˆ�_Ø(ˆØ)×2Ñ2°;Ñ?ˆØÐ"ØØ+Ðð ñ à×#Ñ# FÑ+Ð+ð Ø× Ñ  Ñ(¨I°fÑ,=Ò=Ø×Ñ 	¨&Ñ 1°1Ð6JÐKÔLØ˜VÑ$Ð$Ü˜/¬5¯?©?Ô;à˜VÑ$Ð$Ü! /×":Ñ":Ó;ò 
	%‰HˆAˆuØ×*Ñ*Ô,ØØ./°¨YÐ˜kÑ*Ø 1°+Ñ >ÐØˆKØ#ˆOÙð
	%ð ˜VÑ$Ð$ð# r'   c                 óV  — |j                   }||    \  }}}}}	t        j                  |«      }|d   dv r|d   }
n-|d   dv r$|j                  d   dk(  }|d   dk(  }||z  rdnd}
nd	}
t	        |
dk(  xr |xs |
dk(  xr | xs |j
                  xr |d	u «      }|rdnd}|d
   }t        |||||«      }t        d„ |D «       «      }t        |||| |«      }t        |||j                  «       |d   dk7  xs |d   |_        d|_        | dz   }t        ||||||«      \  }}}|sJ ‚| }| dz   t        |«      k\  rd}n(|| dz      \  }}}}}	||k7  xs ||k7  xs ||k7  xs ||k7  }|rCddg g dœ}|d	u|d<   |||||f}| dz   t        |«      k\  r|j                  |«       ||fS ||| dz   <   ||fS )a¨  Return one laid out page without margin boxes.

    Start with the initial values from ``context.page_maker[index]``.
    The resulting values / initial values for the next page are stored in
    the ``page_maker``.

    As the function's name suggests: the plan is not to make all pages
    repeatedly when a missing counter was resolved, but rather re-make the
    single page where the ``content_changed`` happened.

    r_  )r–   r”   )ÚrectoÚversoÚ	directionÚltrrn  r”   r–   Né   c              3   ó,   K  — | ]  \  }}}||f–— Œ y ­wr   r=   )re   r   r   rÞ   s       r%   rg   zremake_page.<locals>.<genexpr>­  s   è ø€ ÒC¡^ T¨5°!�D˜%”=ÑCùs   ‚r·   rƒ   Fr   T)rú   rù   rõ   rö   rú   )r  rš   r›   r‡   Úboolr	  rk  r†   r   rX  r—   Úforced_breakÚmargin_clearancerN  r  r…   )r   rA   r)  rV  r  rÜ   rÝ   Ú
right_pager+  rÞ   Únext_page_sideÚdirection_ltrÚbreak_versor   r   rc  r   r   r˜   r*  rƒ   Úpage_maker_next_changedÚnext_resume_atÚnext_next_pageÚnext_right_pageÚnext_page_stater@  rM  s                               r%   Úremake_pager  Œ  sw  € ð ×#Ñ#€JØ6@ÀÑ6GÑ3€Iˆy˜* j°!ô —‘˜zÓ*€JØ�ÑÐ.Ñ.Ø" 7Ñ+‰Ø	�7Ñ	Ð1Ñ	1Ø Ÿ™ {Ñ3°uÑ<ˆØ Ñ(¨GÑ3ˆØ$1°KÒ$?™ÀV‰àˆÜØ	˜6Ñ	!Ò	0 jò 	;Ø	˜7Ñ	"Ò	5¨: ~ò	;à	×	#Ñ	#Ò	9¨	°TÐ(9ó<€Eñ !‰7 f€DØ˜Q‘-€KÜ˜{¨I°yÀ(ÈEÓR€DÜÑC°{ÔCÓC€FÜ˜˜u d¨E°6Ó:€IÜ! )¨T°7×3DÑ3DÔEà% gÑ.°%Ñ7ÒL¸9ÀVÑ;L€GÔØ$€GÔð ˜!‘)€KÜ!*Ø�˜9 i°¸jó"JÑ€Dˆ)�YáÐˆ9Ø�€Jð ˆq�y”C˜
“OÒ#à"&Ñð �u˜q‘yÑ!ñ 	Lˆ˜¨¸È!ð ˜iÑ'ò *Ø˜iÑ'ò*à˜zÑ)ò*ð ˜zÑ)ð	 	 ñ ð  %Ø!ØØ!ñ	
ˆð +4¸4Ð*?ˆÐ&Ñ'Ø˜) Z°¸\ÐIˆØ�1‰9œ˜J›Ò'Ø×Ñ˜dÔ#ð �ˆ?Ðð %)ˆJ�u˜q‘yÑ!à�ˆ?Ðr'   c              #   ó"  K  — d}d}	 | j                   |   d   }t        |«      dk(  s
|d   s|d   rOt        j                  d|dz   «       d|d<   d|d<   g |d	<   g |d
<   t	        || ||«      \  }}| j
                  }|–— n7t        j                  d|dz   «       | j                   |dz      d   }d}||   –— |dz  }|€N|sL| j                   d|dz    | _         | j                  j                  «        | j
                  j                  «        y�Œ­w)zaReturn a list of laid out pages without margin boxes.

    Re-make pages only if necessary.

    r   NrÙ   rú   rù   z"Step 5 - Creating layout - Page %dr   Frõ   rö   z/Step 5 - Creating layout - Page %d (up-to-date))r  r  r
   Úinfor  r	  r  Úclear)	rA   r)  rV  r„   r1  r	  r@  rƒ   rÜ   s	            r%   Úmake_all_pagesrƒ  Þ  sB  è ø€ ð 	
€AØÐØ
Ø×)Ñ)¨!Ñ,¨RÑ0ˆÜ�‹J˜!ŠOØÐ.Ò/Ø˜^Ò,Ü× Ñ Ð!EÀqÈ1ÁuÔMà.3ˆLÐ*Ñ+Ø+0ˆL˜Ñ(Ø&(ˆL˜Ñ#Ø.0ˆLÐ*Ñ+Ü)¨!¨W°hÀÓE‰OˆD�)Ø!(×!;Ñ!;ÐØ‹Jä× Ñ ØAÀ1ÀqÁ5ôJà×*Ñ*¨1¨q©5Ñ1°!Ñ4ˆIØ!%ÐØ˜‘(ŠNà	ˆQ‰ˆØÐÑ%7à!(×!3Ñ!3°F°Q¸±UÐ!;ˆGÔØ×&Ñ&×,Ñ,Ô.Ø×&Ñ&×,Ñ,Ô.Øñ7 ùs   ‚DD)0Ú__doc__rš   Úcollectionsr   r   Úmathr   Úcssr   Úformatting_structurer   r	   Úloggerr
   Úabsoluter   r   Úblockr   r   Úfloatr   Úmin_maxr   r   Úpercentr   Ú	preferredr   r   r   r   r?   rS   rm   r~   rŒ   rË   r½   rç   rê   rí   rN  rX  rZ  rk  r  rƒ  r=   r'   r%   ú<module>r�     sÓ   ðÙ -ã ß /Ý å  ß /Ý $ß :ß =Ý ß @Ý (ß ;á�jÒ"NÓO€÷Kñ Kô4�+ô ô:&�Kô &òDD!òNT%òn7ò2B<òJò@!ð> ñNó ðNð ñMó ðMò{&ò|(ò,Rò8%òvOód#r'   