+
    	iA                     j   R t ^ RIt^ RIHtHtHt ^ RIHt ^RIH	t	 ^RI
Ht ^RIHt ^RIHtHtHtHtHt ^RI
HtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9 / t: ! R	 R
]4      t;R t<R t=R t>]=! R4      ]=! R4      ]=! R4      ]=! R4      ]=! R4      ]=! R4      R 4       4       4       4       4       4       t?]=! R4      ]>! RRRRRR7      R 4       4       t@]=! R4      ]>! RRR RR7      R! 4       4       tA]=! R"4      R# 4       tB]=! R$4      ]=! R%4      ]=! R&4      ]=! R'4      ]=! R(4      ]=! R)4      ]>! R*R+R,4      R- 4       4       4       4       4       4       4       tC]=! R.4      ]>! R/R0R1R2R*RR7      R3 4       4       tD]=! R44      ]>! R/R0R1R2R*R5RR7      R6 4       4       tE]=! R74      R8 4       tF]=! R94      ]>! R:R+R,R;4      R< 4       4       tGR= tH]=! R>4      ]>! R?4      R@ 4       4       tI]=! RA4      ]>! RB4      RC 4       4       tJ]=! RD4      ]>! RE4      RF 4       4       tK]=! RG4      ]>! RHRI4      RJ 4       4       tL]=! RK4      ]>! RLRMRNRORPR4      RQ 4       4       tM]=! RR4      ]>! R,RSRTRURVRWRX4      RY 4       4       tN]=! RZ4      ]>! R[4      R\ 4       4       tO]=! R]4      ]>! R^R_R`4      Ra 4       4       tP]=! Rb4      ]>! RcRd4      Re 4       4       tQRf tR]=! Rg4      ]>! RhRiRj4      Rk 4       4       tS]=! Rl4      ]>! RmRnRoRpRqRr4      Rs 4       4       tTRt tU]=! Ru4      ]=! Rv4      ]>! RwRx4      Ry 4       4       4       tV]=! Rz4      ]>! R{R|R}R~4      R 4       4       tW]=! R4      ]=! R4      ]>! RR4      R 4       4       4       tX]=! R4      ]>! R4      R 4       4       tY]=! R4      ]>! R4      R 4       4       tZ]=! R4      ]>! RR4      R 4       4       t[]=! R4      ]>! RR4      R 4       4       t\]=! R4      ]>! RR4      R 4       4       t]]=! R4      ]>! RRR4      R 4       4       t^]=! R4      ]>! RR4      R 4       4       t_R# )zValidate properties expanders.N)DimensionToken
IdentTokenNumberToken)parse_color)	check_var)INITIAL_VALUESexpand_font_variant)InvalidValuesPendingget_keywordget_single_keywordsplit_on_comma)&background_attachmentbackground_imagebackground_positionbackground_repeatbackground_sizeblock_ellipsisborder_image_sourceborder_image_sliceborder_image_widthborder_image_outsetborder_image_repeatborder_styleborder_widthboxcolumn_countcolumn_width
flex_basisflex_directionflex_grow_shrink	flex_wrapfont_family	font_sizefont_stretch
font_stylefont_variant_capsfont_weightgap	grid_linegrid_templateline_heightlist_style_imagelist_style_positionlist_style_typemask_border_modeother_colorsoverflow_wraptext_decoration_thicknessvalidate_non_shorthandc                   <   a a ] tR t^t oRtV 3R ltR tRtVtV ;t	# )PendingExpanderz>Expander with validation done when defining calculated values.c                T   < \         SV `  WP                  R ,          4       W n        R# )nameN)super__init__keywords	validator)selftokensr<   	__class__s   &&&i/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/weasyprint/css/validation/expanders.pyr:   PendingExpander.__init__   s     !3!3F!;<"    c                    V P                  V4       FG  w  r4VP                  R 4      '       d"   V P                   P                  R,           V 2pW28X  g   KE  Vu # 	  \        h)-r8   )r<   
startswithr;   KeyError)r=   r>   
wanted_keykeyvalues   &&&  r@   validatePendingExpander.validate!   sV    ..0JC~~c""0089#? 	 1
 rB   )r<   )
__name__
__module____qualname____firstlineno____doc__r:   rJ   __static_attributes____classdictcell____classcell__)r?   __classdict__s   @@r@   r6   r6      s     H# rB   r6   c                    V  F3  p\        V4      '       g   K  \        W4      pV Uu/ uF  qUVbK  	  upu # 	  R# u upi )z5Return pending expanders when var is found in tokens.N)r   r6   )r>   expanderexpanded_namestokenpendingr8   s   &&&   r@   	_find_varrZ   *   s=    U%f7G.<=nd'Mn==	  >s   <c                   a  V 3R lpV# )z1Decorator adding a function to the ``EXPANDERS``.c                >   < S\         9  g   Q S4       hV \         S&   V # )z&Add ``function`` to the ``EXPANDERS``.)	EXPANDERS)functionproperty_names   &r@   expander_decorator$expander.<locals>.expander_decorator5   s%    I-<}<-#+	- rB    )r_   r`   s   f r@   rV   rV   3   s    
 rB   c                 P   a a VP                  RR4      oV'       d   Q hV V3R lpV# )zDecorator helping expanders to handle ``inherit`` and ``initial``.

