a
    ¥Q•hÉÕ  ã                   @   sÞ   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZmZ dd
lmZmZ ddlmZ dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd'd#d$„Zd%d&„ Z d"S )(z*Layout for grid containers and grid-items.é    )ÚcountÚcycle)Úinfé   )Ú	Dimension)Úboxes)ÚLOGGERé   )Ú
percentageÚresolve_percentages)Úmax_content_widthÚmin_content_width)Úfind_in_flow_baselinec                 C   s   t | tƒo| jdkS ©NÚfr©Ú
isinstancer   Úunit©Zsizing© r   úO/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/layout/grid.pyÚ
_is_length   s    r   c                 C   s   t | tƒo| jdkS r   r   r   r   r   r   Ú_is_fr   s    r   c                 C   s   | || k o|| | k S ©Nr   )Z
position_1Zsize_1Z
position_2Zsize_2r   r   r   Ú
_intersect   s    
þr   c                 C   s@   |D ]6\}}}}t | |||ƒ}	t ||||ƒ}
|	r|
r dS qdS )NTF)r   )ÚxÚyÚwidthÚheightÚ	positionsZfull_xZfull_yZ
full_widthZfull_heightZx_intersectZy_intersectr   r   r   Ú_intersect_with_children   s    r    c                 C   sô   | \}}}|rJ|d u rJ|d u rJt |ƒD ]\}} |› d|› �| v r& qJq&d}|d urÜ|d u rÜ|d u rl|d }np|dkrxdnd}t |d d |… ƒD ](\}} || v rª||8 } qÄ|dkrŽ qÄqŽ|t|ƒ7 }|dkrÜt|ƒd | }|d urèd }||||fS )Nú-r	   r   éÿÿÿÿ)Ú	enumerateÚabsÚlen)ÚlineÚlinesÚsideÚspanÚnumberÚidentÚcoordÚstepr   r   r   Ú	_get_line%   s,    

r.   c                 C   sÒ  | dks| d dkr,|dks(|d dkr,d S | dkr^t | |dƒ\}}}}|d urj|pVd}|}nd}d  }}|dk�r t ||dƒ\}}}}	|d urð|p–d }}
|}|d urît||d d … dd�D ]$\}}||v rØ|
d8 }
|
dkrÀ qîqÀ||
7 }n|d u�r|	| }|d u �r¤|d u �r |	| }nv|�p(d}|	dk�r�t||	d d d… ƒ}|D ]8\}}||v �rh|d8 }|dk�rN|	d | } �q–�qN| }n| }|	| }nd}|dk �r¼| }||8 }|dk�rÊd}||fS )	NÚautor   r)   Ústartr	   Úend©r0   r"   )r.   r#   )r0   r1   r'   r)   r*   r+   r,   ÚsizeZ
span_identZ	coord_endZspan_numberr&   Úiterabler   r   r   Ú_get_placementA   s\    
 












r5   c                 C   s    d}| d dkr| d pd}|S )Nr	   r   r)   r   )Zplacer)   r   r   r   Ú	_get_spany   s    r6   c                 C   sâ  t ƒ }| ¡ D ]v\}}	}
}|dkrTt|	|g| ¢R Ž r„t|||
 ƒD ]}| |¡ qBqt||
g| ¢R Ž rt|	|	| ƒD ]}	| |	¡ qtq|�r<tƒ D ]¦}||v r q’|dkrÀtd |d d f||ƒ}nJ|d dksÐJ ‚|dksè|d dksèJ ‚t|ƒ}t|d |d | d f|ƒ}t|d |d |d  ƒ}t |ƒ|@ s’|  S q’n¢t|�pHdgƒd }|dk�rptd |d d f||ƒS |d dk�s‚J ‚|dk�sž|d dk�sžJ ‚t|d ƒD ]2}t|d |d d f|ƒ}|d |k�rª|  S �qªd S )NÚrowr/   r	   r   r)   )	ÚsetÚvaluesr   ÚrangeÚaddr   r5   r6   Úmax)Úfirst_placementÚsecond_startÚ
second_endÚsecond_tracksÚchildren_positionsÚ
first_flowÚdenseZoccupied_tracksr   r   r   r   ÚtrackZ	placementr)   ÚtracksZ	end_trackr   r   r   Ú_get_second_placement�   sN    
ÿÿ
ÿÿrF   c                 C   sJ   |  }}| d dkr$| dd … \}}|d dkr6d}nt |ƒrBd}||fS )Nr   zminmax()r	   úfit-content()r/   )r   )r3   Z
min_sizingZ
max_sizingr   r   r   Ú_get_sizing_functions³   s    rH   c           	      C   s  | dkrd} d| v r$t  d¡ g gS g }t| ƒD ]Ú\}}|d rà|d dkrÔ|dd … \}}t|tƒstt  d	¡ d}t|ƒD ]T}t|ƒD ]F\}}|d r¤| |¡ qˆt|ƒd rÀ|d
  |¡ qˆ| t	|ƒ¡ qˆq|n
