
    Bh                         S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	KJrJr  SS
KJrJr  SSKJr  S rS rS rS rS rS rS rS rS rS rS r SS jrS r g)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                 N    [        U [        5      =(       a    U R                  S:g  $ Nfr
isinstancer   unitsizings    H/var/www/html/env/lib/python3.13/site-packages/weasyprint/layout/grid.py
_is_lengthr          fi(@V[[D-@@    c                 N    [        U [        5      =(       a    U R                  S:H  $ r   r   r   s    r   _is_frr      r   r   c                 ,    XU-   :  =(       a    X U-   :  $ N )
position_1size_1
position_2size_2s       r   
_intersectr%      s"    &(( 	)&((*r   c                 p    U H0  u  pVpx[        XXW5      n	[        XXh5      n
U	(       d  M'  U
(       d  M0    g   g)NTF)r%   )xywidthheight	positionsfull_xfull_y
full_widthfull_heightx_intersecty_intersects              r   _intersect_with_childrenr2      s:    3</
 6> F@;;;	 4=
 r   c                 V   U u  p4nU(       a)  Uc&  Uc#  [        U5       H  u  p`U SU 3U ;   d  M    O   SnUbh  Uce  Uc  US-
  nO\US:  a  SOSn[        US S U2   5       H  u  p`XP;   a  XG-  n  OUS:X  d  M    O   W[        U5      -  nUS:X  a  [        U5      S-
  U-
  nUb  S nX4UW4$ )N-r
   r   )	enumerateabslen)linelinessidespannumberidentcoordsteps           r   	_get_linerA   %   s    D%&.$U+KE$ D( , Fdl=QJE
1D(vv7=NFQ;  8 V$rzE
Q.%%r   c                 J   U S:X  d	  U S   S:X  a  US:X  d	  US   S:X  a  g U S:w  a   [        XS5      u  p4pVUb  U=(       d    SnUnOSnS =pUS:w  a  [        XS5      u  p4pYUb@  U=(       d    S=pzUnUb.  [        X&S-   S  SS9 H  u  p{X;   a  U
S-  n
U
S:X  d  M    O   Xz-  nOUb  X-
  nUc]  Wc  U	W-
  nOPU=(       d    SnU	S:  a<  [        X)S-
  S S2   5      nU H  u  pkX;   a  US-  nUS:X  d  M  U	S-
  U-
  n  O	   U* nOU* nX-
  nOSnWS:  a  U* nXg-  nUS:X  a  SnXg4$ )	Nautor   r<   startr
   endrD   r5   )rA   r6   )rD   rE   r:   r<   r=   r>   r?   size
span_ident	coord_endspan_numberr9   iterables                r   _get_placementrL   A   s   %(f,&=CFf,%.uW%E"e;QDJ!!

f})23u)E&e!'1,DJ%"+E'(O1"EJD!)#q("a'	 #F 'D$D=!!D(1q=({B)?@H'/%-"aKF!Q;$-ME$9E! (0 "(#GE$Daxuqy=r   c                 8    SnU S   S:X  a  U S   =(       d    SnU$ )Nr
   r   r<   r    )placer<   s     r   	_get_spanrO   y   s%    DQx6Qx}1Kr   c                    [        5       nUR                  5        H  u  ppUS:X  a;  [        X/U Q76 (       a(  [        XU
-   5       H  nUR	                  U5        M     ME  MG  [        X/U Q76 (       d  MZ  [        XU-   5       H  n	UR	                  U	5        M     M     U(       a  [        5        H  nX;   a  M
  US:X  a  [        S US-   S 4X#5      nO=US   S:X  d   eUS:X  d  US   S:X  d   e[        U5      n[        US US-   U-   S 4U5      n[        US   US   US   -   5      n[        U5      U-  (       a  M  Us  $    g [        U=(       d    S/5      S-   nUS:X  a  [        S US-   S 4X#5      $ US   S:X  d   eUS:X  d  US   S:X  d   e[        US-   5       H#  n[        US US-   S 4U5      nUS   U:  d  M!  Us  $    g )NrowrC   r
   r   r<   )	setvaluesr%   rangeaddr   rL   rO   max)first_placementsecond_start
second_endsecond_trackschildren_positions
first_flowdenseoccupied_tracksr'   r(   r)   r*   track	placementr<   tracks	end_tracks                    r   _get_second_placementrc      s   eO188:e!6o66qe),A#''* - 7 !5_55qf*-A#''* .  ; WE'v%*519d+ZH	 $A&000 $v-aF1JJJ .* 4T)94"@-Q	9Q<1	!)DEFv;00  # & O*s+a/6!!uqy$'D D  ?f,,,  6)\!_-FFF"519-	* 4Q"=}N	Q<5($$	 .r   c                 n    U =pU S   S:X  a  U SS  u  pUS   S:X  a  SnX4$ [        U5      (       a  SnX4$ )Nr   zminmax()r
   fit-content()rC   )r   )rG   
min_sizing
max_sizings      r   _get_sizing_functionsrh      s[    ""JAw*!%ab
!}'
 ## 

		
##r   c                    U S:X  a  Sn SU ;   a  [         R                  " S5        / /$ / n[        U 5       GH,  u  p#US-  (       a  US   S:X  a  USS  u  pE[        U[        5      (       d  [         R                  " S	5        Sn[        U5       Hw  n[        U5       He  u  pxUS-  (       a  UR                  U5        M"  [        U5      S-  (       a  US
   R                  U5        MK  UR                  [        U5      5        Mg     My     M  UR                  U5        M  [        U5      S-  (       a  US
   R                  U5        GM  UR                  [        U5      5        GM/     U$ )Nnone)r    subgridzSubgrids are unsupportedr   r   zrepeat()r
   z6"auto-fit" and "auto-fill" are unsupported in repeat()r5   )
r	   warningr6   r   intrT   appendr8   extendlist)	ra   tracks_listir_   repeat_numberrepeat_track_list_jrepeat_tracks	            r   _get_template_tracksrx      s:   F12tKf%q5Qx:%3890!-55NNPR$%M}-A+45F+Gq5'..|<  #;/!3 +B 6 6| D + 2 243E F ,H . ""5) ;!#B&&u-""4;/9 &: r   c
                 X   U S;   d   eUS;   d   eUS;   d   eUS;   d   eS/[        U5      -  n
/ nU S:X  a  SOSnU H  nX   nUS:X  a#  US	;   d	  US   S
:X  a  UR                  S5        M/  O?US:X  a  US;   a  UR                  S5        MO  OUS:X  a  US;   a  UR                  S5        Mo  UR                  S5        M     [        U5       GH  u  nnU(       d  M  U GH  nUS:X  a   US;   a  [        UU5      nOZ[	        UU5      nOMSSKJn  UR                  5       nSUl        SUl	        U" UU[        * S U	S/ / S9u  n        nUR                  5       nX_X-     H  nUUU   -  nM     [        SU5      n[        [        XX-    US95      nS/[        U5      -  nU VVs/ s H  u  nnU(       d  M  UPM     nnnU[        U5      =(       d    S-  nU H=  nUU   u  nnUnUU   U   n UU   S   n!U U-   U!:  a  UU -   U!-
  n"UU"-  nUU-  nUUU'   M?     U(       a  U(       az  U VVs/ s H  u  nnU(       a  M  UPM     n#nnU[        U#5      =(       d    S-  nU# H=  nUU   u  nnUnUU   U   n UU   S   n!U U-   U!:  a  UU -   U!-
  n"UU"-  nUU-  nUUU'   M?     U(       a   [        U5       H  u  n$n"U"U
U$   :  d  M  U"U
U$'   M     GM     GM     [        U
5       H:  u  nn%U S:X  a  X_   S   [        L a  X_   S   U%-   X_   S'   M+  X_   U==   U%-  ss'   M<     g s  snnf s  snnf )N)minrV   )	intrinsiccontent-basedmax-content)minimummin-contentr}   xyr   rz   r
   r{   r   r}   rC   re   Tr|   )r   r}   r}   )r}   rC   Fr'   )r~   r   block_level_layout)bottom_space
skip_stackcontaining_blockpage_is_emptyabsolute_boxesfixed_boxesrF   rV   )r8   rn   r6   r   r   blockr   deepcopy
position_x
position_yr   margin_heightrV   rp   )&affected_sizesaffected_tracks_typessize_contributiontracks_childrensizing_functionstracks_sizesr<   	directioncontextr   planned_increasesaffected_tracksaffected_size_index	functionsfunctionrr   childrenitemspacer   ru   sizestracks_numbersitem_incurred_increasesrv   affectedaffected_tracks_numbersdistributed_spacetrack_number	base_sizegrowth_limititem_incurred_increaseaffected_sizelimitextraunaffected_tracks_numberskincreases&                                         r   _distribute_extra_spacer      s0    ^+++  %5 5 5 5 IIII c,// O-6!A%	1 K/BBQK?2&&t, 3 #o599&&t, : #m322&&t,u% &  !18D C$(BB-gt<E-gt<E5}}"#"#&8T%5T#%2'7#aAq! **,%/233 05ME!/AF31=?N'(cC0@,A&A#%3'A%3kax^ $ 'A %-D)E)J K 7*6|*D'	<):& ,\ :;N O$\215 #99UB.>F *e3*//8N'5 !8 0)7-I)7+!XxA * -I S!:;@qA "$=L.:<.H+I|->*$\23FG "(6q9E$'==F2]BUJ .%7.33E. ,L9 %> %&=>5,Q//+0%a( ?A  2N !!238U"|q'9S'@!-!3h!>LOAO/0H<0	 4U'A -Is   "L 
4L 
*L&
<L&
Nc	                 4  ^ US;   d   e/ n	US:X  a  SOUn
U  H  u  pS n[        U5      (       a  [        X5      nOUS;   d	  US   S:X  a  SnS n[        U5      (       a  [        X5      nO%US;   d  US   S:X  d  [        U5      (       a  [        nS X4;  a  [	        X5      nU	R                  X/5        M     [        [        U	5      5       Vs/ s H  n/ PM     nnUR                  5        H;  u  nu  nnnnUS:X  a  UU4OUU4u  nnUS:w  a  M$  UUU-
     R                  U5        M=     [        UX	5      nU GH  u  nu  pnU(       d  M  US:X  Ga  SS	K
Jn  SnU H  nUU   u  nnnn[        UUUU-    5      nUR                  5       nSUl        SUl        [         R"                  R%                  US
5      n['        UU5        UR                  Ul        UR                  Ul        UUl        UUl        [        * nU" TUUS US/ / S9u  n        n[	        UUR-                  5       5      nM     US;   a  UUS'   US;   a  UUS'   S U;  a  [	        U5      US'   GM"  US:X  a  [	        S/U4S jU 5       Q76 US'   O?US:X  a  [	        S/U4S jU 5       Q76 US'   OUS:X  a  [	        S/U4S jU 5       Q76 US'   US:X  a  [	        U4S jU 5       5      US'   O'US;   d	  US   S:X  a  [	        U4S jU 5       5      US'   S U;  d  GM  [	        U5      US'   GM     [/        UR1                  5        VVVs1 s H"  u    nnnUS:X  a  UOUS:  d  M  US:X  a  UOUiM$     snnn5      nU GH  n[        [        U 5      5       Vs/ s H  n/ PM     nn[3        UR                  5       5      nU He  u  n u  nu  nnnnUS:X  a  UU4OUU4u  nnUU:w  a  M'  U U U U-   S-     H  u  p[        U5      (       d  M    ML     UUU-
     R                  U5        Mg     [5        SSSUX	UUTU5
        [5        SSSUX	UUTU5
        [5        SSSUX	UUTU5
        U	 H  nS U;  d  M  [	        U5      US'   M     [3        UR                  5       5      nU He  u  n u  nu  nnnnUS:X  a  UU4OUU4u  nnUU:w  a  M'  U U U U-   S-     H  u  p[        U5      (       d  M    ML     UUU-
     R                  U5        Mg     [5        SSSUX	UUTU5
        [5        SSSUX	UUTU5
        GM     U	 H  nUS   [        L d  M  US   US'   M     US:X  a  S n!O'U[        S U	 5       5      -
  [        U	5      S-
  U-  -
  n!U!bV  U!S:  aP  U![        U	5      -  n"[3        U	5       H3  u  n nUu  pUU"-   U:  a  UUS'   U!X-
  -  n!M!  US==   U"-  ss'   U!U"-  n!M5     [7        5       n#U!b
  U!S::  a  Sn$GOdU!b  Sn%U%(       d  U!n&Sn'[3        [        X5      5      nU H<  u  n u  nu  p[        U5      (       d  M  U&US   -  n&U U#;  d  M-  U'UR8                  -  n'M>     [	        SU'5      n'U&U'-  n(Sn%[3        [        X5      5      nU H[  u  n u  nu  pU U#;  d  M  [        U5      (       d  M%  U(UR8                  -  US   :  d  M=  U#R;                  U 5        U!US   -  n!U!S:  n%M]     U%(       d  M  W(n$OjSn$[        X5      nU HW  u  nu  p[        U5      (       d  M  UR8                  S:  a  [	        U$UR8                  US   -  5      n$MH  [	        U$US   5      n$MY     [3        [        X5      5      nU Hd  u  n u  nu  p[        U5      (       d  M  U U#;  d  M%  U$UR8                  -  US   :  d  M=  U!b  U!U$UR8                  -  -  n!U$UR8                  -  US'   Mf     UR<                  S    n)UR<                  S!   n*US:H  =(       a    [7        U)5      S"S#1-  n+US:H  =(       a    [7        U*5      S"S#1-  n,U+(       d  U,(       a`  U!b]  U!S:  aW  [        X5       VVVs/ s H  u  nu  pUS:X  d  M  UPM     n-nnnU-(       a$  U![        U-5      -  n"U- H  nUS==   U"-  ss'   M     U	$ s  snf s  snnnf s  snf s  snnnf )$Nr   rC   r   r   re   r'   r
   r(   r   r    T)r   r   r   r   r   )r   max_contentrC   )r   r   r   c              3   <   >#    U  H  n[        TU5      v   M     g 7fr   r   .0childr   s     r   	<genexpr>(_resolve_tracks_sizes.<locals>.<genexpr>          I?Ge!'511x   r}   c              3   <   >#    U  H  n[        TU5      v   M     g 7fr   r   r   s     r   r   r     r   r   c              3   <   >#    U  H  n[        TU5      v   M     g 7fr   r   r   s     r   r   r     r   r   c              3   <   >#    U  H  n[        TU5      v   M     g 7fr   r   r   s     r   r   r            I?Ge!'511xr   )rC   r}   zfit_content()c              3   <   >#    U  H  n[        TU5      v   M     g 7fr   r   r   s     r   r   r     r   r   r   rz   r{   r~   r|   rV   c              3   *   #    U  H	  oS    v   M     g7f)r   Nr    )r   rG   s     r   r   r     s     1LDQL   Fjustify_contentalign_contentnormalstretch)r   r   r   r   rV   rn   rT   r8   itemszipr   r   sumr   r   r   r   BlockContainerBoxanonymous_fromr   r)   r*   r   sortedrS   r6   r   rR   valuerU   style).r   box_sizer[   implicit_startr   gapr   r   orthogonal_sizesr   percent_box_sizemin_functionmax_functionr   r   ru   r   r   r'   r(   r)   r*   r?   rG   rK   r   r   r   parentr   spansr<   rr   
free_spacedistributed_free_spaceinflexible_tracksflex_fractionstopleftover_spaceflex_factor_sumhypothetical_fr_sizer   r   	x_stretch	y_stretchauto_tracks_sizess.         `                                       r   _resolve_tracks_sizesr   T  s
    L$.qH&6"	l##"<BIDD1o0Il##%lELDD1o0F<4H4HL	00y7LY56 '7* $)\):#;<#;ar#;O<(:(@(@(B$$1eV$-$4q%j1f+t19./66u=	 )C
 ?$4CH9A5.<1F!!3E!:1eQ,Qqw78(#$ #$ 00??$b*#F,<=$)$4$4!$)$4$4!$ & #t'9ULT%+4#%2(7$q!Q1 VU%8%8%:;% "& EE!a==!a5 u:a=(1 J  I?G I JE!H]*1 J  I?G I JE!HV# 1 J  I?G I JE!H=( I?GI IE!H551o0 I?GI IE!Hu5zE!Hi :Bl %7%>%>%@9%@!Q5&#%E6a7 	.c!v-%@9 :E ',S1A-B'CD'C!2'CD/557819-A-,1eV(1S(81e*q&kKE4t|#3AafQh#?,'' $@   67>>uE 2: 	 ;	?D)W	
 	 ?M?D)W	 	 =-D)W	
 "E5 u:a " /557819-A-,1eV(1S(81e*q&kKE4t|#3AafQh#?,'' $@   67>>uE 2: 	 ;D)W	
 	 =-D)W	c p 8s?QxE!H  6
 1L112"c)* 	 *q.!+c,.?!?!,/HAu&+#I11L@'al66
a2244
 0 */		'NO \!DEH19--E,A,''"eAh.N 11'<+=+==	 2:
 "!_5O#1O#C D \!DEH19--E,A--&2F2F+l.@.@@58K)--a0"eAh.
)A~ 2: $& -|6(0$E$Al##%%)$'%|'9'9E!H'D%FM %(uQx$@M )1 \<=H)1%%E$A,A->$>|111E!H<)-,2D2D"DDJ(<+=+==a *2 ',,->?O$**?;MSIS1Xy4II  	SGS/8Y2GG YJ$:zA~ <2'2 /e.lv% 2 	 ' %/#6G2H%H"*a22 + ] =z9
 EF's$   b4bbb8bbc                 2   U R                  5         UR                  S   nUR                  S   n	[        UR                  S   5      n
[        UR                  S   5      n[        UR                  S   S S S2   5      n[        UR                  S   S S S2   5      nUR                  S   nUS:X  a  SnO3UR                  S	:X  a  UR                  OUR                  n[	        X5      nUR                  S
   nUS:X  a  SnO*UR
                  S	:X  a  SOUR
                  n[	        UU5      nUS:X  a  SnU Vs/ s H  n[        U5      PM     nn[        UR                  S   5      n[        UR                  S   5      nU(       a  [        US   5      OSn[        [        U5      S-
  S-  5      [        U5      -
  nUS:  a(  [        U5       H  nUR                  S /U-  5        M     ODUS:  a>  [        U* 5       H.  nUR                  [        U
5      5        UR                  / 5        M0     [        [        U5      S-
  S-  5      U-
  nUS:  a-  U H&  n[        U5       H  nUR                  S 5        M     M(     ODUS:  a>  [        U* 5       H.  nUR                  [        U5      5        UR                  / 5        M0     [        U5       H  u  nn[        U5       H  u  nnUc  M  U S3nUS S S2    VVs/ s H  nU  H  nUPM     M     nnnUU;  a  USU-     R                  U5        US S S2    VVs/ s H  nU  H  nUPM     M     nnnUU;  d  M}  USU-     R                  U5        M     M     [        US S S2   5       H  u  nn[        US S S2   5       H  u  nnUc  M  U S3nUS S S2    VVs/ s H  nU  H  nUPM     M     nnnUU;  a  USU-  S-
     R                  U5        US S S2    VVs/ s H  nU  H  nUPM     M     nnnUU;  d  M  USU-  S-
     R                  U5        M     M     SU	;   a  SOSn SU	;   a  SOSn!U S:X  a  UOUn"U!S:X  a  UOUn#0 n$UR                   H  n%U%R                  S   n&U%R                  S   n'U%R                  S   n(U%R                  S   n)[        U&U'US S S2   5      n*[        U(U)US S S2   5      n+U*(       d  Mn  U+(       d  Mw  U*u  nn,U+u  nn-UUU,U-4U$U%'   M     [!        UR                  S S9n.U. H  n%U%U$;   a  M  U%R                  SU  S3   n/U%R                  SU  S3   n0[        U/U0U"S S S2   5      n1U1(       d  MM  U%R                  SU! S3   n2U%R                  SU! S3   n3[#        U1U2U3U#U$U SU	;   5      n4U S:X  a  U1u  nn-U4u  nn,O
U1u  nn,U4u  nn-UUU,U-4U$U%'   M     Sn5U!S:X  a  U(       a  [        US   5      OSn6O[        U5      n6/ n7U. H  n%U%U$;   a  U!S:X  a  U$U%   u  n8nn9nOdU$U%   u  nn8nn9OYU%R                  SU! S3   n2U%R                  SU! S3   n3[        U2U3U#S S S2   5      n4U7R                  U%5        U4(       a  U4u  n8n9OM~  [%        U8U55      n5['        U8U9-   U65      n6M     U7 Hl  n%U%R                  SU! S3   n2U%R                  SU! S3   n3Sn:U2S	:w  a  U2S   S :X  a  U2S   n:OU3S	:w  a  U3S   S :X  a  U3S   n:['        U5U:=(       d    S-   U65      n6Mn     Sn;U S:X  a  [        U5      n<OU(       a  [        US   5      OSn<U$R)                  5        H3  n=U S:X  a  U=u  nn8nn9OU=u  n8nn9n[%        U8U;5      n;['        U8U9-   U<5      n<M5     U;U5n?n>SU	;   Ga  U7 GH  n%U%R                  SU  S3   n/U%R                  SU  S3   n0U%R                  SU! S3   n2U%R                  SU! S3   n3[        U2U3U#S S S2   5      n4U4(       Ga  U;n>U4u  n@nAU@n?[+        U>5       H  nBU/S	:X  a  [        S WBS-   S 4U0U"S S S2   5      u  nBnCO5U/S   S :X  d   e[-        U/5      n:[        U/S WBS-   U:-   S 4U"S S S2   5      u  nBnCWBU>:  a  Mc  [        WBUBWC-   5       HA  nU S:X  a	  W@WBnnWAWCn-n,OWBW@nnWCWAn-n,[/        UUU,U-U$R)                  5       5      nDUD(       d  M@    M       O   WBWC-   U<-
  nEUES:  a  U<WE-  n<U S:X  a	  W@WBnnWAWCn-n,OWBW@nnWCWAn-n,UUU,U-4U$U%'   GMp  U;U5n?n> U>nB[        U?U65       GH  n@U/S	:X  a  [        S WBS-   S 4U0U"S S S2   5      u  nBnCO5U/S   S :X  d   e[-        U/5      n:[        U/S WBS-   U:-   S 4U"S S S2   5      u  nBnCU2S	:X  a  [        S W@S-   S 4U3U#S S S2   5      u  n@nAO*[-        U25      n:[        U2S W@S-   U:-   S 4U#S S S2   5      u  n@nAU S:X  a	  W@WBnnWAWCn-n,OWBW@nnWCWAn-n,[/        UUU,U-U$R)                  5       5      nDW@WA-   U6:  nFUD(       d  WF(       a  M  UUU,U-4U$U%'   U>WC-   S-
  U<-
  nEUES:  a  U<WE-  n<  O   U>S-  n>U>S-   U<-
  nEUES:  a  U<WE-  n<U5n?GMD  GM     GOU7 GH  n%U%R                  SU  S3   n/U%R                  SU  S3   n0U%R                  SU! S3   n2U%R                  SU! S3   n3[        U2U3U#S S S2   5      n4U4(       a  U4u  n@nAU@U?:  a  U>S-  n>W@n?[+        U>5       H  n>U/S	:X  a  [        S U>S-   S 4U0U"S S S2   5      u  nBnCO5U/S   S :X  d   e[-        U/5      n:[        U/S WBS-   U:-   S 4U"S S S2   5      u  nBnCWBU>:  a  Mc  [        WBUBWC-   5       HA  nU S:X  a	  W@WBnnWAWCn-n,OWBW@nnWCWAn-n,[/        UUU,U-U$R)                  5       5      nDUD(       d  M@    M       O   WBWC-   U<-
  nEUES:  a  U<WE-  n<WWW,W-4U$U%'   GMa   U>nB[        U?U65       H  n@U/S	:X  a  [        S WBS-   S 4U0U"S S S2   5      u  nBnCO*[-        U/5      n:[        U/S WBS-   U:-   S 4U"S S S2   5      u  nBnCU2S	:X  a  [        S W@S-   S 4U3U#S S S2   5      u  n@nAO*[-        U25      n:[        U2S W@S-   U:-   S 4U#S S S2   5      u  n@nAU S:X  a	  W@WBnnWAWCn-n,OWBW@nnWCWAn-n,[/        UUU,U-U$R)                  5       5      nDW@WA-   U6:  nFUD(       d  WF(       a  M  UUU,U-4U$U%'     O   U>S-  n>U>S-   U<-
  nEUES:  a  U<WE-  n<U5n?GM"  GM     U S:X  a	  U5U6nHnGU;U<nJnIOU;U<nHnGU5U6nJnI[        SWG-
  5       H0  nUR1                  S[        U5      5        UR1                  S/ 5        M2     [        U(       a  [        US   5      OSWH5       H.  nUR                  [        U5      5        UR                  / 5        M0     [        SWI-
  5       H0  nUR1                  S[        U5      5        UR1                  S/ 5        M2     [        [        U5      WJ5       H.  nUR                  [        U
5      5        UR                  / 5        M0     [3        U[4        R6                  5      (       a  SS!KJnK  UK" X5        O0[3        U[4        R<                  5      (       d   eSS"KJ nL  UL" XU5        UR                  S	:X  a  UR                  Ul        USS S2    Vs/ s H  n[C        U5      PM     nMnUSS S2    Vs/ s H  n[C        U5      PM     nNn[E        UNUR                  U$U5S#XU5      nO[E        WMUR
                  U$WIS$UXUO V9Vs/ s H  u  n9nU9PM
     snn95	      nP[G        UR                  S%   5      nQURI                  5       n['        SUR                  [K        S& WO 5       5      -
  5      nR/ nS[        UO5      nTUQS'1-  (       a/  UWRS-  -  nWO H  u  n9nWSR                  U5        UU9U-   -  nM!     GO%WQ1 S(k-  (       a+  UWR-  nWO H  u  n9nWSR                  U5        UU9U-   -  nM!     OWQS)1-  (       a7  UWRS-  WT-  -  nWO H%  u  n9nWSR                  U5        UU9WRWT-  -   U-   -  nM'     OWQS*1-  (       a7  WO H0  u  n9nWSR                  U5        WTS:  d  M  UU9WRWTS-
  -  -   U-   -  nM2     OjWQS+1-  (       a:  UWRWTS-   -  -  nWO H(  u  n9nWSR                  U5        UU9WRWTS-   -  -   U-   -  nM*     O%WO H  u  n9nWSR                  U5        UU9U-   -  nM!     [G        UR                  S,   5      nUURM                  5       nUR
                  S	:X  a  SnVO=UR
                  [K        S- WP 5       5      -
  [        UP5      S-
  U-  -
  nV['        SUV5      nV/ nW[        WP5      nXWUS'1-  (       a/  UWVS-  -  nWP H  u  n9nWWR                  U5        UU9U-   -  nM!     GOGWU1 S(k-  (       a,  UWV-  nWP H  u  n9nWWR                  U5        UU9U-   -  nM!     GOWUS)1-  (       a7  UWVS-  WX-  -  nWP H%  u  n9nWWR                  U5        UU9WVWX-  -   U-   -  nM'     OWUS*1-  (       a7  WP H0  u  n9nWWR                  U5        WXS:  d  M  UU9WVWXS-
  -  -   U-   -  nM2     OWUS+1-  (       a:  UWVWXS-   -  -  nWP H(  u  n9nWWR                  U5        UU9WVWXS-   -  -   U-   -  nM*     OFWUS.1-  (       a  [N        RP                  " S/5        WP H  u  n9nWWR                  U5        UU9U-   -  nM!     / nYS nZU(       a?  [        [S        U5      5      n[[K        S0 WPS U[  5       5      [        UPS U[ 5      S-
  U-  -   n\OSn[Sn\S n][K        S1 WPW[S   5       5      [        UPU[S  5      S-
  U-  -   n^WWU[S-   S  URM                  5       U^-   /-   n_[        U_U[S-   S29 H  u  n8n`U RU                  UU`W\-
  5      (       aa  U(       dZ  U8S:X  a  S S S3S S4./ S54s  $ U8S-
  nZU8S-
  S 0n]U. H4  n%U$U%   u  nn  nW[Us=::  a  U8S-
  ::  d  M  O  M#  WYR                  U%5        M6       O2S5nM     U. H&  n%U$U%   u  nn  nW[U::  d  M  WYR                  U%5        M(     UR
                  S	:X  a/  [K        S6 WPW[WZ  5       5      [        UPU[UZ 5      S-
  U-  -   Ul        [G        UR                  S7   5      na[G        UR                  S8   5      nb/ ncS ndS3S S4.neSS9KJ+nf  WY GH+  n%U$U%   u  nnn,n-UR                  RY                  U%5      ngU(       a(  UR[                  U5      (       a  WgUU   ;   a	  UU   Wg   nhOS nhU%R]                  5       n%WSU   U%l/        WWU   W\-
  U%l0        [c        U%U5        [K        S: WOUUU,-     5       5      U,S-
  U-  -   n,[K        S; WPUUU--     5       5      U-S-
  U-  -   n-U%Rd                  S	:X  a  SU%l2        U%Rf                  S	:X  a  SU%l3        U%Rh                  S	:X  a  SU%l4        U%Rj                  S	:X  a  SU%l5        U,U%Rj                  U%Rl                  -   U%Rn                  -   U%Rf                  -   U%Rp                  -   U%Rr                  -   -
  niU-U%Rd                  U%Rt                  -   U%Rv                  -   U%Rh                  -   U%Rx                  -   U%Rz                  -   -
  nj[G        U%R                  S<   5      nkUkS	1-  (       a  WankWkSS=1-  (       a,  U%R                  S>   S	:X  a  [}        WiS?5      U%R                  S>'   [G        U%R                  S@   5      nlUlS	1-  (       a  WbnlWlSS=1-  (       a,  U%R                  SA   S	:X  a  [}        WjS?5      U%R                  SA'   [4        R~                  R                  USB5      nm[c        UmU5        U%R^                  Uml/        U%R`                  Uml0        U,Uml        U-Uml        Wf" U U%UWhUmXVU5      S SC u  nnnonpUn(       a  S5nOGM  WkSS=1-  (       a  ['        WiWnR                  5      Unl        O_[        U Wn5      Unl        WiUnR                  -
  nqWkS'1-  (       a  WnR                  WqS-  S5        OWk1 SDk-  (       a  WnR                  WqS5        WlSS=1-  (       a  ['        WjWnR
                  5      Unl        ONWjWnR
                  -
  nqWlS'1-  (       a  WnR                  SWqS-  5        OWl1 SEk-  (       a  WnR                  SWq5        WcR                  Wn5        Wdb  GM  UWI:X  d  GM   [        Wn5      ndGM.     UR                  Wc5      n[3        U[4        R<                  5      (       a&  [N        RP                  " SF5        Wd=(       d    SUlE        U R                  U5        UW]We/ S54$ s  snf s  snnf s  snnf s  snnf s  snnf s  snf s  snf s  snn9f )GNgrid_template_areasgrid_auto_flowgrid_auto_rowsgrid_auto_columnsr5   
column_gapr   r   rC   row_gaprj   )r   grid_template_rowsgrid_template_columnsr
   r   z-startz-endcolumnrQ   grid_column_startgrid_column_endgrid_row_startgrid_row_endc                      U R                   S   $ )Norder)r   )r   s    r   <lambda>grid_layout.<locals>.<lambda>  s    TZZ5Hr   )keygrid__start_endr]   r<   )block_level_width)inline_block_widthr'   r(   r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   rG   ru   s      r   r   grid_layout.<locals>.<genexpr>  s     'JMMr   center>   rE   rightflex-endzspace-aroundzspace-betweenzspace-evenlyr   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r   '  s     /JJr   baselinez3Baseline alignment is not supported for grid layoutc              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r   T  s     :$9$9r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r   [  s     6 5WTD 5r   rF   any)breakpageFc              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r   s  s     D$C$Cr   justify_itemsalign_itemsr   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r     s     =$<$<r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    r   s      r   r   r     s     ;$:$:r   justify_selfr   r)   px
align_selfr*   r       >   rE   r  r  self-end>   rE   r  r  zInline grids are not supported)Gcreate_block_formatting_contextr   r   r)   r   r*   rp   rx   r8   rm   rT   rn   nextr6   r   rL   r   rc   rz   rV   rS   r   rO   r2   insertr   r   GridBoxr   r   InlineGridBoxinliner   rh   r   rR   content_box_xr   content_box_yr	   rl   iteroverflows_pager   indexgetr   r   r   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)rr   boxr   r   r   r   r   r   
grid_areasflow	auto_rowsauto_columnsauto_rows_backauto_columns_backr   refer_tor   rQ   rowscolumnsgrid_areas_columns	rows_diffru   columns_diffr(   r'   	area_name
start_namenamenamesr   end_namer\   second_flowfirst_tracksrZ   r[   r   column_start
column_end	row_startrow_endcolumn_placementrow_placementr)   r*   r   first_start	first_endrW   rX   rY   second_placementimplicit_second_1implicit_second_2remaining_grid_itemsrr   rG   r<   implicit_first_1implicit_first_2positioncursor_firstcursor_secondsecond_isecond_sizefirst_i
first_size	intersect
first_diffoverflowimplicit_x1implicit_x2implicit_y1implicit_y2r   r   row_sizing_functionscolumn_sizing_functionscolumns_sizes
rows_sizesr   
free_widthcolumns_positionscolumns_numberr   free_heightrows_positionsrows_numberthis_page_children
resume_rowskip_rowskip_height	resume_attotal_heightrow_lines_positionsrow_yr  r  new_childrenr  	next_pager   r  child_skip_stackchild_widthchild_heightr  r  r   	new_childchild_resume_atchild_next_pagediffsr                                                                                                                     r   grid_layoutrz  B  s@   ++- 01J99%&Dcii 012I#678L399%56tt<=Ncii(;<TrTBC<(JX
-0YY&-@#))cii
5
ii	"G(

f,1#**Wh/V
'12z$s)zJ2		*> ?@D"399-D#EFG 0:Z]+qSY]a'(3z?:I1}y!Atf'99: "	Q	z"AKKY(KKO #
 Gq(A-.1CCLaC<(

4  )  
	}%ANN4-.NN2 &
 J'3%cNLAy %;f-J%)#A#Y?Yc34T3TYE?&QqS	  ,(/!HfTTEH&!##J/ + ( Jtt,-3%c$B$i0LAy #D)H%)#A#Y?Yc34T3TYE?u$RT!V##H-(/!HfTTEHu$1Q&&x0 1 . &-5J#t+%K%.4GL'50DgM {{#67[[!23
KK 01	++n-)*gccl4&y'4!9E'HAu%IAv)*Auf(=u%   cll(HIH&&kkE*V"<=KK%
|4 89	(icPQcARS{{U;-v#>?[[5T!:;
0\:}
GtO= 'IAv'HAu&HAu(IAv%&5&$95!' . h2<C
1.!
O&&h& 25 91dA 25 91a ;;{m6'BCLu[M%>?J-j-!*< > ''.*4#45D*;<# & &{{U;-v#>?[[5T!:;
6!l1o&??D6!jmv&=a=D 1TYQ ?ARS & Uz?1;3z!}-&--/$MAq!T$MAq$q"23q4x)9: 0 #34E-L$)E++j\&@AKeJ<t$<=I ;;{m6'BCLu[M%>?J-j-!*< >/(8%+ ($\2G"f,.<!7Q;5y,sQRsBS/U+  +1~777(5.<'$!d0BD)I(1-//+ - "7Gj,@A%.#+WqA,76E6#*HqA,66E$<q%1C1J1J1L%N	$9 " B  9  3: %z14DD
>$
2$&#WqA$/6E6"HqA$.6E-.5&,A"5) /?@Qm*G$)-9J$K&&02@!%w{D 99lSVUVSVFW3Y/GZ $/q>V#;;#;#,[#9D2@ +dGaK$4F-M ,SqS 133/GZ (614B!%x!|T :J -cc 2541Hk $-\#:D4B ,tX\D5H$.O -cc 2541Hk &.#+WqA,76E6#*HqA,66E$<q%1C1J1J1L%N	#+k#9<M#M$$ :;Auf8M.u5 ,z 9A =@P P ')A~ 0J > 0!O %LV %)%1A%58H%H
%>,
:,(9 Y *\ *E++j\&@AKeJ<t$<=I ;;{m6'BCLu[M%>?J-j-!*< >(8%+m+ A%L ($),$7L"f,.<!<!#3T:I(1-//+  +1~777(5.<'$!d0BD)I(1-//+ - $Wg
.BC%.#+WqA,76E6#*HqA,66E$<q%1C1J1J1L%N	$9 "  D  ; %8< %z14DD
>$
2$-.5&,A"5)*G$)-9J$K&&02@!%w{D 99lSVUVSVFW3Y/GZ $-[#9D2@ +dGaK$4F-M ,SqS 133/GZ (614B!%x!|T :J -cc 2541Hk $-\#:D4B ,tX\D5H$.O -cc 2541Hk &.#+WqA,76E6#*HqA,66E$<q%1C1J1J1L%N	#+k#9<M#M$$ :;Auf8M.u5!E %LL %)%1A%58H%H
%>,
:,(9 C *F U#46G[#35E[[#35E[#46G[1{?#q$012q" $ 3z!}%KHtL)*r I 1{?#AtN+,Ar $ 3z?K0DO$B 1 #u}}%%,#0#u223333.3)9:
yyF$**	
 CGqt!t*M*31#6*M4;ADqDMC4A&f%M  C *,>@QZ#'M
 'cjj*<k3MBMqMBDJ #))$567OAQ		C'JM'J$JJKJ'N(#	Z!^$GD!$$Q'
""A % 
7	7	Z$GD!$$Q'
""A % 
N+	+	Z!^n,,$GD!$$Q'
^33j@@A % 
O,	,$GD!$$Q'"TJ.1*<==
JJ % 
N+	+	Z>A-..$GD!$$Q'
nq&899JFFA % %GD!$$Q'
""A % 		/23MA
zzV JJ/J//0_q G+, 	 ![)Nj/Kz!	[1_!GD!!!!$A " 
5	5	[!GD!!!!$A " 
.)	)	[1_{**!GD!!!!$k11G;;A " 
/*	*!GD!!!!$aTK;?;;gEE " 
.)	)	[K!O,,!GD!!!!${Q77'AAA " J<'NNPQ!GD!!!!$A " JZ():Jy$9::IX&'!+w67 	 I6
89 566	Z	"	#a	'72	3  	x!|}%):):)<|)K(LL 1AF5!!,0CDD 6'Er5PPU
qS$K	%E!3E!:JAq!Q1+!++*11%8 &  G E+E2JAq!Q1}"))%0  zzVDJx
$CDDHZ01A5@A 	
 		/23Mcii./KLH.I)#071eV""5)*..++A0F)!}U3# ,Q/)!,{:E3'=M!AeG$<==QY*$% 	 ;Jq6$:;;aZ7"# 	
 v% E'!"E&("#E& !E 7 77%:L:LL!&!9!9:<A<O<OPQ u5558I8II "'";";<>C>R>RST 5;;~676("(L8Y//{{7#v-'0d'CG$\23
 $J9--{{8$.(1,(EH% ((77R@F$45!,,!,,6HUL*:F;788:7<3	?O !M 8Y//!+y?IO/CIO0Dxj(##D1Ha0 HH##D!, 9--"<1A1ABI)"2"22DXJ&##Atax0==##At, 	I&[ 0,Y7Hq $t 
 
 
.C#u**++78}1++C0	9b%//E 3B @ I @ Ix
 NC  Cs8   4Ae5Ae
6Ae
9Ae
=Ae"
Ae(/Ae-<Ae2r   )!__doc__	itertoolsr   r   mathr   css.propertiesr   formatting_structurer   loggerr	   percentr   r   	preferredr   r   tabler   r   r   r%   r2   rA   rL   rO   rc   rh   rx   r   r   rz  r    r   r   <module>r     sq    0 "  & (  4 ; (AA*&85p/%d$%Pk=` >Bk\\
0r   