Wrap an expander so that it does not have to handle the 'inherit' and
'initial' cases, and can just yield name suffixes. Missing suffixes
get the initial value.

wants_base_urlFc                P   <a a \         P                  ! S 4      VVVV 3R l4       oS# )z"Decorate the ``wrapped`` expander.c              3  L  <"   \         P                  ! SWR7      pRp\        V 4      pVR9   d   S Uu/ uF  qVbK  	  ppRpM\        WS4      pV'       d   RpV'       gc   / pS'       d   S! V XV4      pM	S! V X4      pV F>  w  rVS9   g   Q V4       hW9   d"   \	        RVP                  R4       RV R24      hWV&   K@  	  S FS  pVP                  R4      '       d   X V 2p
MTp
W9   d$   Wh,          pV'       g   \        WVRR	7      w  w  rMRpW3x  KU  	  R
# u upi 5i)zWrap the expander.r8   base_urlFinitialTzgot multiple rD   z values in a z
 shorthandrequiredN)inheritri   )	functoolspartialr   rZ   r
   striprE   r4   )r>   r8   rh   rV   skip_validationkeywordresultsresultnew_name	new_tokenactual_new_namerI   rW   generic_expander_wrapperrd   wrappeds   &&&         r@   rw   Vgeneric_expander.<locals>.generic_expander_decorator.<locals>.generic_expander_wrapperJ   s\     !(((tHH $O(0G005CD^T=^D"&#FnE&*O"!$VT8<F$VT2F+1'H#~5?x?5*++HNN3,?+@ A$$(656 6 )2H% ,2 +&&s++)-xj&9O&.O&#-E*4J!Ht5M10 &E%,,! ++ Es   1D$D"D$"	D$,B8D$)rm   wraps)rx   rw   rW   rd   s   f@r@   generic_expander_decorator4generic_expander.<locals>.generic_expander_decoratorH   s'    		!-	- 
"-	-\ ('rB   )pop)rW   kwargsr{   rd   s   j, @r@   generic_expanderr   =   s,     ZZ 0%8N:1(d &%rB   zborder-colorzborder-stylezborder-widthmarginpaddingbleedc              #    "   . pR FN  pVP                  R4      ;pR8X  d   VP                  V V 24       K2  VP                  VRV  V WR  24       KP  	  \        P                  ! \        WR7      p\        WV4      ;p'       d   VP                  4        Rj  xL
  R# \        V 4      ^8X  d   V ^,          p Mb\        V 4      ^8X  d   V ^,          p MH\        V 4      ^8X  d   W ^,          3,          p M'\        V 4      ^8w  d   \        R\        V 4       24      h\        W04       F  w  r\        V	.WRR7      w  pVx  K  	  R#  L5i)	z>Expand properties setting a token for the four sides of a box.rD   Nrg   %Expected 1 to 4 token components got Trj   z-topz-rightz-bottomz-left)rfindappendrm   rn   expand_four_sidesrZ   itemslenr
   zipr4   )
r>   r8   rh   rW   suffixirV   rs   expanded_namerX   s
   &&&       r@   r   r   }   sF     N8C AR'!!TF6("34 !!T"1XJvhtBxj"AB 9   9H6^<<v<<<>!! 6{a!	V	!	V	!9,	V	3CK=AC 	C #N ; )G]t= !< 	"s   BEE
B.Ezborder-radiuszborder-top-left-radiuszborder-top-right-radiuszborder-bottom-right-radiuszborder-bottom-left-radiusT)rd   c              #    "   . ;r4. pV  Fb  pVP                   R8X  d>   VP                  R8X  d-   W4J d   W`R,          8X  d   \        R4      hTpKF  \        R4      hVP                  V4       Kd  	  V'       g
   VR,          pWE3 F  p\	        V4      ^8X  d   V^,          pK  \	        V4      ^8X  d   V^,          pK9  \	        V4      ^8X  d   VP                  V^,          4       Kc  \	        V4      ^8w  g   Ku  \        R\	        V4       24      h	  Rp\        V\        WE4      4       F  w  rRV	 R2p\        WVR	R
7       W3x  K   	  R# 5i)z-Validator for the ``border-radius`` property.literal/z"Expected value after "/" separatorzExpected only one "/" separator:NNNr   zborder-z-radiusTrj   Nr   )ztop-leftz	top-rightzbottom-rightzbottom-left)typerI   r
   r   r   r   r4   )