| |¡ q0t|ƒd rü|d
  |¡ q0| t	|ƒ¡ q0|S )NÚnone)r   ÚsubgridzSubgrids are unsupportedr   r   zrepeat()r	   z6"auto-fit" and "auto-fill" are unsupported in repeat()r"   )
r   Úwarningr#   r   Úintr:   Úappendr%   ÚextendÚlist)	rE   Ztracks_listÚirD   Zrepeat_numberZrepeat_track_listÚ_ÚjZrepeat_trackr   r   r   Ú_get_template_tracks¾   s6    

ÿrS   c
           $      C   st  | dv sJ ‚|dv sJ ‚|dv s$J ‚|dv s0J ‚dgt |ƒ }
g }| dkrNdnd}|D ]z}|| }|dkrŒ|d	v s~|d d
krÆ| d¡ qVn:|dkrª|dv rÆ| d¡ qVn|dkrÆ|dv rÆ| d¡ qV| d¡ qVt|ƒD �]4\}}|sêqÚ|D �]}|dk�r |dv �rt||ƒ}n
t||ƒ}nNddlm} | ¡ }d|_d|_	|||t
 d |	dg g d�\}}}}}}| ¡ }|||| … D ]}||| 8 }�q~td|ƒ}tt|||| … |d�ƒ}dgt |ƒ }dd„ |D ƒ}|t |ƒ�pâd }|D ]`}|| \}}|}|| | }|| d }|| |k�r8|| | } || 8 }||8 }|||< �qê|�rÞ|�rÞdd„ |D ƒ}!|t |!ƒ�ptd }|!D ]`}|| \}}|}|| | }|| d }|| |k�rÊ|| | } || 8 }||8 }|||< �q||�rät|ƒD ] \}"} | |