r>   r8   rh   current
horizontalverticalrX   valuescornerscorners
   &&&       r@   border_radiusr      s;     GH::"u{{c'9$2J&'(LMM&G#$EFFNN5!  a=&v;!aKF[AaKF[AMM&)$[A7F}EG G ' GGgs:'@A(vXEl Bs   A5E8A<E9AEz
list-style-type	-position-imagec              #    "   R;r4^ pV  Fd  p\        V4      R8X  d   V^,          pTpK   \        V.V4      e   RpRpM*\        V.4      e   RpM\        V.4      e   RpRpM\        hW.3x  Kf  	  V'       g   V'       d   RX.3x  V^,          pV'       g   V'       d   RX.3x  V^,          pV'       d   \        hR# 5i)zqExpand the ``list-style`` shorthand property.

See https://www.w3.org/TR/CSS21/generate.html#propdef-list-style

FnoneNr   Tr   r   )r   r-   r.   r/   r
   )	r>   r8   rh   type_specifiedimage_specified
none_countrX   
none_tokenr   s	   &&&      r@   expand_list_styler      s      (-,NJu' !OJJUGX.:F"O %)5 FeW%1F!Ngo% ( j
|##a
z$$a
 s$   A7C:CCC"C:Cborderc              #  Z   "   R F  p\        WV,           V4       Rj  xL
  K   	  R#  L
5i)zdExpand the ``border`` shorthand property.

See https://www.w3.org/TR/CSS21/box.html#propdef-border

Nr   )expand_border_side)r>   r8   rh   r   s   &&& r@   expand_borderr      s(      9%fVmXFFF 9Fs   +)+z
border-topzborder-rightzborder-bottomzborder-leftzcolumn-ruleoutline-width-color-stylec              #     "   V  FA  p\        V4      e   RpM(\        V.4      e   RpM\        V.4      e   RpM\        hW2.3x  KC  	  R# 5i)zlExpand the ``border-*`` shorthand properties.

See https://www.w3.org/TR/CSS21/box.html#propdef-border-top

Nr   r   r   )r   r   r   r
   )r>   r8   rX   r   s   &&  r@   r   r     sU      u)F5'".F5'".Fgo s   A
Azborder-image-outset-repeat-slice-sourcec              #    "   \        V 4      p V '       Ed;   \        V R,          V4      '       d   RV P                  ^ 4      .3x  K:  \        V R,          4      '       d]   V P                  ^ 4      .pV '       d;   \        V R,          4      '       d#   VP	                  V P                  ^ 4      4       KB  RV3x  K  \        V R,          4      '       g   \        V ^ ,          4      R8X  Ed`   V P                  ^ 4      .pV '       dA   \        W@R,          ,           4      '       d#   VP	                  V P                  ^ 4      4       KH  RV3x  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       MEK  V '       g   \        h\        V R,          4      '       d   V P                  ^ 4      .pV '       dA   \        WPR,          ,           4      '       d#   VP	                  V P                  ^ 4      4       KH  RV3x  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       MSEK^  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       M\        hV '       g   \        h\        V R,          4      '       dd   V P                  ^ 4      .pV '       dA   \        W`R,          ,           4      '       d#   VP	                  V P                  ^ 4      4       KH  R	V3x  EK7  \        h\        hR
# 5i)zuExpand the ``border-image-*`` shorthand properties.

See https://drafts.csswg.org/css-backgrounds/#the-border-image

N   Nr   r   fillr   r   r   r   r   N)listr   r}   r   r   r   r   r   rI   r
   r   r   r>   r8   rh   repeatssliceswidthsoutsetss   &&&    r@   expand_border_imager      sM     &\F
&vbz844fjjm_,, ,,zz!}oG0<<vzz!}-W$$r
++{6!9/E/Ojjm_F/0CDDfjjm,F""&)..I5&)//S:P

1 ##!&*-- **Q-!3FBZ4G!H!HMM&**Q-0&&fQinn	9fQiooQT>TJJqM F1INNi7F1IOOs<R

1 $###"6":..!::a=/!4Wbz5I!J!JNN6::a=1(( $#g sH   MA"M:BMAMAM!7MAM'AM4AM7M<AMzmask-border-modec              #  
  "   \        V 4      p V '       Edk   \        V R,          V4      '       d   RV P                  ^ 4      .3x  K:  \        V R,          4      '       d   RV P                  ^ 4      .3x  Kj  \	        V R,          4      '       d]   V P                  ^ 4      .pV '       d;   \	        V R,          4      '       d#   VP                  V P                  ^ 4      4       KB  RV3x  K  \        V R,          4      '       g   \        V ^ ,          4      R8X  Ed`   V P                  ^ 4      .pV '       dA   \        W@R,          ,           4      '       d#   VP                  V P                  ^ 4      4       KH  RV3x  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       MEK  V '       g   \        h\        V R,          4      '       d   V P                  ^ 4      .pV '       dA   \        WPR,          ,           4      '       d#   VP                  V P                  ^ 4      4       KH  R	V3x  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       MSEK  V '       dC   V ^ ,          P                  R8X  d+   V ^ ,          P                  R8X  d   V P                  ^ 4       M\        hV '       g   \        h\        V R,          4      '       dd   V P                  ^ 4      .pV '       dA   \        W`R,          ,           4      '       d#   VP                  V P                  ^ 4      4       KH  R
V3x  EKg  \        h\        hR# 5i)znExpand the ``mask-border-*`` shorthand properties.

See https://drafts.fxtf.org/css-masking/#the-mask-border

r   r   r   r   r   r   r   r   r   r   N)r   r   r}   r0   r   r   r   r   r   rI   r
   r   r   r   s   &&&    r@   expand_mask_borderr   `  sq     &\F
&vbz844fjjm_,,fRj))FJJqM?** ,,zz!}oG0<<vzz!}-W$$r
++{6!9/E/Ojjm_F/0CDDfjjm,F""&)..I5&)//S:P

1 ##!&*-- **Q-!3FBZ4G!H!HMM&**Q-0&&fQinn	9fQiooQT>TJJqM F1INNi7F1IOOs<R

1 $###"6":..!::a=/!4Wbz5I!J!JNN6::a=1(( $#k sH   NBN*BN6ANAN7N	ANAN$AN47N,AN
backgroundc              #    aa"   Ro\        V 4      pVR9   d   S F  pW3x  K
  	  R# \        P                  ! \        VSR7      p\	        WS4      ;p'       d   VP                  4        Rj  xL
  R# R	VV3R llp\        \        V 4      4      pV! \        V4      RR7      w  rV	P                  4        U
Uu/ uF  w  rW.bK
  	  pp
pV F=  p V! V 4      w  rVP                  4        F  w  rW,          P                  V4       K  	  K?  	  VP                  4        F  w  rWRRR
1,          3x  K  	  RV3x  R#  Lu upp
i 5i)zoExpand the ``background`` shorthand property.

See https://drafts.csswg.org/css-backgrounds-3/#the-background

background-colorNrg   c           	      "  <a / oV3R  lpV RRR1,          p V '       Ed   V! R\         P                  ! V RR RRR1,          4      4      '       d   V RR1 K@  V RR pV'       d+   V! R\        V4      4      '       d   V P                  4        Kw  V! R\        P                  ! VS4      4      '       d   V P                  4        K  V! R\         P                  ! V4      4      '       d   V P                  4        K  V! R\
        P                  ! V4      4      '       d   V P                  4        EK  R\        V 4      ) R  F  pW) R RRR1,          p\        P                  ! V4      pVf   K.  V! RV4      '       g   Q hW) R1 V '       d   V R,          P                  R8X  dp   V R,          P                  R8X  dX   R\        V 4      ) R  FD  pW) R RRR1,          p\        P                  ! V4      pVf   K.  V! R	V4      '       g   Q hW) R1 KF  	   M	  Xe   EK  V! R
\        P                  ! V4      4      '       dj   V P                  4        V RR pV! R\        P                  ! V4      4      '       d   V P                  4        MV! R\        P                  ! V4      4       EK  \        hSP                  R\        R,          4      p	S F<  p
V
S9  g   K  V
R8w  g   K  \        V
P                  RR4      ,          ^ ,          SV
&   K>  	  V	S3# )c                 B   < Vf   R# RV  2p V S9   d   \         hVSV &   R# )NFzbackground-Tr
   )r8   rI   rr   s   &&r@   add3expand_background.<locals>.parse_layer.<locals>.add  s0    } 'Dw##!GDMrB   Nrepeatcolorimage
attachmentpositionr   r   sizeoriginclipr   background_colorrD   _r   )         r   )r   r   )r   single_valuer1   r}   r   r   r   r   r   rI   r   r   r
   r   replace)r>   final_layerr   rX   nn_tokensr   r   
next_tokenr   r8   rr   rh   rW   s   &&         @r@   parse_layer&expand_background.<locals>.parse_layer  s   	 "f8$11&+dd2CDF F23K23KEs7L,?@@

7,99%JKK

8.;;EBCC

<!6!C!CE!JKK

!3v;,-0!"#;tt,.;;HE'z84444rs6":??i#?"2J,,3!'V!6A'-b}TrT':H#2#?#?#ID#/'*64'8'8 8'8$*23K "7  1  #8S--e455

#BC[
vs//
;<<JJL  0 0 78/A BD"D7"t/A'A .t||C/E Fq I # g~rB   T)r   )r   zbackground-imagezbackground-repeatzbackground-attachmentzbackground-positionzbackground-sizezbackground-clipzbackground-origin)ri   rl   )Fr   )
r   rm   rn   expand_backgroundrZ   r   reversedr   nextr   )r>   r8   rh   rq   rV   rs   r   layersr   
last_layerrH   rI   rr   r   layerr   rW   s   &&f             @r@   r   r     s=    0N !(G(("D- #  x9H6^<<v<<<>!!B BH nV,-F#DLdCE.8.>.>.@A.@
sG|.@GAv& ;;=KDM  ' )   4R4L   (
e
##a 	"R Bs&   A)E-D=.AE9D?A7E?Eztext-decoration-line
-thicknessc              #  F  "   . p. p. p. pRpV  F  p\        V4      pVR	9   d-   VP                  V4       V'       d   \        hVR8X  d   RpK?  KA  VR
9   d"   V'       d   \        hVP                  V4       Ki  \        V4      '       d"   V'       d   \        hVP                  V4       K  \	        V.4      '       d"   V'       d   \        hVP                  V4       K  \        h	  V'       d   RV3x  V'       d   RV3x  V'       d   RV3x  V'       d	   RV3x  R# R# 5i)z2Expand the ``text-decoration`` shorthand property.Fr   Tr   r   r   r   N)r   	underlineoverlinezline-throughblink)soliddoubledotteddashedwavy)r   r   r
   r   r3   )	r>   r8   liner   style	thicknessnone_in_linerX   rq   s	   &&       r@   expand_text_decorationr   	  s     DEEILe$PPKK##F"# #GG##LL##LL&w//##U#+ . tmooI%% s4   :D!!D!1D!2D!(D!-D!;D!	D!
D!c              #     "   \        V 4      pVP                  R^4      ^,          pVR9   d   W03x  R# VR8X  d8   \        V ^ ,          P                  V ^ ,          P                  R4      pW4.3x  R# \
        h5i)zExpand legacy ``page-break-before`` and ``page-break-after`` properties.

See https://www.w3.org/TR/css-break-3/#page-break-properties

rD   alwayspageN)autoleftrightavoid)r   splitr   source_linesource_columnr
   )r>   r8   rq   rt   rX   s   &&   r@   expand_page_break_before_afterr   4  sw      !(Gzz#q!!$H44	H	1I!!6!9#:#:FDs   A7A9zpage-break-afterzbreak-afterc                    \        W4      # )zlExpand legacy ``page-break-after`` property.

See https://www.w3.org/TR/css-break-3/#page-break-properties

r   r>   r8   s   &&r@   expand_page_break_afterr  F       *&77rB   zpage-break-beforezbreak-beforec                    \        W4      # )zmExpand legacy ``page-break-before`` property.

See https://www.w3.org/TR/css-break-3/#page-break-properties

r   r  s   &&r@   expand_page_break_beforer  Q  r  rB   zpage-break-insidebreak-insidec              #  J   "   \        V 4      pVR9   d	   RV 3x  R# \        h5i)zqExpand the legacy ``page-break-inside`` property.

See https://www.w3.org/TR/css-break-3/#page-break-properties

r  N)r   r   )r   r
   r>   r8   rq   s   && r@   expand_page_break_insider	  \  s+      !(G##f$$s   !#columnscolumn-widthcolumn-countc              #    "   Rp\        V 4      ^8X  d$   \        V ^ ,          4      R8X  d   V RRR1,          p V  F8  p\        V.4      e   VR8w  d   RpM\        V.4      e   RpM\        hW.3x  K:  	  \        V 4      ^8X  dC   VR8X  d   RMRp\        V ^ ,          P                  V ^ ,          P                  R4      pW.3x  R# R# 5i)z*Expand the ``columns`` shorthand property.Nr   r  r  r   )r   r   r   r   r
   r   r   r   )r>   r8   rX   s   && r@   expand_columnsr  k  s      D
6{aKq	2f<" ,1G!D5'".!DGm  6{a!%!7~^1I!!6!9#:#:FDGm	 s   CC
zfont-variantz-alternatesz-capsz-east-asianz
-ligaturesz-numericc                    \        V 4      # )zgExpand the ``font-variant`` shorthand property.

https://www.w3.org/TR/css-fonts-3/#font-variant-prop

r   r  s   &&r@   font_variantr    s     v&&rB   font-variant-caps-weight-stretch-sizeline-height-familyc              #  J  "   \        V 4      pVR9   d   \        R4      h\        \        V 4      4      p \	        ^4       F  pV P                  4       p\        V4      R8X  d   K%  \        V.4      e   RpM5\        V.4      e   RpM$\        V.4      e   RpM\        V.4      e   RpM M6WT.3x  V '       d   K{  \        h	  V '       g   \        hV P                  4       p\        V.4      f   \        hRV.3x  V '       g   \        hV P                  4       pVP                  R	8X  d>   VP                  R
8X  d-   V P                  4       p\        V.4      f   \        hRV.3x  MV P                  V4       V P!                  4        \#        V 4      f   \        hRV 3x  R# 5i)zWExpand the ``font`` shorthand property.

https://www.w3.org/TR/css-fonts-3/#font-prop

zSystem fonts are not supportednormalNr   r  r  r  r  r   r   r  r  )captioniconmenuzmessage-boxzsmall-captionz
status-bar)r   r
   r   r   ranger}   r   r&   r'   r(   r%   r$   r   rI   r,   r   reverser#   )r>   r8   expand_font_keywordr   rX   r   s   &&    r@   expand_fontr     s     -V4 > ><== (6"#F 1X

u) ug*Fw'3$F%!-F5'".F gov+ . 

 %!
E7
 JJLEzzY5;;##5

w'eW$$ 	e NN6"
V
s   B3F#:F#
8F#B F#z	word-wrapoverflow-wrapc              #  D   "   \        V 4      pVf   \        hRV 3x  R# 5i)z`Expand the ``word-wrap`` legacy property.