|" k�rì| |
|"< �qìqîqÚt|
ƒD ]T\}}#| dk�rX|| d t
u �rX|| d |# || d< n|| |  |#7  < �qd S )N)Úminr<   )Ú	intrinsicúcontent-basedúmax-content)Úminimumúmin-contentrW   Úxyr   rT   r	   rU   ©rY   rW   r/   rG   TrV   )rY   rW   rW   )rW   r/   Fr   )rX   rY   ©Úblock_level_layout)Úbottom_spaceÚ
skip_stackÚcontaining_blockÚpage_is_emptyÚabsolute_boxesÚfixed_boxesr2   c                 S   s   g | ]\}}|r|‘qS r   r   ©Ú.0rR   Zaffectedr   r   r   Ú
<listcomp>#  s   z+_distribute_extra_space.<locals>.<listcomp>c                 S   s   g | ]\}}|s|‘qS r   r   rd   r   r   r   rf   3  s   r<   )r%   rM   r#   r   r   Úblockr]   ÚdeepcopyÚ
position_xÚ
position_yr   Úmargin_heightr<   rO   )$Zaffected_sizesZaffected_tracks_typesZsize_contributionÚtracks_childrenÚsizing_functionsÚtracks_sizesr)   Ú	directionÚcontextr`   Zplanned_increasesZaffected_tracksZaffected_size_indexÚ	functionsÚfunctionrP   ÚchildrenÚitemÚspacer]   rQ   ÚsizesZtracks_numbersZitem_incurred_increasesZaffected_tracks_numbersZdistributed_spaceZtrack_numberÚ	base_sizeÚgrowth_limitZitem_incurred_increaseZaffected_sizeÚlimitÚextraZunaffected_tracks_numbersÚkZincreaser   r   r   Ú_distribute_extra_spaceæ   s¶    
ÿ






ý
ÿÿ
ÿÿÿ
ÿ
ÿÿ
r|   Nc	           .         sÊ  ˆdv sJ ‚g }	|dkrdn|}
| D ]”\}}d }t |ƒrDt||
ƒ}n|dv sX|d dkr\d}d }t |ƒrtt||
ƒ}n |dv s�|d dks�t|ƒr”t}d ||fvrªt||ƒ}|	 ||g¡ q$dd„ tt|	ƒƒD ƒ}| ¡ D ]J\}\}}}}ˆdkrø||fn||f\}}|d	k�rqØ|||   |¡ qØt	|| |	ƒ}|D �]\}\}}}|�sN�q4ˆd
k�rVd	dl
m} d}|D ]ª}|| \}}}}t|||| … ƒ}| ¡ }d|_d|_tj |d¡}t||ƒ |j|_|j|_||_||_t }|ˆ ||d |dg g d�\}}}}}}t|| ¡ ƒ}�ql|dv �r*||d< |dv �r<||d	< d |v�r4t|ƒ|d	< �q4|dk�r„tdg‡ fdd„|D ƒ¢R Ž |d< nZ|dk�r²tdg‡ fdd„|D ƒ¢R Ž |d< n,|dk�rÞtdg‡ fdd„|D ƒ¢R Ž |d< |dk�rt‡ fdd„|D ƒƒ|d	< n2|dv �s|d dk�r6t‡ fdd„|D ƒƒ|d	< d |v�r4t|ƒ|d	< �q4t‡fdd„| ¡ D ƒƒ}|D �]ì}dd„ tt| ƒƒD ƒ}t| ¡ ƒ}|D ]„\} \}\}}}}ˆdk�rÀ||fn||f\}}||k�rÚ�qš| | | | d	 … D ]\}}t|ƒ�rî �qš�qî|||   |¡ �qštddd || |	|ˆˆ |ƒ
 tdd!d|| |	|ˆˆ |ƒ
 tddd|| |	|ˆˆ |ƒ
 |	D ]}d |v�rrt|ƒ|d	< �qrt| ¡ ƒ}|D ]„\} \}\}}}}ˆdk�rÆ||fn||f\}}||k�rà�q | | | | d	 … D ]\}}t|ƒ�rô �q �qô|||   |¡ �q td"dd|| |	|ˆˆ |ƒ
 td"dd|| |	|ˆˆ |ƒ
 �qn|	D ] }|d	 tu �rb|d |d	< �qb|dk�r”d }!n&|td#d„ |	D ƒƒ t|	ƒd	 |  }!|!d u�r2|!dk�r2|!t|	ƒ }"t|	ƒD ]N\} }|\}}||" |k�r||d< |!|| 8 }!n|d  |"7  < |!|"8 }!�qâtƒ }#|!d u�rT|!dk�rTd}$�nT|!d u�rLd$}%|%�sF|!}&d}'tt	|	| ƒƒ}|D ]<\} \}\}}t|ƒ�r‚|&|d 7 }&| |#v�r‚|'|j7 }'�q‚td	|'ƒ}'|&|' }(d}%tt	|	| ƒƒ}|D ]X\} \}\}}| |#v�rèt|ƒ�rè|(|j |d k �rè|# | ¡ |!|d 8 }!|!dk}%�qè�qb|(}$n\d}$t	|	| ƒ}|D ]H\}\}}t|ƒ�r^|jd	k�r–t|$|j|d  ƒ}$nt|$|d ƒ}$�q^tt	|	| ƒƒ}|D ]`\} \}\}}t|ƒ�rº| |#v�rº|$|j |d k�rº|!d u�r
|!|$|j 8 }!|$|j |d< �qº|jd% })|jd& }*ˆdk�oHt|)ƒd'd(h@ }+ˆd
k�obt|*ƒd'd(h@ },|+�sp|,�rÆ|!d u�rÆ|!dk�rÆd)d„ t	|	| ƒD ƒ}-|-�rÆ|!t|-ƒ }"|-D ]}|d  |"7  < �q®|	S )*NrZ   r/   r   r[   rG   c                 S   s   g | ]}g ‘qS r   r   ©re   rQ   r   r   r   rf   q  ó    z)_resolve_tracks_sizes.<locals>.<listcomp>r   r	   r   r\   r   T)r_   r`   ra   rb   rc   )rY   Úmax_contentr/   )rY   r   rY   c                 3   s   | ]}t ˆ |ƒV  qd S r   ©r   ©re   Úchild©rp   r   r   Ú	<genexpr>š  s   z(_resolve_tracks_sizes.<locals>.<genexpr>rW   c                 3   s   | ]}t ˆ |ƒV  qd S r   ©r   r�   rƒ   r   r   r„   �  s   c                 3   s   | ]}t ˆ |ƒV  qd S r   r€   r�   rƒ   r   r   r„   ¢  s   c                 3   s   | ]}t ˆ |ƒV  qd S r   r€   r�   rƒ   r   r   r„   ¥  s   )r/   rW   zfit_content()c                 3   s   | ]}t ˆ |ƒV  qd S r   r…   r�   rƒ   r   r   r„   ©  s   c                    s8   h | ]0\}}}}ˆ d kr|n|dkrˆ d kr0|n|’qS )r   r   r   )re   rQ   r   r   )ro   r   r   Ú	<setcomp>®  s   
þz(_resolve_tracks_sizes.<locals>.<setcomp>c                 S   s   g | ]}g ‘qS r   r   r}   r   r   r   rf   ³  r~   rT   rU   rX   rV   r<   c                 s   s   | ]}|d  V  qdS )r   Nr   )re   r3   r   r   r   r„   ó  r~   FÚjustify_contentÚalign_contentÚnormalÚstretchc                 S   s    g | ]\}\}}|d kr|‘qS )r/   r   )re   rv   Úmin_functionrQ   r   r   r   rf   6  s   
þ)r   r
   r   r   r<   rM   r:   r%   ÚitemsÚziprg   r]   Úsumrh   ri   rj   r   ÚBlockContainerBoxÚanonymous_fromr   r   r   rk   Úsortedr9   r#   r|   r8   Úvaluer;   Ústyle).rm   Zbox_sizerA   Zimplicit_startro   Úgaprp   r`   Zorthogonal_sizesrn   Zpercent_box_sizer‹   Zmax_functionrw   rx   rl   r‚   r   r   r   r   r,   r3   r4   rs   rv   r]   rQ   Úparentr^   Zspansr)   rP   Ú
free_spaceZdistributed_free_spaceZinflexible_tracksZflex_fractionÚstopZleftover_spaceZflex_factor_sumZhypothetical_fr_sizer‡   rˆ   Z	x_stretchZ	y_stretchZauto_tracks_sizesr   )rp   ro   r   Ú_resolve_tracks_sizesT  s®   
ÿ
ÿÿ


ÿ
ý



ÿ
ÿ
ÿ
ÿ

ÿÿ
þ




ý
ý
ý




ý
ý
ÿþÿ






ÿ


ÿÿ þr˜   c           p      C   s¦  |   ¡  |jd }|jd }	t|jd ƒ}
t|jd ƒ}t|jd d d d… ƒ}t|jd d d d… ƒ}|jd }|dkr€d}n |jd	kr�|jn|j}t||ƒ}|jd
 }|dkr¸d}n|jd	krÆdn|j}t||ƒ}|dkrâd}dd„ |D ƒ}t|jd ƒ}t|jd ƒ}|�rt|d ƒnd}tt|ƒd d ƒt|ƒ }|dk�rjt	|ƒD ]}| 