See https://www.w3.org/TR/css-text-3/#overflow-wrap

Nr!  )r2   r
   r  s   && r@   expand_word_wrapr#    s'      F#G
6
!!    flex-grow-shrink-basisc           	   #    "   \        V 4      pVR8X  dW   V ^ ,          P                  V ^ ,          P                  rC\        W4^ ^ R4      p\	        W4R4      pRV.3x  RV.3x  RV.3x  R# ^^RrpRRRrp
V  F  pVP
                  R	8H  ;'       d)    VP                  ^ 8H  ;'       d    \        W34      '       * pV'       g   V'       g   \        V.4      pVe   Tp	R
pKh  V
'       g   \        V.4      pVf   \        hTpR
p
K  V'       g   \        V.4      pVf   \        hTpR
pK  \        h	  V ^ ,          P                  V ^ ,          P                  rC\        V4      P                  4       '       d   \        V4      MRp\        V4      P                  4       '       d   \        V4      MRp\        W4VV\        V4      4      p\        W4VV\        V4      4      pV'       g   \        W4^ ^ RR4      p	RV.3x  RV.3x  RV	.3x  R# 5i)zExpand the ``flex`` property.r   0r   r&  r'  r(  NFnumberTpx)r   r   r   r   r   r   	int_valueallr   r!   r
   float