d g| ¡ �qPn4|dk �ržt	| ƒD ]}| 
t|
ƒ¡ | 
g ¡ �q~tt|ƒd d ƒ| }|dk�rè|D ] }t	|ƒD ]}| 
d ¡ �qÐ�qÄn4|dk �rt	| ƒD ]}| 
t|ƒ¡ | 
g ¡ �qüt|ƒD ]ž\}}t|ƒD ]Š\}}|d u �rJ�q4|› d�}dd„ |d d d… D ƒ}||v�rˆ|d|   
|¡ dd„ |d d d… D ƒ}||v�r4|d|   
|¡ �q4�q$t|d d d… ƒD ]°\}}t|d d d… ƒD ]’\}}|d u �r�qð|› d�}dd„ |d d d… D ƒ}||v�rH|d| d   
|¡ dd„ |d d d… D ƒ}||v�rð|d| d   
|¡ �qð�qÖd|	v �r–dnd}d|	v �r¨dnd}|dk�rº|n|} |dk�rÌ|n|}!i }"|jD ]†}#|#jd }$|#jd }%|#jd }&|#jd }'t|$|%|d d d… ƒ}(t|&|'|d d d… ƒ})|(�rÚ|)�rÚ|(\}}*|)\}}+|||*|+f|"|#< �qÚt|jd d!„ d"�},|,D ]Ð}#|#|"v �rŠ�qx|#jd#|› d$� }-|#jd#|› d%� }.t|-|.| d d d… ƒ}/|/�sÎ�qx|#jd#|› d$� }0|#jd#|› d%� }1t|/|0|1|!|"|d&|	v ƒ}2|dk�r&|/\}}+|2\}}*n|/\}}*|2\}}+|||*|+f|"|#< �qxd}3|dk�rp|�rjt|d ƒnd}4nt|ƒ}4g }5|,D ]®}#|#|"v �r¼|dk�rª|"|# \}6}}7}n|"|# \}}6}}7nX|#jd#|› d$� }0|#jd#|› d%� }1t|0|1|!d d d… ƒ}2|5 
|#¡ |2�r€|2\}6}7n�q€t|6|3ƒ}3t|6|7 |4ƒ}4�q€|5D ]„}#|#jd#|› d$� }0|#jd#|› d%� }1d}8|0d	k�r‚|0d d'k�r‚|0d }8n |1d	k�r¢|1d d'k�r¢|1d }8t|3|8�p®d |4ƒ}4�q4d}9|dk�rÒt|ƒ}:n|�rät|d ƒnd}:|" ¡ D ]B};|dk�r|;\}}6}}7n|;\}6}}7}t|6|9ƒ}9t|6|7 |:ƒ}:�qð|9|3 }<}=d&|	v �
rü|5D �]¨}#|#jd#|› d$� }-|#jd#|› d%� }.|#jd#|› d$� }0|#jd#|› d%� }1t|0|1|!d d d… ƒ}2|2�	r,|9}<|2\}>}?|>}=t|<ƒD ]ö}@|-d	k�rtd |@d d f|.| d d d… ƒ\}@}AnB|-d d'k�sJ ‚t|-ƒ}8t|-d |@d |8 d f| d d d… ƒ\}@}A|@|<k �rR�qÎt	|@|@|A ƒD ]Z}|dk�r„|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" ¡ ƒ}B|B�r` �qÎ�q` �qÆ�qÎ|@|A |: }C|Cdk�rä|:|C7 }:|dk�	r|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+|||*|+f|"|#< �qL|9|3 }<}=|<}@t	|=|4ƒD �]v}>|-d	k�	rztd |@d d f|.| d d d… ƒ\}@}AnB|-d d'k�	sŒJ ‚t|-ƒ}8t|-d |@d |8 d f| d d d… ƒ\}@}A|0d	k�	rìtd |>d d f|1|!d d d… ƒ\}>}?n0t|0ƒ}8t|0d |>d |8 d f|!d d d… ƒ\}>}?|dk�
r<|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" ¡ ƒ}B|>|? |4k}D|B�	sD|D�
r‚�	qDn8|||*|+f|"|#< |<|A d |: }C|Cdk�
r´|:|C7 }: �
qô�	qD|<d7 }<|<d |: }C|Cdk�
rä|:|C7 }:|3}=�	q6�qL�	q6�qL�nL|5D �]D}#|#jd#|› d$� }-|#jd#|› d%� }.|#jd#|› d$� }0|#jd#|› d%� }1t|0|1|!d d d… ƒ}2|2�rº|2\}>}?|>|=k �r„|<d7 }<|>}=t|<ƒD ]ö}<|-d	k�rÄtd |<d d f|.| d d d… ƒ\}@}AnB|-d d'k�sÖJ ‚t|-ƒ}8t|-d |@d |8 d f| d d d… ƒ\}@}A|@|<k �r�q�t	|@|@|A ƒD ]Z}|dk�rF|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" ¡ ƒ}B|B�r" �q��q" �qˆ�q�|@|A |: }C|Cdk�r¦|:|C7 }:|||*|+f|"|#< �q |<}@t	|=|4ƒD �]B}>|-d	k�rþtd |@d d f|.| d d d… ƒ\}@}An0t|-ƒ}8t|-d |@d |8 d f| d d d… ƒ\}@}A|0d	k�r^td |>d d f|1|!d d d… ƒ\}>}?n0t|0ƒ}8t|0d |>d |8 d f|!d d d… ƒ\}>}?|dk�r®|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" ¡ ƒ}B|>|? |4k}D|B�sÈ|D�rô�qÈn|||*|+f|"|#<  �qD�qÈ|<d7 }<|<d |: }C|Cdk�r4|:|C7 }:|3}=�qº�q �qº�q |dk�rh|3|4 }E}F|9|: }G}Hn|9|: }E}F|3|4 }G}Ht	d|E ƒD ]"}| dt|ƒ¡ | dg ¡ �qˆt	|�rÀt|d ƒnd|FƒD ]}| 
t|ƒ¡ | 
g ¡ �qÈt	d|G ƒD ]"}| dt|ƒ¡ | dg ¡ �qôt	t|ƒ|HƒD ]}| 
t|
ƒ¡ | 
g ¡ �q&t|tjƒ�rldd(lm}I |I||ƒ n*t|tjƒ�s~J ‚dd)lm}J |J|| |ƒ |jd	k�rª|j|_d*d„ |dd d… D ƒ}Kd+d„ |dd d… D ƒ}Lt |L|j|"|3d,|| |ƒ}Mt |K|j|"|Gd-|| |d.d„ |MD ƒƒ	}Nt!|jd/ ƒ}O| "¡ }td|jt#d0d1„ |MD ƒƒ ƒ}Pg }Qt|Mƒ}R|Od2h@ �r˜||Pd 7 }|MD ] \}7}|Q 
|¡ ||7| 7 }�qr�nL|Oh d3£@ �rØ||P7 }|MD ] \}7}|Q 
|¡ ||7| 7 }�q²�n|Od4h@ �r$||Pd |R 7 }|MD ](\}7}|Q 
|¡ ||7|P|R  | 7 }�qønÀ|Od5h@ �rn|MD ]6\}7}|Q 
|¡ |Rdk�r4||7|P|Rd   | 7 }�q4nv|Od6h@ �r¾||P|Rd  7 }|MD ],\}7}|Q 
|¡ ||7|P|Rd   | 7 }�qŽn&|MD ] \}7}|Q 
|¡ ||7| 7 }�qÂt!|jd7 ƒ}S| $¡ }|jd	k�rd}Tn2|jt#d8d1„ |ND ƒƒ t|Nƒd |  }Ttd|Tƒ}Tg }Ut|Nƒ}V|Sd2h@ �rŒ||Td 7 }|ND ] \}7}|U 
|¡ ||7| 7 }�qf�nb|Sh d3£@ �rÌ||T7 }|ND ] \}7}|U 
|¡ ||7| 7 }�q¦�n"|Sd4h@ �r||Td |V 7 }|ND ](\}7}|U 
|¡ ||7|T|V  | 7 }�qìnÖ|Sd5h@ �rb|ND ]6\}7}|U 
|¡ |Vdk�r(||7|T|Vd   | 7 }�q(nŒ|Sd6h@ �r²||T|Vd  7 }|ND ],\}7}|U 
|¡ ||7|T|Vd   | 7 }�q‚n<|Sd9h@ �rÈt% &d:¡ |ND ] \}7}|U 
|¡ ||7| 7 }�qÌg }Wd }X|�r<tt'|ƒƒ}Yt#d;d1„ |Nd |Y… D ƒƒt|Nd |Y… ƒd |  }Znd}Yd}Zd }[t#d<d1„ |N|Yd … D ƒƒt|N|Yd … ƒd |  }\|U|Yd d … | $¡ |\ g }]t|]|Yd d=�D ]¨\}6}^|  (||^|Z ¡�rJ|�sJ|6dk�rêd d d>d d?œg d@f  S |6d }X|6d d i}[|,D ]@}#|"|# \}}}}|Y|  k�r2|6d k�rn n
|W 
|#¡ �q �q‚d@}�q¨|,D ]*}#|"|# \}}}}|Y|k�rV|W 
|#¡ �qV|jd	k�rÂt#dAd1„ |N|Y|X… D ƒƒt|N|Y|X… ƒd |  |_t!|jdB ƒ}_t!|jdC ƒ}`g }ad }bd>d d?œ}cddDlm)}d |WD �]\}#|"|# \}}}*}+|j *|#¡}e|�rP| +|¡�rP|e|| v �rP|| |e }fnd }f|# ,¡ }#|Q| |#_-|U| |Z |#_.t/|#|ƒ t#dEd1„ |M|||* … D ƒƒ|*d |  }*t#dFd1„ |N|||+ … D ƒƒ|+d |  }+|#j0d	k�räd|#_0|#j1d	k�röd|#_1|#j2d	k�rd|#_2|#j3d	k�rd|#_3|*|#j3|#j4 |#j5 |#j1 |#j6 |#j7  }g|+|#j0|#j8 |#j9 |#j2 |#j: |#j;  }ht!|#jdG ƒ}i|id	h@ �rˆ|_}i|iddHh@ �r¶|#jdI d	k�r¶t<|gdJƒ|#jdI< t!|#jdK ƒ}j|jd	h@ �rÔ|`}j|jddHh@ �r|#jdL d	k�rt<|hdJƒ|#jdL< tj= >|dM¡}kt/|k|ƒ |#j-|k_-|#j.|k_.|*|k_|+|k_|d| |#||f|k|||ƒd dN… \}l}m}n|l�r d@}n�q |iddHh@ �rˆt|g|ljƒ|l_nNt?| |lƒ|l_|g|lj }o|id2h@ �r¼|l @|od d¡ n|ih dO£@ �rÖ|l @|od¡ |jddHh@ �rôt|h|ljƒ|l_nB|h|lj }o|jd2h@ �r|l @d|od ¡ n|jh dP£@ �r6|l @d|o¡ |a 
|l¡ |bd u �r ||Gk�r tA|lƒ}b�q | B|a¡}t|tjƒ�rŽt% &dQ¡ |b�pŠd|_C|  D|¡ ||[|cg d@fS )RNÚgrid_template_areasÚgrid_auto_flowÚgrid_auto_rowsÚgrid_auto_columnsr"   Ú
column_gapr‰   r   r/   Úrow_gaprI   )r   c                 S   s   g | ]}t |ƒ‘qS r   )rO   ©re   r7   r   r   r   rf   \  r~   zgrid_layout.<locals>.<listcomp>Úgrid_template_rowsÚgrid_template_columnsr	   r   z-startc                 S   s   g | ]}|D ]}|‘qqS r   r   ©re   r7   Únamer   r   r   rf   }  r~   c                 S   s   g | ]}|D ]}|‘qqS r   r   ©re   Úcolumnr£   r   r   r   rf   €  r~   z-endc                 S   s   g | ]}|D ]}|‘qqS r   r   r¢   r   r   r   rf   ˆ  r~   éþÿÿÿc                 S   s   g | ]}|D ]}|‘qqS r   r   r¤   r   r   r   rf   ‹  r~   r¥   r7   Úgrid_column_startÚgrid_column_endÚgrid_row_startÚgrid_row_endc                 S   s
   | j d S )NÚorder)r“   )rt   r   r   r   Ú<lambda>¨  r~   zgrid_layout.<locals>.<lambda>)ÚkeyZgrid_Ú_startZ_endrC   r)   )Úblock_level_width)Úinline_block_widthc                 S   s   g | ]}t |ƒ‘qS r   ©rH   rŸ   r   r   r   rf   ç  r~   c                 S   s   g | ]}t |ƒ‘qS r   r±   )re   r¥   r   r   r   rf   è  s   r   r   c                 S   s   g | ]\}}|‘qS r   r   ©re   r3   rQ   r   r   r   rf   ó  r~   r‡   c                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   ÿ  r~   zgrid_layout.<locals>.<genexpr>Úcenter>   r1   Úrightúflex-endzspace-aroundzspace-betweenzspace-evenlyrˆ   c                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   '  r~   Úbaselinez3Baseline alignment is not supported for grid layoutc                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   T  r~   c                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   [  r~   r2   Úany)ÚbreakÚpageFc                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   s  r~   Újustify_itemsÚalign_itemsr\   c                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   ˆ  r~   c                 s   s   | ]\}}|V  qd S r   r   r²   r   r   r   r„   ‹  r~   Újustify_selfrŠ   r   ÚpxÚ