is_integerintstrr   )r>   r8   rq   r   column
zero_token
auto_tokengrowshrinkbasis
grow_foundshrink_foundbasis_foundrX   forced_flex_factor	new_basisnew_grow
new_shrinkint_grow
int_shrink
grow_tokenshrink_tokens   &&                    r@   expand_flexrD    s     !(G&ay,,fQi.E.Ef q!S9
f5

|##*%%$$De05ue+
E 

h& 4 45??a+? 4 4233  '9&w/	(!E"&K+UG4#''#D!%J!-ug6
%'''F#'L##; < ay,,fQi.E.Ef %d 6 6 8 83t9d$)&M$<$<$>$>S[D
 tXs4yI
"&*c&k;"4AsDAE
|##,''s+   BHH'HH	H'#HC=Hz	flex-flowflex-direction	flex-wrapc              #    "   \        V 4      ^8X  dr   W RRR1,          3 FZ  p\        V^ ,          .4      p\        V^,          .4      pV'       g   K3  V'       g   K=  RV^ ,          .3x  RV^,          .3x   R# 	  \        h\        V 4      ^8X  d]   \        V ^ ,          .4      pV'       d   RV ^ ,          .3x  R# \        V ^ ,          .4      pV'       d   RV ^ ,          .3x  R# \        h\        h5i)z"Expand the ``flex-flow`` property.NrE  rF  r   )r   r    r"   r
   )r>   r8   sorted_tokens	directionwraps   &&   r@   expand_flex_flowrK    s      6{a#DbD\1M&a(8'9:ImA./0DyTT&q)9(:::!M!$4#555 2  	V	"F1I;/	"VAYK//fQi[)D!F1I;..##s   AC6C6BC6c              #     "   V ^ ,          P                   V ^ ,          P                  r2\        W#R4      p\        V 4      ^8X  d/   \	        V ^ ,          4      R8X  d   RV.3x  RV.3x  RV.3x  R# . .pV  FP  pVP
                  R8X  d%   VP                  R8X  d   VP                  . 4       K8  VR,          P                  V4       KR  	  \        V4      ^8X  dm   \        V^ ,          4      p\        V^,          4      pV'       d;   V'       d$   RV^,          3x  RV^ ,          3x  RV.3x  R# V^,          p\        h\        h\        V4      ^8X  d
   V.p\        h\        h5i)	    r   -columns-rows-areasNr   r   r   )
r   r   r   r   r   r   rI   r   r+   r
   )	r>   r8   r   r3  r   slash_separatedrX   rowsr
  s	   &&       r@   _expand_grid_templaterS  :  s[    !9((&)*A*A&dF+D
6{aKq	2f<4&  vodO::"u{{c'9""2&B&&u-	 
 ?q _Q/0 23 /!"444q111&&%a(G   	_		"&  s   DE&AE&grid-templaterN  rO  rP  c              #  8   "   \        W4       Rj  xL
  R#  L5i)z&Expand the ``grid-template`` property.N)rS  r  s   &&r@   expand_grid_templaterV  \  s      %V222s   gridz-template-columnsz-template-rows-template-areas-auto-columns
-auto-rows
-auto-flowc              #    "   V ^ ,          P                   V ^ ,          P                  r2\        W#R4      p\        W#R4      p\        W#R4      p\        W#R4      p \        \	        V R4      4      pV F$  w  rRVP                  R4      R,           2V	3x  K&  	  RV.3x  R	V.3x  R
V.3x  R#   \         d     Mi ; i. .p
T  FP  pTP                  R8X  d%   TP                  R8X  d   T
P                  . 4       K8  T
R,          P                  T4       KR  	  \        T
4      ^8w  d   \        hRpRpR. R. /p\        YP                  4       4      pT F  w  p w  ppRpT  F  p\        T4      R8X  d$   T'       g   T'       d   TT8w  d   \        hTpTpK6  \        T4      R8X  d$   T'       g   T'       d   TT8w  d   \        hRpTpKi  YR,          8X  d   TP                  T4       K  \        h	  K  	  T'       g   \        hTR8X  d   RMRpTR8X  d   TMTpR
T'       d   TT3MT33x  RT R2\        Y,          4      3x  RT R2T.3x  RT R2T.3x  RT R2\        TT,          4      3x  RT.3x  R# 5i)zExpand the ``grid`` property.r   r   rowr3  rT  z
-template-rD   rY  rZ  r[  Nr   r   Fdensez	auto-flowTz-auto-srX  r   )r   r   r   tuplerS  r   r
   r   rI   r   r   r   r   r   )r>   r8   r   r3  r   r   r]  templaterH   rI   split_tokensrX   
auto_trackr^  	templatesiterabletracktrack_templatesauto_flow_tokennon_auto_trackauto_track_tokens   &&                   r@   expand_gridrk  c  s    
 !9((&)*A*A&dF+DdF+D
T5
)Ch/F
.vGH #JCsyy~b123U:: #v%%TF""SE!!   4L::"u{{c'9#R&	 
 <AJEHb)I<!23H,4((E5!W,ZJ%,?''"
U#{2"zjE6I''"&"
*$&&u-##  -5" (H4U(N!+x!7vS
%*	5!1A0CE E:,a
 %	(=">
>>>"!
$tf
,,zl!
$tf
,,~&a
(%	.0I*J
JJ
dV
##sR   AI?B/ .AI?/B=:I?<B==B>I?<I?*I?/I?7AI?>$I?#AI?c              #     "   . .pV  FP  pVP                   R 8X  d%   VP                  R8X  d   VP                  . 4       K8  VR,          P                  V4       KR  	  ^\        V4      u;8:  d   V8:  g    \        h \        h. pV F:  p \        V 4      ;p'       g   \        hVP                  V4       \        V 4      x  K<  	  \        XP                  VP                  R4      p\        V4      ;p^8:  dh   \        V^ ,          R,          4      R08H  pV'       d   \        V^ ,          4      MV3p	VP                  V 4       VP                  V^ ,          4       V	x  V^u;8:  d   V8  d@   M M<\        V^ ,          R,          4      R08H  pV'       d   \        V^ ,          4      MV3x  V^u;8:  d   V8  dC   M R# \        V^,          R,          4      R08H  pV'       d   \        V^,          4      MV3x  R# R# 5i)r   r   r   :Nr   NNr   )r   rI   r   r   r
   r*   r`  r   r   r   set)
r>   
max_number
grid_linesrX   validations
validationr   linescustom_identrI   s
   &&        r@   _expand_grid_column_row_areart    s    J::"u{{c'9b!2e$	 
 J-:- .K'//
/:&Fm	 
 e'')<)<fEDZ Q&;q>"-.4&8(4jm$4'&!;q>*J;q>"-.4&8&2eJqM"?J;q>"-.4&8&2eJqM"? s   G=G?zgrid-columnzgrid-rowz-startz-endc              #  b   "   \        V ^4      p\        VR4       F  w  rRV 2V 3x  K  	  R# 5i)z,Expand the ``grid-[column|row]`` properties.rD   N)startendrt  r   )r>   r8   tokens_listsides   &&  r@   expand_grid_column_rowr{    s8     
 /vq9KK)9:$j&   ;s   -/z	grid-areazgrid-row-startzgrid-row-endzgrid-column-startzgrid-column-endc              #  d   "   \        V ^4      pRp\        W#4       F  w  rRV 2V 3x  K  	  R# 5i)z"Expand the ``grid-area`` property.zgrid-N)z	row-startzcolumn-startzrow-endz
column-endrx  )r>   r8   ry  sidesrz  s   &&   r@   expand_grid_arear~    s:     
 /vq9KBEK/dVnf$$ 0s   .0zgrid-gapr)   
column-gaprow-gapc              #  2  "   \        V 4      ^8X  d"   \        V 4      f   \        hRV 3x  RV 3x  R# \        V 4      ^8X  dN   \        V R,          4      \        V R,          4      r2RW#39   d   \        hRV R,          3x  RV R,          3x  R# \        h5i)zExpand the ``gap`` property.Nr  r  :rM  r   N:r   r   N)r   r)   r
   )r>   r8   
column_gaprow_gaps   &&  r@   
expand_gapr    s     
 6{av;F""	V	!&+.F3K0@GJ(($$F3K''s   BBzgrid-column-gapc              #  D   "   \        V 4      pVf   \        hRV 3x  R# 5i)z+Expand legacy ``grid-column-gap`` property.Nr  r)   r
   r  s   && r@   expand_legacy_column_gapr    s&      &kG

r$  zgrid-row-gapc              #  D   "   \        V 4      pVf   \        hRV 3x  R# 5i)z(Expand legacy ``grid-row-gap`` property.Nr  r  r  s   && r@   expand_legacy_row_gapr    s&      &kG
V
r$  zplace-contentzalign-contentzjustify-contentc                    \         h)z&Expand the ``place-content`` property.r   r  s   &&r@   expand_place_contentr    
    
 rB   zplace-itemszalign-itemszjustify-itemsc                    \         h)z$Expand the ``place-items`` property.r   r  s   &&r@   expand_place_itemsr    r  rB   z
place-selfz
align-selfzjustify-selfc                    \         h)z#Expand the ``place-self`` property.r   r  s   &&r@   expand_place_selfr    r  rB   z
line-clamp	max-linescontinueblock-ellipsisc              #    "   \        V 4      ^8X  d   \        V 4      pVR8X  dU   V ^ ,          P                  V ^ ,          P                  rC\	        W4R4      p\	        W4R4      pRV.3x  RV.3x  RV.3x  R# V ^ ,          P
                  R8X  dq   V ^ ,          P                  e\   V ^ ,          P                  V ^ ,          P                  rC\	        W4R4      p\	        W4R4      pRV ^ ,          .3x  RV.3x  RV.3x  R# \        h\        V 4      ^8X  d   V ^ ,          P
                  R8X  d   V ^ ,          P                  p\        V ^,          .4      p	V'       d[   V	eW   V ^ ,          P                  V ^ ,          P                  rC\	        W4R4      pRV ^ ,          .3x  RV.3x  RV ^,          .3x  R# \        h\        h\        h5i)	z#Expand the ``line-clamp`` property.r   r   r  r  r  r+  Ndiscard)	r   r   r   r   r   r   r-  r
   r   )
r>   r8   rq   r   r3  r   r5  discard_token	max_linesellipsiss
   &&        r@   expand_line_clampr    s     6{a$V,f!!900&)2I2I&#D&9J#D&9J
|++zl**"ZL00AY^^x'F1I,?,?,K!!900&)2I2I&#D&9J&tY?Mq	{**}o--"ZL00	V	!9>>X%q	++I%vayk2HX1%ay44fQi6M6Mf *4 C!F1I;.. =/11&33##s   GG	z
text-align-all-lastc              #  z  "   \        V 4      ^8X  d   \        V 4      pVf   \        hVR8X  d3   V ^ ,          P                  V ^ ,          P                  rC\        W4R4      pM	V ^ ,          pRV.3x  VR8X  d3   V ^ ,          P                  V ^ ,          P                  rC\        W4R4      pMTpRV.3x  R# \        h5i)z#Expand the ``text-align`` property.Nzjustify-alljustifyr  rv  r  )r   r   r
   r   r   r   )r>   r8   rq   r   r3  	align_all
align_lasts   &&     r@   expand_text_alignr  =  s      6{a$V,?m#!!900&)2I2I&"4;Iq	Iyk!!i!!900&)2I2I&#D':J"J
|##s   B9B;)`rP   rm   tinycss2.astr   r   r   tinycss2.color5r   	functionsr   
propertiesr   descriptorsr	   r>   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r]   r6   rZ   rV   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r   r#  rD  rK  rS  rV  rk  rt  r{  r~  r  r  r  r  r  r  r  r  rb   rB   r@   <module>r     s)   $  @ @ ' ! ' ,M MT T T T T T T T T T 	g >=&@ 
.	.	.	(	)	'!      !H 
/7 "="	 
"J 
,';F& G &R 
(G G 
,	.	/	-	-	)(Hh/ 0      $ 
.)Y)X!%': ' : z 
-)Y)Xw!%'< ' < ~ 
,c$ c$L 

'8X|<&& = &&R$ 

- 8 ! 8 

.!8 " 8 

.!
 " 
 
)..1 2 ( 
.--k+'+ ' 
&(OY
G,C, CL 
+/"	" # 	" 
&'9h/5  0 5 p 
+"K0 1 4D 
/*gx03 1 3
 
&%'79J!<?9$? 9$x@< 
-	*(F#! $  ! 
+"N%'8:%: % 
*	%,	* +  " 

,    
.)   
//#45 6  
--1 2  
,,/ 0  
,+z+;<# = #L 
,&'" # rB   