align_selfr   r   é   >   r1   r´   úself-endrµ   >   r1   rÀ   rµ   zInline grids are not supported)EÚcreate_block_formatting_contextr“   r   r   r
   r   rS   r%   rL   r:   rM   Únextr#   rs   r5   r‘   rF   rT   r<   r9   r   r6   r    Úinsertr   r   ÚGridBoxrg   r¯   ÚInlineGridBoxÚinliner°   r˜   r8   Úcontent_box_xrŽ   Úcontent_box_yr   rK   ÚiterÚoverflows_pager]   ÚindexÚgetrh   ri   rj   r   Ú
margin_topÚmargin_rightÚmargin_bottomÚmargin_leftÚborder_left_widthÚpadding_leftÚborder_right_widthÚpadding_rightÚborder_top_widthÚpadding_topÚborder_bottom_widthÚpadding_bottomr   r�   r�   r   Ú	translater   Úcopy_with_childrenr¶   Úfinish_block_formatting_context)prp   Úboxr^   r_   r`   ra   rb   rc   Ú
grid_areasÚflowZ	auto_rowsZauto_columnsZauto_rows_backZauto_columns_backr�   Úrefer_torž   ÚrowsÚcolumnsZgrid_areas_columnsZ	rows_diffrQ   Zcolumns_diffr7   r   r   Z	area_nameZ
start_nameÚnamesZend_namerB   Zsecond_flowZfirst_tracksr@   rA   r‚   Zcolumn_startZ
column_endZ	row_startZrow_endZcolumn_placementZrow_placementr   r   rs   Zfirst_startZ	first_endr=   r>   r?   Zsecond_placementZimplicit_second_1Zimplicit_second_2Zremaining_grid_itemsrP   r3   r)   Zimplicit_first_1Zimplicit_first_2ÚpositionZcursor_firstZcursor_secondZsecond_iZsecond_sizeZfirst_iZ
first_sizeZ	intersectZ
first_diffÚoverflowZimplicit_x1Zimplicit_x2Zimplicit_y1Zimplicit_y2r¯   r°   Zrow_sizing_functionsZcolumn_sizing_functionsZcolumns_sizesZ
rows_sizesr‡   Z
free_widthZcolumns_positionsZcolumns_numberrˆ   Zfree_heightZrows_positionsZrows_numberZthis_page_childrenZ
resume_rowZskip_rowZskip_heightÚ	resume_atÚtotal_heightZrow_lines_positionsZrow_yrº   r»   Únew_childrenr¶   Ú	next_pager]   rË   Úchild_skip_stackZchild_widthZchild_heightr¼   r¾   r•   Ú	new_childÚchild_resume_atZchild_next_pageÚdiffr   r   r   Úgrid_layoutB  sz   






















ÿ

þ




ÿ










ÿ
ÿ
þ




ÿ








ÿ
þ
þ
þ



ÿÿ



ÿ

þ
þ




ÿ



ÿ
þ
þ
þ



ÿ





 ÿ
þþ






ÿþÿ








ÿÿÿÿÿ
 
ÿÿ

 


ÿÿ
ÿÿÿÿÿÿÿÿÿÿ

þþ






rí   )N)!Ú__doc__Ú	itertoolsr   r   Úmathr   Zcss.propertiesr   Úformatting_structurer   Úloggerr   Úpercentr
   r   Ú	preferredr   r   Útabler   r   r   r   r    r.   r5   r6   rF   rH   rS   r|   r˜   rí   r   r   r   r   Ú<module>   s.   	82(p þ
 o