+
    NV-j%‹  ã                  ó‚  € R t ^ RIHt ^ RIHtHtHtHtHt ^ RI	t	^ RI
t
^ RIt^ RIHtHtHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ R	IHtHtHtH t H!t! ^ RI"H#u H$t% ^ R
I&H't' ^ RI(H)t)H*t* ^ RI+H,t, ]'       d   ^ RI-H.t.H/t/H0t0H1t1H2t2 ^ RIH3t3  ! R R4      t4 ! R R]44      t5 ! R R4      t6 ! R R4      t7R# )zC
Utilities for conversion to writer-agnostic Excel representation.
)Úannotations)ÚCallableÚHashableÚIterableÚMappingÚSequenceN)ÚTYPE_CHECKINGÚAnyÚcast)Úis_list_like)Úfind_stack_level)Úmissing)Úis_floatÚ	is_scalar)Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodÚPeriodIndex)ÚCSS4_COLORS)ÚCSSResolverÚ
CSSWarning)Úget_level_lengths)ÚExcelWriterMergeCellsÚFilePathÚ
IndexLabelÚStorageOptionsÚWriteExcelBuffer©ÚExcelWriterc                  ó.   € ] tR t^?tRt]tRR R lltRtR# )Ú	ExcelCellNc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	é   ÚrowÚintÚcolÚ
mergestartú
int | NoneÚmergeendÚreturnÚNone© )Úformats   "Úh/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/io/formats/excel.pyÚ__annotate__ÚExcelCell.__annotate__C   s<   € ÷ !ñ !àð!ð ð!ð ð!ð ð!ð 
ñ!ó    c                	óN   € Wn         W n        W0n        W@n        WPn        W`n        R # ©N©r$   r&   ÚvalÚstyler'   r)   )Úselfr$   r&   r5   r6   r'   r)   s   &&&&&&&r.   Ú__init__ÚExcelCell.__init__C   s"   € ð ŒØŒØŒØŒ
Ø$ŒØ Žr1   )r&   r)   r'   r$   r6   r5   r4   )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
__fields__Ú	__slots__r8   Ú__static_attributes__r,   r1   r.   r!   r!   ?   s   † ØI€JØ€I÷!ó !r1   r!   c                  ó.   a € ] tR t^TtR V 3R lltRtV ;t# )ÚCssExcelCellc               ó8   € V ^8„  d   QhRRRRRRRRRRR	RR
RRR/# )r#   r$   r%   r&   r6   údict | NoneÚ
css_stylesz3dict[tuple[int, int], list[tuple[str, Any]]] | NoneÚcss_rowÚcss_colÚcss_converterúCallable | Noner*   r+   r,   )r-   s   "r.   r/   ÚCssExcelCell.__annotate__U   se   € ÷ Kñ KàðKð ðKð
 ðKð HðKð ðKð ðKð 'ðKð 
ñKr1   c	                	óþ   <€ V'       dV   V'       dN   WVV3,           U
Uu/ uF  w  r£V
P                  4       VbK  	  pp
p\        VP                  4       4      pV! V4      p\        SV `  ! RR VRVRXRV/V	B  R# u upp
i )r$   r&   r5   r6   Nr,   )ÚlowerÚ	frozensetÚitemsÚsuperr8   )r7   r$   r&   r5   r6   rE   rF   rG   rH   ÚkwargsÚpropÚdeclaration_dictÚunique_declarationsÚ	__class__s   &&&&&&&&&,   €r.   r8   ÚCssExcelCell.__init__U   s‰   ø€ ÷ Ÿ-ð 4>ÀwÐ>NÖ3Oô Ù3O¡i d�—
‘
“˜cÒ!Ñ3Oð ñ  ô #,Ð,<×,BÑ,BÓ,DÓ"EÐÙ!Ð"5Ó6ˆEä‰ÒÑJ˜SÐJ cÐJ¨sÐJ¸%ÐJÀ6ÔJùó s   ŸA9r,   )r:   r;   r<   r=   r8   r@   Ú__classcell__)rT   s   @r.   rB   rB   T   s   ø† ÷Kö Kr1   rB   c                  ó8  € ] tR t^mt$ Rt]tRRRRRRRRRRRR/t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/tRRRR
RR
/t	R^R^R^R^/t
RV U u/ uF  p V P                  4       V bK  	  up tR]R&   RWR! R" llt]! 4       tR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: ltR; R< ltR= R> ltR? R@ ltRA RB lt RC RD lt!RE RF lt"RG RH lt#RI RJ lt$RK RL lt%RM RN lt&RO RP lt'RQ RR lt(RS RT lt)RUt*R # u up i )XÚCSSToExcelConvertera  
A callable for converting CSS declarations to ExcelWriter styles

Supports parts of CSS 2.2, with minimal CSS 3.0 support (e.g. text-shadow),
focusing on font styling, backgrounds, borders and alignment.

Operates by first computing CSS styles in a fairly generic
way (see :meth:`compute_css`) then determining Excel style
properties from CSS properties (see :meth:`build_xlstyle`).

Parameters
----------
inherited : str, optional
    CSS declarations understood to be the containing scope for the
    CSS processed by :meth:`__call__`.
Útopztext-topÚmiddleÚcenterÚbaselineÚbottomztext-bottomÚboldTÚbolderÚ600Ú700Ú800Ú900ÚnormalFÚlighterÚ100Ú200Ú300Ú400Ú500ÚitalicÚobliqueÚserifz
sans-serifÚcursiveÚfantasyzdict[str, str] | NoneÚ	inheritedNc               ó    € V ^8„  d   QhRRRR/# )r#   rp   ú
str | Noner*   r+   r,   )r-   s   "r.   r/   Ú CSSToExcelConverter.__annotate__¾   s   € ÷ Añ A *ð A¸ñ Ar1   c                	ó”   € Ve   V P                  V4      V n        MR V n        \        P                  ! V P                  4      V n        R # r3   )Úcompute_cssrp   Ú	functoolsÚcacheÚ_call_uncachedÚ_call_cached)r7   rp   s   &&r.   r8   ÚCSSToExcelConverter.__init__¾   s:   € ØÒ Ø!×-Ñ-¨iÓ8ˆD�Nà!ˆDŒNô &ŸOšO¨D×,?Ñ,?Ó@ˆÖr1   c               ó    € V ^8„  d   QhRRRR/# ©r#   Údeclarationsz str | frozenset[tuple[str, str]]r*   údict[str, dict[str, str]]r,   )r-   s   "r.   r/   rs   Ê   s   € ÷ /ñ /Ø<ð/à	"ñ/r1   c                ó$   € V P                  V4      # )a}  
Convert CSS declarations to ExcelWriter style.

Parameters
----------
declarations : str | frozenset[tuple[str, str]]
    CSS string or set of CSS declaration tuples.
    e.g. "font-weight: bold; background: blue" or
    {("font-weight", "bold"), ("background", "blue")}

Returns
-------
xlstyle : dict
    A style as interpreted by ExcelWriter when found in
    ExcelCell.style.
)ry   )r7   r}   s   &&r.   Ú__call__ÚCSSToExcelConverter.__call__Ê   s   € ð& × Ñ  Ó.Ð.r1   c               ó    € V ^8„  d   QhRRRR/# r|   r,   )r-   s   "r.   r/   rs   ß   s   € ÷ .ñ .Ø<ð.à	"ñ.r1   c                	óZ   € V P                  WP                  4      pV P                  V4      # r3   )ru   rp   Úbuild_xlstyle)r7   r}   Ú
propertiess   && r.   rx   Ú"CSSToExcelConverter._call_uncachedß   s)   € ð ×%Ñ% l·N±NÓCˆ
Ø×!Ñ! *Ó-Ð-r1   c               ó    € V ^8„  d   QhRRRR/# )r#   ÚpropsúMapping[str, str]r*   r~   r,   )r-   s   "r.   r/   rs   å   s   € ÷ ñ Ð#4ð Ð9Rñ r1   c                	óØ   a€ R V P                  V4      RV P                  V4      RV P                  V4      RV P                  V4      RV P	                  V4      /pR V3R lloS! V4       V# )Ú	alignmentÚborderÚfillÚfontÚnumber_formatc               ó    € V ^8„  d   QhRRRR/# )r#   Údúdict[str, str | None]r*   r+   r,   )r-   s   "r.   r/   Ú7CSSToExcelConverter.build_xlstyle.<locals>.__annotate__ð   s   € ÷ 	!ñ 	!Ð0ð 	!°Tñ 	!r1   c                ó´   <€ \        V P                  4       4       F9  w  rVf   W K  \        V\        4      '       g   K%  S! V4       V'       d   K7  W K;  	  R# )z4Remove key where value is None, through nested dictsN)ÚlistrN   Ú
isinstanceÚdict)r‘   ÚkÚvÚremove_nones   &  €r.   rš   Ú6CSSToExcelConverter.build_xlstyle.<locals>.remove_noneð   sA   ø€ ä˜QŸW™W›Yž‘�Ø’9ØšÜ ¤4×(Ô(Ù ”Nß™1ØšDó (r1   )Úbuild_alignmentÚbuild_borderÚ
build_fillÚ
build_fontÚbuild_number_format)r7   rˆ   Úoutrš   s   && @r.   r„   Ú!CSSToExcelConverter.build_xlstyleå   so   ø€ à˜×-Ñ-¨eÓ4Ø�d×'Ñ'¨Ó.Ø�D—O‘O EÓ*Ø�D—O‘O EÓ*Ø˜T×5Ñ5°eÓ<ð
ˆ÷	!ð 	!ñ 	�CÔØˆ
r1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   zdict[str, bool | str | None]r,   )r-   s   "r.   r/   rs   ý   s   € ÷ 
ñ 
Ð%6ð 
Ð;Wñ 
r1   c                	ól   € R VP                  R4      RV P                  V4      RV P                  V4      /# )Ú
horizontalz
text-alignÚverticalÚ	wrap_text)ÚgetÚ_get_vertical_alignmentÚ_get_is_wrap_text©r7   rˆ   s   &&r.   rœ   Ú#CSSToExcelConverter.build_alignmentý   s<   € ð ˜%Ÿ)™) LÓ1Ø˜×4Ñ4°UÓ;Ø˜×/Ñ/°Ó6ð
ð 	
r1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   rr   r,   )r-   s   "r.   r/   rs     s   € ÷ ñ Ð->ð À:ñ r1   c                	ón   € VP                  R 4      pV'       d   V P                  P                  V4      # R# )zvertical-alignN)r¨   ÚVERTICAL_MAP)r7   rˆ   Úvertical_aligns   && r.   r©   Ú+CSSToExcelConverter._get_vertical_alignment  s.   € ØŸ™Ð#3Ó4ˆßØ×$Ñ$×(Ñ(¨Ó8Ð8Ùr1   c               ó    € V ^8„  d   QhRRRR/# ©r#   rˆ   r‰   r*   zbool | Noner,   )r-   s   "r.   r/   rs     s   € ÷ Oñ OÐ'8ð O¸[ñ Or1   c                	óV   € VP                  R 4      f   R# \        VR ,          R9  4      # )zwhite-spaceN)ÚnowrapÚprezpre-line)r¨   Úboolr«   s   &&r.   rª   Ú%CSSToExcelConverter._get_is_wrap_text  s*   € Ø�9‰9�]Ó#Ò+ÙÜ�E˜-Õ(Ð0MÑMÓNÐNr1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   z dict[str, dict[str, str | None]]r,   )r-   s   "r.   r/   rs     s   € ÷ 
ñ 
Ø&ð
à	)ñ
r1   c                	ó0  € R Uu/ uF…  pVRV P                  VP                  RV R24      VP                  RV R24      V P                  VP                  RV R24      4      4      RV P                  VP                  RV R24      4      /bK‡  	  up# u upi )rY   r6   zborder-z-stylez-widthz-colorÚcolor)rY   Úrightr]   Úleft)Ú_border_styler¨   Úcolor_to_excel)r7   rˆ   Úsides   && r.   r�   Ú CSSToExcelConverter.build_border  sµ   € ñ ;ó

ñ ;�ð Ø˜×+Ñ+Ø—I‘I ¨ v¨VÐ4Ó5Ø—I‘I ¨ v¨VÐ4Ó5Ø×'Ñ'¨¯	©	°G¸D¸6ÀÐ2HÓ(IÓJóð
 ˜×,Ñ,¨U¯Y©Y¸ÀÀÀfÐ7MÓ-NÓOðò ñ ;ñ

ð 
	
ùò 

s   …BBc               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   r6   rr   Úwidthr»   r*   r,   )r-   s   "r.   r/   rs     s,   € ÷ 7ñ 7Øð7Ø(2ð7Ø;Eð7à	ñ7r1   c                	ój  € Vf   Vf	   Vf   R # R# VR	9   d   R# V P                  V4      pVf   R# VR
9   d   V# VR8X  d   R# VR8X  d   VR9   d   R# R# VR8X  d   VR9   d   R# R# WP                  9   d   V P                  V,          # \        P                  ! RV: 2\        \        4       R7       R# )NÚnoneÚdoubleÚdottedÚmediumDashDotDotÚdashedÚmediumDashedzUnhandled border style format: ©Ú
stacklevel)rÅ   Úhidden)NÚgrooveÚridgeÚinsetÚoutsetÚsolid)ÚhairÚthin)Ú_get_width_nameÚBORDER_STYLE_MAPÚwarningsÚwarnr   r   )r7   r6   rÃ   r»   Ú
width_names   &&&& r.   r¾   Ú!CSSToExcelConverter._border_style  sÈ   € ð" Š=˜Uš]ØŠ}áñ àÐ&Ô&Ùà×)Ñ)¨%Ó0ˆ
ØÒÙàÐIÔIàÐà�HÔÙØ�HÔØÐ-Ô-ÙÙ%Ø�HÔØÐ-Ô-ÙÙ!Ø×+Ñ+Ô+à×(Ñ(¨Õ/Ð/ä�MŠMØ1°%±Ð;ÜÜ+Ó-õñ
 r1   c               ó    € V ^8„  d   QhRRRR/# )r#   Úwidth_inputrr   r*   r,   )r-   s   "r.   r/   rs   X  s   € ÷ ñ ¨:ð ¸*ñ r1   c                	ó^   € V P                  V4      pVR 8  d   R# VR8  d   R# VR8  d   R# R# )gñhãˆµøä>NgÍÌÌÌÌÌô?rÔ   gffffff@ÚmediumÚthick)Ú_width_to_float)r7   rÜ   rÃ   s   && r.   rÕ   Ú#CSSToExcelConverter._get_width_nameX  s3   € Ø×$Ñ$ [Ó1ˆØ�4Œ<ÙØ�SŒ[ÙØ�SŒ[ÙÙr1   c               ó    € V ^8„  d   QhRRRR/# )r#   rÃ   rr   r*   Úfloatr,   )r-   s   "r.   r/   rs   b  s   € ÷ (ñ ( Zð (°Eñ (r1   c                	ó0   € Vf   RpV P                  V4      # )NÚ2pt)Ú_pt_to_float)r7   rÃ   s   &&r.   rà   Ú#CSSToExcelConverter._width_to_floatb  s   € ØŠ=ØˆEØ× Ñ  Ó'Ð'r1   c               ó    € V ^8„  d   QhRRRR/# )r#   Ú	pt_stringÚstrr*   rã   r,   )r-   s   "r.   r/   rs   g  s   € ÷ -ñ - cð -¨eñ -r1   c                	óh   € VP                  R 4      '       g   Q h\        VP                  R 4      4      # )Úpt)Úendswithrã   Úrstrip)r7   ré   s   &&r.   ræ   Ú CSSToExcelConverter._pt_to_floatg  s/   € Ø×!Ñ! $×'Ò'Ð'Ð'Ü�Y×%Ñ% dÓ+Ó,Ð,r1   c               ó   € V ^8„  d   QhRR/# )r#   rˆ   r‰   r,   )r-   s   "r.   r/   rs   k  s   € ÷ Xñ XÐ 1ñ Xr1   c                	ó`   € VP                  R 4      pVR9  d   RV P                  V4      RR/# R# )zbackground-colorNÚfgColorÚpatternTyperÒ   )NÚtransparentrÅ   )r¨   r¿   )r7   rˆ   Ú
fill_colors   && r.   rž   ÚCSSToExcelConverter.build_fillk  s;   € ð —Y‘YÐ1Ó2ˆ
ØÐ:Ô:Ø˜t×2Ñ2°:Ó>ÀÈwÐWÐWñ ;r1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   r’   r,   )r-   s   "r.   r/   rs   r  s   € ÷ #ñ #Ð):ð #Ð?Tñ #r1   c                	ó€   € VP                  R 4      p\        V\        4      '       d   VP                  RR4      MTpRV/# )znumber-formatô   Â§Ú;Úformat_code)r¨   r–   rê   Úreplace)r7   rˆ   Úfcs   && r.   r    Ú'CSSToExcelConverter.build_number_formatr  s9   € Ø�Y‰Y�Ó'ˆÜ&0°´S×&9Ò&9ˆR�Z‰Z˜˜cÔ"¸rˆØ˜rÐ"Ð"r1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   z$dict[str, bool | float | str | None]r,   )r-   s   "r.   r/   rs   w  s   € ÷ 
ñ 
Ø&ð
à	-ñ
r1   c                	óŽ  € V P                  V4      pV P                  V4      pR V'       d
   V^ ,          MRRV P                  V4      RV P                  V4      RV P	                  V4      RV P                  V4      RRV9   d   RMRRR	V9   ;'       g    RR
V P                  VP                  R
4      4      RV P                  V4      /	# )ÚnameNÚfamilyÚsizer^   rk   Ú	underlineÚsingleÚstrikezline-throughr»   Úshadow)	Ú_get_font_namesÚ_get_decorationÚ_select_font_familyÚ_get_font_sizeÚ_get_is_boldÚ_get_is_italicr¿   r¨   Ú_get_shadow)r7   rˆ   Ú
font_namesÚ
decorations   &&  r.   rŸ   ÚCSSToExcelConverter.build_fontw  sÄ   € ð ×)Ñ)¨%Ó0ˆ
Ø×)Ñ)¨%Ó0ˆ
à§Z�J˜q–M°TØ�d×.Ñ.¨zÓ:Ø�D×'Ñ'¨Ó.Ø�D×%Ñ% eÓ,Ø�d×)Ñ)¨%Ó0Ø k°ZÔ&?™(ÀTØ�~¨Ñ3×<Ð<¸Ø�T×(Ñ(¨¯©°7Ó);Ó<à�d×&Ñ& uÓ-ð
ð 	
r1   c               ó    € V ^8„  d   QhRRRR/# r³   r,   )r-   s   "r.   r/   rs   ‰  s   € ÷ ñ Ð"3ð ¸ñ r1   c                	ón   € VP                  R 4      pV'       d   V P                  P                  V4      # R# )zfont-weightN)r¨   ÚBOLD_MAP)r7   rˆ   Úweights   && r.   r  Ú CSSToExcelConverter._get_is_bold‰  s+   € Ø—‘˜=Ó)ˆßØ—=‘=×$Ñ$ VÓ,Ð,Ùr1   c               ó    € V ^8„  d   QhRRRR/# r³   r,   )r-   s   "r.   r/   rs   �  s   € ÷ ñ Ð$5ð ¸+ñ r1   c                	ón   € VP                  R 4      pV'       d   V P                  P                  V4      # R# )z
font-styleN)r¨   Ú
ITALIC_MAP)r7   rˆ   Ú
font_styles   && r.   r  Ú"CSSToExcelConverter._get_is_italic�  s+   € Ø—Y‘Y˜|Ó,ˆ
ßØ—?‘?×&Ñ& zÓ2Ð2Ùr1   c               ó    € V ^8„  d   QhRRRR/# ©r#   rˆ   r‰   r*   úSequence[str]r,   )r-   s   "r.   r/   rs   •  s   € ÷ ñ Ð%6ð ¸=ñ r1   c                	óP   € VP                  R 4      pVe   VP                  4       # R# )ztext-decorationr,   )r¨   Úsplit)r7   rˆ   r  s   && r.   r	  Ú#CSSToExcelConverter._get_decoration•  s+   € Ø—Y‘YÐ0Ó1ˆ
ØÒ!Ø×#Ñ#Ó%Ð%àˆIr1   c               ó    € V ^8„  d   QhRRRR/# r³   r,   )r-   s   "r.   r/   rs   œ  s   € ÷ ñ Ð!2ð °{ñ r1   c                	ób   € R V9   d(   \        \        P                  ! RVR ,          4      4      # R# )ztext-shadowz^[^#(]*[1-9]N)r·   ÚreÚsearchr«   s   &&r.   r  ÚCSSToExcelConverter._get_shadowœ  s(   € Ø˜EÔ!ÜœŸ	š	 .°%¸Õ2FÓGÓHÐHÙr1   c               ó    € V ^8„  d   QhRRRR/# r  r,   )r-   s   "r.   r/   rs   ¡  s   € ÷ ñ Ð%6ð ¸=ñ r1   c                	óP  € \         P                  ! R VP                  RR4      4      p. pV Fv  pVR,          R8X  d   V^R P                  RR4      pM4VR,          R8X  d   V^R P                  RR4      pMVP	                  4       pV'       g   Ke  VP                  V4       Kx  	  V# )	z›(?x)
            (
            "(?:[^"]|\\")+"
            |
            '(?:[^']|\\')+'
            |
            [^'",]+
            )(?=,|\s*$)
        zfont-familyÚ :Né   NÚ"z\"Ú'z\'éÿÿÿÿ)r$  Úfindallr¨   rü   ÚstripÚappend)r7   rˆ   Úfont_names_tmpr  r  s   &&   r.   r  Ú#CSSToExcelConverter._get_font_names¡  s¢   € ÜŸšðð �I‰I�m RÓ(ó
ˆð ˆ
Û"ˆDØ�B�x˜3ŒØ˜A˜b�z×)Ñ)¨%°Ó5‘Ø�b•˜S”Ø˜A˜b�z×)Ñ)¨%°Ó5‘à—z‘z“|�ß‰tØ×!Ñ! $Ö'ñ #ð Ðr1   c               ó    € V ^8„  d   QhRRRR/# )r#   rˆ   r‰   r*   zfloat | Noner,   )r-   s   "r.   r/   rs   »  s   € ÷ 'ñ 'Ð$5ð '¸,ñ 'r1   c                	óR   € VP                  R 4      pVf   V# V P                  V4      # )z	font-size)r¨   ræ   )r7   rˆ   r  s   && r.   r  Ú"CSSToExcelConverter._get_font_size»  s+   € Ø�y‰y˜Ó%ˆØŠ<ØˆKØ× Ñ  Ó&Ð&r1   c               ó    € V ^8„  d   QhRRRR/# )r#   r  r  r*   r(   r,   )r-   s   "r.   r/   rs   Á  s   € ÷ ñ ¨mð À
ñ r1   c                	óh   € R pV F)  pV P                   P                  V4      pV'       g   K(   V# 	  V# r3   )Ú
FAMILY_MAPr¨   )r7   r  r  r  s   &&  r.   r
  Ú'CSSToExcelConverter._select_font_familyÁ  s9   € ØˆÛˆDØ—_‘_×(Ñ(¨Ó.ˆFß‰vØàˆñ ð
 ˆr1   c               ó    € V ^8„  d   QhRRRR/# )r#   r5   rr   r*   r,   )r-   s   "r.   r/   rs   Ê  s   € ÷ ñ  *ð °ñ r1   c                	óü   € Vf   R # V P                  V4      '       d   V P                  V4      #  V P                  V,          #   \         d.    \        P
                  ! RT: 2\        \        4       R7        R # i ; i)NzUnhandled color format: rË   )Ú_is_hex_colorÚ_convert_hex_to_excelÚNAMED_COLORSÚKeyErrorr×   rØ   r   r   ©r7   r5   s   &&r.   r¿   Ú"CSSToExcelConverter.color_to_excelÊ  su   € ØŠ;Ùà×Ñ˜c×"Ò"Ø×-Ñ-¨cÓ2Ð2ð	Ø×$Ñ$ SÕ)Ð)øÜô 	Ü�MŠMØ*¨3©'Ð2ÜÜ+Ó-öñ
 ð	ús   °A Á4A;Á:A;c               ó    € V ^8„  d   QhRRRR/# ©r#   Úcolor_stringrê   r*   r·   r,   )r-   s   "r.   r/   rs   Û  s   € ÷ 2ñ 2¨#ð 2°$ñ 2r1   c                	ó6   € \        VP                  R 4      4      # ©Ú#)r·   Ú
startswith)r7   rD  s   &&r.   r<  Ú!CSSToExcelConverter._is_hex_colorÛ  s   € Ü�L×+Ñ+¨CÓ0Ó1Ð1r1   c               ó    € V ^8„  d   QhRRRR/# )r#   rD  rê   r*   r,   )r-   s   "r.   r/   rs   Þ  s   € ÷  ñ  °#ð  ¸#ñ  r1   c                	ó  € VP                  R 4      pV P                  V4      '       dI   V^ ,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       # VP                  4       # rF  )ÚlstripÚ_is_shorthand_colorÚupper©r7   rD  Úcodes   && r.   r=  Ú)CSSToExcelConverter._convert_hex_to_excelÞ  s`   € Ø×"Ñ" 3Ó'ˆØ×#Ñ# L×1Ò1Ø˜•G˜a•K $ q¥'¨A¥+Õ-°°Qµ¸!µÕ;×BÑBÓDÐDà—:‘:“<Ðr1   c               ó    € V ^8„  d   QhRRRR/# rC  r,   )r-   s   "r.   r/   rs   å  s   € ÷ Añ A°ð A¸ñ Ar1   c                óˆ   € VP                  R4      p\        V4      ^8X  d   R# \        V4      ^8X  d   R# \        RV 24      h)zSCheck if color code is shorthand.

#FFF is a shorthand as opposed to full #FFFFFF.
rG  TFzUnexpected color )rL  ÚlenÚ
ValueErrorrO  s   && r.   rM  Ú'CSSToExcelConverter._is_shorthand_colorå  sC   € ð
 ×"Ñ" 3Ó'ˆÜˆt‹9˜Œ>ÙÜ�‹Y˜!Œ^ÙäÐ0°°Ð?Ó@Ð@r1   )ry   rp   )
rÉ   ÚmediumDashDotÚ
dashDotDotrÓ   rÇ   rÈ   rÆ   ÚdashDotÚslantDashDotrÊ   r3   )+r:   r;   r<   r=   Ú__doc__r   r>  r¯   r  r  r8  rL   rÖ   Ú__annotations__r8   r   ru   r€   rx   r„   rœ   r©   rª   r�   r¾   rÕ   rà   ræ   rž   r    rŸ   r  r  r	  r  r  r  r
  r¿   r<  r=  rM  r@   )r6   s   0r.   rX   rX   m   s‡  ‡ ñð" €Lð 	ˆuØ�EØ�(Ø�HØ�(Ø�xð€Lð 	�Ø�$ØˆtØˆtØˆtØˆtØ�%Ø�5ØˆuØˆuØˆuØˆuØˆuð€Hð" 	�%Ø�$Ø�4ð€Jð 	�Ø�aØ�1Ø�1ð	€Jñ
óñ
ˆEð 	�‰‹�uÒñ
ñÐð( %Ó$÷Añ “-€Kõ/õ*.õõ0
õõOõ

õ7õrõ(õ
-õXõ#õ

õ$õõõõ
õ4'õõõ"2õ ÷Añ Aùò{	s   ÁDrX   c                  óÊ   € ] tR tRtRtRtRtR R R lltR tR R lt	R	 R
 lt
R R ltR R ltR R ltR R lt]R R l4       tR R ltR R ltR R ltR!R R lltRtR# )"ÚExcelFormatterió  a¶  
Class for formatting a DataFrame to a list of ExcelCells,

Parameters
----------
df : DataFrame or Styler
na_rep: na representation
float_format : str, default None
    Format string for floating point numbers
cols : sequence, optional
    Columns to write
header : bool or sequence of str, default True
    Write out column names. If a list of string is given it is
    assumed to be aliases for the column names
index : bool, default True
    output row names (index)
index_label : str or sequence, default None
    Column label for index column(s) if desired. If None is given, and
    `header` and `index` are True, then the index names are used. A
    sequence should be given if the DataFrame uses MultiIndex.
merge_cells : bool or 'columns', default False
    Format MultiIndex column headers and Hierarchical Rows as merged cells
    if True. Merge MultiIndex column headers only if 'columns'.
    .. versionchanged:: 3.0.0
        Added the 'columns' option.
inf_rep : str, default `'inf'`
    representation for np.inf values (which aren't representable in Excel)
    A `'-'` sign will be added in front of -inf.
style_converter : callable, optional
    This translates Styler styles (CSS) into ExcelWriter styles.
    Defaults to ``CSSToExcelConverter()``.
    It should have signature css_declarations string -> excel style.
    This is only called for body cells.
autofilter : bool, default False
    If True, add automatic filters to all columns.
Nc               óD   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRR
RR/# )r#   Úna_reprê   Úfloat_formatrr   ÚcolszSequence[Hashable] | NoneÚheaderzSequence[Hashable] | boolÚindexr·   Úindex_labelzIndexLabel | NoneÚmerge_cellsr   Úinf_repÚstyle_converterrI   Ú
autofilterr*   r+   r,   )r-   s   "r.   r/   ÚExcelFormatter.__annotate__  sz   € ÷ 0%ñ 0%ð ð0%ð !ð	0%ð
 (ð0%ð *ð0%ð ð0%ð 'ð0%ð +ð0%ð ð0%ð )ð0%ð ð0%ð 
ñ0%r1   c                	ó*  € ^ V n         W n        \        V\        4      '       gB   Wn        V P                  P                  4        VP                  pV
f   \        4       p
W n        MRV n        RV n        Wn	        Ve¥   \        \        V4      P                  VP                  4      4      '       g   \        R4      h\        \        V4      P                  VP                  4      4      \        \        V4      4      8w  d   \        R4      hVP!                  VR7      V n	        V P                  P                  V n        W0n        W`n        Wpn        WPn        \        V\*        4      '       g   VR8w  d   \-        RV: R24      hW€n        W�n        W°n        R# )é    Nz,passes columns are not ALL present dataframez.Not all names specified in 'columns' are found)Úcolumnsrm  z!Unexpected value for merge_cells=Ú.)Ú
rowcounterr`  r–   r   ÚstylerÚ_computeÚdatarX   rh  ÚdfrT  r   Úintersectionrm  r?  ÚsetÚreindexra  rd  re  rc  r·   rU  rf  rg  ri  )r7   rs  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  s   &&&&&&&&&&&&r.   r8   ÚExcelFormatter.__init__  s7  € ð ˆŒØŒÜ˜"œi×(Ò(ØŒKØ�K‰K× Ñ Ô"Ø—‘ˆBØÒ&Ü"5Ó"7�Ø4CÕ àˆDŒKØ#'ˆDÔ ØŒØÒä”u˜T“{×/Ñ/°·
±
Ó;×<Ò<ÜÐMÓNÐNä”5˜“;×+Ñ+¨B¯J©JÓ7Ó8¼CÄÀDÃ	»NÔJäÐOÓPÐPà—j‘j¨�jÓ.ˆDŒGà—w‘w—‘ˆŒØ(ÔØŒ
Ø&ÔØŒä˜+¤t×,Ò,°À	Ô1IÜÐA°[±NÀ!ÐDÓEÐEØ&ÔØŒØ$Žr1   c                	óÎ  € \        V4      '       d*   \        P                  ! V4      '       d   V P                  pM�\	        V4      '       d€   \        P
                  ! V4      '       d   V P                  pMV\        P                  ! V4      '       d   R V P                   2pM*V P                  e   \        V P                  V,          4      p\        VRR4      e   \        R4      hV# )Ú-NÚtzinfoz{Excel does not support datetimes with timezones. Please ensure that datetimes are timezone unaware before writing to Excel.)r   r   Úisnar`  r   Úisposinf_scalarrg  Úisneginf_scalarra  rã   ÚgetattrrU  r@  s   &&r.   Ú_format_valueÚExcelFormatter._format_valueN  s°   € Ü�S�>Š>œgŸlšl¨3×/Ò/Ø—+‘+‰CÜ�c�]Š]Ü×&Ò& s×+Ò+Ø—l‘l‘Ü×(Ò(¨×-Ò-Ø˜$Ÿ,™,˜Ð(‘Ø×"Ñ"Ò.Ü˜D×-Ñ-°Õ3Ó4�Ü�3˜ $Ó'Ò3Üð@óð ð
 ˆ
r1   c               ó   € V ^8„  d   QhRR/# ©r#   r*   úIterable[ExcelCell]r,   )r-   s   "r.   r/   rj  `  s   € ÷ 1ñ 1Ð#6ñ 1r1   c              #  	ó  "  € V P                   P                  ^8”  d   V P                  '       g   \        R4      hV P                  '       g   V P
                  '       g   R# V P                   pV P                  R
9   pVP                  VRR7      p\        V4      p^ p^ pV P                  '       dR   \        V P                  P                  \        4      '       d(   V P                  P                  P                  ^,
          p\        VP                  4       F  w  rg\        VVVRR7      x € K  	  \        \        WAP                   VP"                  RR7      4       Fž  w  pw  r‰p
V	P%                  V
4      pVP'                  4        Fp  w  rÍRRrþV'       d   V^8”  d   YeV,           V,           rþ\)        VW\,           ^,           W¼,          R\+        V P,                  RR4      VVV P.                  VVR	7
      x € Kr  	  K   	  W`n        R# 5i)r*  z]Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented.NTF©ÚsparsifyÚinclude_names)r$   r&   r5   r6   ©ÚstrictÚctx_columns©
r$   r&   r5   r6   rE   rF   rG   rH   r'   r)   >   Trm  )rm  Únlevelsrd  ÚNotImplementedErrorÚ_has_aliasesrc  rf  Ú_format_multir   r–   rs  r   Ú	enumerateÚnamesr!   ÚzipÚlevelsÚcodesÚtakerN   rB   r~  rp  rh  ro  )r7   rm  Úmerge_columnsÚ
level_strsÚlevel_lengthsÚ	coloffsetÚlnumr  Úspansr“  Úlevel_codesÚvaluesÚiÚspan_valr'   r)   s   &               r.   Ú_format_header_miÚ ExcelFormatter._format_header_mi`  s°  é € Ø�<‰<×Ñ !Ô#Ø—:—:�:Ü)ðDóð ð
 ×!×!Ð! T§[§[ [Ùà—,‘,ˆØ×(Ñ(Ð,=Ñ=ˆØ×*Ñ*°MÐQVÐ*ÓWˆ
Ü)¨*Ó5ˆØˆ	Øˆà�:�:ˆ:œ* T§W¡W§]¡]´J×?Ò?ØŸ™Ÿ™×-Ñ-°Õ1ˆIä# G§M¡MÖ2‰JˆDÜØØØØô	ô ñ 3ô 3<Ü�Ÿ~™~¨w¯}©}ÀTÔJö3
Ñ.ˆDÑ.�5 +ð —[‘[ Ó-ˆFØ$Ÿ{™{ž}‘�Ø'+¨T˜Hß  X°¤\Ø+/¸QµÀÕ1I Ü"ØØ!�¨Õ)Ø�	ØÜ& t§{¡{°MÀ4ÓHØ ØØ"&×"6Ñ"6Ø)Ø%ôô ó	  -ñ	3
ð( Žùs   ‚-H°HÁHÁF&Hc               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  “  s   € ÷ ñ Ð(;ñ r1   c              #  	ó:  "  € V P                   '       g   V P                  '       Edr   ^ pV P                  '       dV   ^p\        V P                  P                  \
        4      '       d*   \        V P                  P                  P                  4      pV P                  pV P                   '       d‘   \        \        V P                  4      V n        \        V P                  4      \        V P                  4      8w  d9   \        R\        V P                  4       R\        V P                  4       R24      hV P                  p\        V4       FI  w  r4\        V P                  W1,           VR\        V P                   RR4      ^ VV P"                  R7      x € KK  	  R# R# 5i)rl  zWriting z cols but got z aliasesNrŠ  ©r$   r&   r5   r6   rE   rF   rG   rH   )rŽ  rc  rd  r–   rs  r   rT  r‘  rm  r
   r   rU  r�  rB   ro  r~  rp  rh  )r7   r™  ÚcolnamesÚcolindexÚcolnames   &    r.   Ú_format_header_regularÚ%ExcelFormatter._format_header_regular“  s4  é € Ø××Ð §§¡ØˆIà�z�zˆzØ�	Ü˜dŸg™gŸm™m¬Z×8Ò8Ü # D§G¡G§M¡M×$7Ñ$7Ó 8�Ià—|‘|ˆHØ× × Ð Ü"¤8¨T¯[©[Ó9�”Ü�t—{‘{Ó#¤s¨4¯<©<Ó'8Ô8Ü$Ø"¤3 t§|¡|Ó#4Ð"5ð 6#Ü#& t§{¡{Ó#3Ð"4°Hð>óð ð  Ÿ;™;�ä%.¨xÖ%8Ñ!�Ü"ØŸ™Ø Õ,ØØÜ& t§{¡{°MÀ4ÓHØØ$Ø"&×"6Ñ"6ô	ô 	ó &9ñ% !,ùs   ‚%F¨F¼A2FÂ/C,Fc               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  ²  s   € ÷ *ñ *Ð 3ñ *r1   c                	ó`  a € \        S P                  \        4      '       d   S P                  4       pMS P	                  4       pRpS P
                  P                  P                  '       d«   S P
                  P                  P                   Uu. uF
  q3e   TMRNK  	  upR.\        S P                  4      ,          ,           p\        P                  ! R R V 4       4      '       d/   V 3R l\        V4       4       pS ;P                  ^,          un        \        P                  ! W4      # u upi )Nr)  c                ó   € T ;'       d    T# r3   r,   )ÚxÚys   &&r.   Ú<lambda>Ú/ExcelFormatter._format_header.<locals>.<lambda>À  s   € ¨Q¯W¨W°1¨Wr1   c              3  ó*   "  € T F	  qR 8g  x € K  	  R# 5i)r)  Nr,   )Ú.0r­  s   & r.   Ú	<genexpr>Ú0ExcelFormatter._format_header.<locals>.<genexpr>À  s   é € Ð6LÉÀ1¸B¶wËùs   ‚c              3  óV   <"  € T F  w  r\        SP                  WR 4      x € K   	  R # 5ir3   )r!   ro  )r²  r¦  r5   r7   s   &  €r.   r³  r´  Á  s*   øé € ð á)7™˜ô ˜dŸo™o¨x¸d×CÐCÛ)7ùs   ƒ&)r,   )r–   rm  r   r   r¨  rs  rd  r‘  rT  rv   Úreducer�  ro  Ú	itertoolsÚchain)r7   ÚgenÚgen2r­  r$   s   f    r.   Ú_format_headerÚExcelFormatter._format_header²  sê   ø€ ô �d—l‘l¤J×/Ò/Ø×(Ñ(Ó*‰Cà×-Ñ-Ó/ˆCà$&ˆà�7‰7�=‰=××ÐØ7;·w±w·}±}×7JÒ7JÓKÑ7J°!š‘1¨2Ò-Ñ7JÑKØðOä�D—L‘LÓ!õO"õ "ˆCô ×ÒÑ 4Ñ6LÉÓ6L×MÒMôä)2°3¬ó�ð —’ 1Õ$•Ü�Š˜sÓ)Ð)ùò Ls   ÂD+c               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  È  s   € ÷ /ñ /Ð1ñ /r1   c                	ó–   € \        V P                  P                  \        4      '       d   V P	                  4       # V P                  4       # r3   )r–   rs  rd  r   Ú_format_hierarchical_rowsÚ_format_regular_rows©r7   s   &r.   Ú_format_bodyÚExcelFormatter._format_bodyÈ  s5   € Ü�d—g‘g—m‘m¤Z×0Ò0Ø×1Ñ1Ó3Ð3à×,Ñ,Ó.Ð.r1   c               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  Î  s   € ÷ ,2ñ ,2Ð&9ñ ,2r1   c              #  	óØ  "  € V P                   '       g   V P                  '       d   V ;P                  ^,          un        V P                  '       Edù   V P                  '       dO   \        V P                  \        \        \        P                  \        34      '       d   V P                  ^ ,          pMfV P                  '       d.   \        V P                  \        4      '       d   V P                  pM'V P                  P                  P                  ^ ,          p\        V P                  \        4      '       d   V ;P                  ^,          un        V'       d2   V P                  RJd"   \!        V P                  ^,
          ^ VR4      x € V P                  P                  p\        V P                  P                  \"        4      '       d%   V P                  P                  P%                  4       p\'        V4       FJ  w  r4\)        V P                  V,           ^ VR\+        V P,                  RR4      V^ V P.                  R7      x € KL  	  ^pM^ pV P1                  V4       Rj  x€L
  R#  L5i)r*  FNÚ	ctx_indexr¤  )rŽ  rc  ro  rd  re  r–   r•   ÚtupleÚnpÚndarrayr   rê   rs  r‘  rm  r   r!   r   Úto_timestampr�  rB   r~  rp  rh  Ú_generate_body)r7   re  Úindex_valuesÚidxÚidxvalr™  s   &     r.   rÀ  Ú#ExcelFormatter._format_regular_rowsÎ  sª  é € Ø××Ð §§ Ø�OŠO˜qÕ �Oð �:�:‰:ð ××Ð¤JØ× Ñ ¤4¬´·
±
¼EÐ"B÷%ò %ð #×.Ñ.¨qÕ1‘à×!×!Ð!¤j°×1AÑ1AÄ3×&GÒ&GØ"×.Ñ.‘à"Ÿg™gŸm™m×1Ñ1°!Õ4�ä˜$Ÿ,™,¬
×3Ò3Ø—’ 1Õ$•ç˜tŸ{™{°%Ó7Ü §¡°!Õ 3°Q¸ÀTÓJÒJð  Ÿ7™7Ÿ=™=ˆLÜ˜$Ÿ'™'Ÿ-™-¬×5Ò5Ø#Ÿw™wŸ}™}×9Ñ9Ó;�ä(¨Ö6‘�Ü"ØŸ™¨#Õ-ØØØÜ& t§{¡{°KÀÓFØØØ"&×"6Ñ"6ô	ô 	ñ  7ð ‰IàˆIà×&Ñ& yÓ1×1Ô1ùs1   ‚$I*§+I*ÁI*Á%AI*ÃBI*ÅDI*É!I(É"I*c               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  ü  s   € ÷ V0ñ V0Ð+>ñ V0r1   c              #  	ó   "  € V P                   '       g   V P                  '       d   V ;P                  ^,          un        ^ pV P                  '       Ed]   V P                  P                  P
                  pV P                  '       dG   \        V P                  \        \        \        P                  \        34      '       d   V P                  p\        V P                  \        4      '       d   V ;P                  ^,          un        \        P                   ! V!  '       dE   V P                  RJd5   \#        V4       F%  w  r4\%        V P                  ^,
          W4R4      x € K'  	  V P&                  '       EdŒ   V P&                  R8w  Edz   V P                  P                  P)                  RRR7      p\+        V4      p\-        VV P                  P                  P.                  V P                  P                  P0                  RR7       F÷  w  rxp	VP3                  V	VP4                  VP6                  R7      p
\        V
^ ,          \8        4      '       d   V
P;                  4       p
VP=                  4        F  w  r¼RRríV^8”  d$   V P                  V,           V,           ^,
          pTp\?        V P                  V,           VW«,          R\A        V PB                  RR4      VVV PD                  VVR	7
      x € K�  	  V^,          pKù  	  M¯\-        V P                  P                  R
R/  FŒ  p\#        V4       Fq  w  pp\        V\8        4      '       d   VP;                  4       p\?        V P                  V,           VVR\A        V PB                  RR4      VVV PD                  R7      x € Ks  	  V^,          pKŽ  	  V PG                  V4       Rj  x€L
  R#  L5i)r*  FNrm  Tr…  rˆ  )Ú
allow_fillÚ
fill_valuerÆ  r‹  r‰  r¤  )$rŽ  rc  ro  rd  rs  r‘  re  r–   r•   rÇ  rÈ  rÉ  r   rm  r   ÚcomÚany_not_noner�  r!   rf  r�  r   r’  r“  r”  r•  Ú_can_hold_naÚ	_na_valuer   rÊ  rN   rB   r~  rp  rh  rË  )r7   ÚgcolidxÚindex_labelsÚcidxr  r—  r˜  r›  r“  rœ  r�  rž  rŸ  r'   r)   ÚindexcolvalsrÍ  Úindexcolvals   &                 r.   r¿  Ú(ExcelFormatter._format_hierarchical_rowsü  s  é € Ø××Ð §§ Ø�OŠO˜qÕ �Oàˆà�:�:‰:ØŸ7™7Ÿ=™=×.Ñ.ˆLà××Ð¤JØ× Ñ ¤4¬´·
±
¼EÐ"B÷%ò %ð  $×/Ñ/�ô
 ˜$Ÿ,™,¬
×3Ò3Ø—’ 1Õ$•ô ×Ò ×.Ð.°4·;±;ÀeÓ3KÜ"+¨LÖ"9‘J�DÜ# D§O¡O°aÕ$7¸ÀTÓJÔJñ #:ð ××Ñ D×$4Ñ$4¸	Õ$Aà!ŸW™WŸ]™]×8Ñ8Ø!°ð 9ó �
ô !2°*Ó =�ä25Ø!Ø—G‘G—M‘M×(Ñ(Ø—G‘G—M‘M×'Ñ'Ø ÷	3Ñ.�E ;ð $Ÿ[™[Ø#Ø#)×#6Ñ#6Ø#)×#3Ñ#3ð )ó �Fô " &¨¥)¬V×4Ò4Ø!'×!4Ñ!4Ó!6˜à',§{¡{¦}™˜Ø/3°T HØ# aœ<Ø)-¯©¸1Õ)<¸xÕ)GÈ!Õ)K˜JØ'.˜HÜ*Ø $§¡°!Õ 3Ø 'Ø &¥	Ø"&Ü'.¨t¯{©{¸KÈÓ'NØ$%Ø$+Ø*.×*>Ñ*>Ø'1Ø%-ôô ñ (5ð" ˜q•L’GòA3ôH %(¨¯©¯©Ð$D¸tÔ$D�LÜ,5°lÖ,CÑ(˜˜[ä% k´6×:Ò:Ø*5×*BÑ*BÓ*D˜Kä*Ø $§¡°#Õ 5Ø 'Ø +Ø"&Ü'.¨t¯{©{¸KÈÓ'NØ$'Ø$+Ø*.×*>Ñ*>ô	ô 	ñ -Dð ˜q•L’Gñ! %Eð$ ×&Ñ& wÓ/×/Ô/ùs1   ‚$O§-OÁ1OÂBOÄ AOÅ7IOÏOÏOc               ó   € V ^8„  d   QhRR/# )r#   r*   r·   r,   )r-   s   "r.   r/   rj  U  s   € ÷ )ñ )˜dñ )r1   c                ó,   € \        V P                  4      # )z1Whether the aliases for column names are present.)r   rc  rÁ  s   &r.   rŽ  ÚExcelFormatter._has_aliasesT  s   € ô ˜DŸK™KÓ(Ð(r1   c               ó    € V ^8„  d   QhRRRR/# )r#   r™  r%   r*   rƒ  r,   )r-   s   "r.   r/   rj  Y  s   € ÷ ñ ¨ð Ð0Cñ r1   c              #  	óT  "  € \        \        V P                  4      4       F�  pV P                  P                  R V3,          p\        V4       FP  w  rE\        V P                  V,           W!,           VR\        V P                  RR4      VVV P                  R7      x € KR  	  Kƒ  	  R# 5i):NNNNÚctxr¤  )ÚrangerT  rm  rs  Úilocr�  rB   ro  r~  rp  rh  )r7   r™  ÚcolidxÚseriesrž  r5   s   &&    r.   rË  ÚExcelFormatter._generate_bodyY  sˆ   é € äœC §¡Ó-Ö.ˆFØ—W‘W—\‘\ ! V )Õ,ˆFÜ# FÖ+‘�Ü"ØŸ™¨!Õ+ØÕ*ØØÜ& t§{¡{°E¸4Ó@ØØ"Ø"&×"6Ñ"6ô	ô 	ó ,ó /ùs   ‚B&B(c               ó   € V ^8„  d   QhRR/# r‚  r,   )r-   s   "r.   r/   rj  i  s   € ÷ ñ Ð%8ñ r1   c              #  	óÊ   "  € \         P                  ! V P                  4       V P                  4       4       F'  pV P	                  VP
                  4      Vn        Vx € K)  	  R # 5ir3   )r·  r¸  r»  rÂ  r  r5   )r7   Úcells   & r.   Úget_formatted_cellsÚ"ExcelFormatter.get_formatted_cellsi  sH   é € Ü—O’O D×$7Ñ$7Ó$9¸4×;LÑ;LÓ;NÖOˆDØ×)Ñ)¨$¯(©(Ó3ˆDŒHØŒJó Pùs   ‚A!A#c               ó    € V ^8„  d   QhRRRR/# )r#   rd  r%   r*   rê   r,   )r-   s   "r.   r/   rj  n  s   € ÷ ñ  ð ¨ñ r1   c                ó¤   € V^ 8  d   \        RV 24      hRpV^ 8”  g	   V'       g*   \        V^4      w  r\        ^AV,           4      V,           pK8  V# )a  
Convert 0-based column index to Excel column name.

Parameters
----------
index : int
    The numeric column index to convert to an Excel column name.

Returns
-------
column_name : str
    The column name corresponding to the index.

Raises
------
ValueError
    Index is negative
zIndex cannot be negative: r)  )rU  ÚdivmodÚchr)r7   rd  Úcolumn_nameÚ	remainders   &&  r.   Ú
_num2excelÚExcelFormatter._num2exceln  sT   € ð& �1Œ9ÜÐ9¸%¸ÐAÓBÐBØˆà�aŒiŸ{Ü% e¨RÓ0ÑˆEÜ˜b 9�nÓ-°Õ;ŠKØÐr1   c               ó<   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRR/	# )r#   Úwriterz)FilePath | WriteExcelBuffer | ExcelWriterÚ
sheet_namerê   Ústartrowr%   ÚstartcolÚfreeze_panesztuple[int, int] | NoneÚenginerr   Ústorage_optionszStorageOptions | NoneÚengine_kwargsrD   r*   r+   r,   )r-   s   "r.   r/   rj  Š  so   € ÷ uñ uà9ðuð ðuð ð	uð
 ðuð -ðuð ðuð /ðuð #ðuð 
ñur1   c	           
     óÀ  € ^ RI Hp	 V P                  P                  w  r«W P                  8”  g   W°P
                  8”  d,   \        RV
 RV RV P                   RV P
                   24      hV P                  '       EdX   ^p^pV^ 8X  d   ^ pMõV P                  '       dâ   ^ p\        V P                  P                  \        4      '       dE   V P                  '       d   \        R4      hV P                  P                  P                  ^,
          p\        V P                  \        4      '       dQ   V P                  '       d   \        R4      hV P                  P                  pV P                  P                  ^,           pMRpV P                  V4       W<,            2pV P                  WK,           V,           4      pV W:,           V,            2pV RV 2pMRpVf   / pV P                  4       p\        W4      '       d   RpMV	! VVVVR	7      pR
p VP!                  VVVVVVR7       V'       d   VP#                  4        R# R#   T'       d   TP#                  4        i i ; i)a  
writer : path-like, file-like, or ExcelWriter object
    File path or existing ExcelWriter
sheet_name : str, default 'Sheet1'
    Name of sheet which will contain DataFrame
startrow :
    upper left cell row to dump data frame
startcol :
    upper left cell column to dump data frame
freeze_panes : tuple of integer (length 2), default None
    Specifies the one-based bottommost row and rightmost column that
    is to be frozen
engine : string, default None
    write engine to use if writer is a path - you can also set this
    via the options ``io.excel.xlsx.writer``,
    or ``io.excel.xlsm.writer``.

storage_options : dict, optional
    Extra options that make sense for a particular storage connection, e.g.
    host, port, username, password, etc. For HTTP(S) URLs the key-value pairs
    are forwarded to ``urllib.request.Request`` as header options. For other
    URLs (e.g. starting with "s3://", and "gcs://") the key-value pairs are
    forwarded to ``fsspec.open``. Please see ``fsspec`` and ``urllib`` for more
    details, and for more examples on storage options refer `here
    <https://pandas.pydata.org/docs/user_guide/io.html?
    highlight=storage_options#reading-writing-remote-files>`_.

engine_kwargs: dict, optional
    Arbitrary keyword arguments passed to excel engine.
r   z-This sheet is too large! Your sheet size is: z, z Max sheet size is: zwExcel filters merged cells by showing only the first row. 'autofilter' and 'merge_cells' cannot be used simultaneously.Ú:NF)rü  rý  rþ  T)rù  rú  rû  Úautofilter_ranger-  )Úpandas.io.excelr   rs  ÚshapeÚmax_rowsÚmax_colsrU  ri  rd  r–   r   rf  rŒ  rm  rô  rì  Ú_write_cellsÚclose)r7   r÷  rø  rù  rú  rû  rü  rý  rþ  r   Únum_rowsÚnum_colsÚstartrowsoffsetÚendrowsoffsetÚindexoffsetÚstartÚautofilter_end_columnÚendr  Úformatted_cellsÚ	need_saves   &&&&&&&&&            r.   ÚwriteÚExcelFormatter.writeŠ  s3  € õR 	0à!ŸW™WŸ]™]ÑˆØ—m‘mÔ# x·-±-Ô'?ÜØ?À¸zÈÈHÈ:ð V&Ø&*§m¡m _°B°t·}±}°oðGóð ð
 �?�?‰?àˆOØˆMà˜1Œ}Ø‘Ø——�Ø�Ü˜dŸg™gŸm™m¬Z×8Ò8Ø×'×'Ð'Ü(ð6óð ð '+§g¡g§m¡m×&;Ñ&;¸aÕ&?˜ä˜dŸl™l¬J×7Ò7Ø×'×'Ð'Ü(ð6óð ð +/¯,©,×*>Ñ*>˜à(,¯©×(<Ñ(<¸qÕ(@˜øð !�Ø—‘ xÓ0Ð1°(Õ2LÐ1MÐNˆEØ$(§O¡O°HÕ4GÈ+Õ4UÓ$VÐ!Ø*Ð+¨HÕ,?À-Õ,OÐ+PÐQˆCØ"' ¨¨#¨Ð/Ñà#ÐàÒ ØˆMà×2Ñ2Ó4ˆÜ�f×*Ò*Ø‰Iá ØØØ /Ø+ô	ˆFð ˆIð	Ø×ÑØØØ!Ø!Ø)Ø!1ð  ô ÷ Ø—‘–ñ ø�yØ—‘•ð ús   ÈI ÉI)ri  rm  rs  ra  rc  rd  re  rg  rf  r`  ro  rh  rp  i   i @  )
r)  NNTTNFÚinfNF)ÚSheet1rl  rl  NNNN)r:   r;   r<   r=   r[  r  r  r8   r  r   r¨  r»  rÂ  rÀ  r¿  ÚpropertyrŽ  rË  rì  rô  r  r@   r,   r1   r.   r^  r^  ó  sp   † ñ#ðJ €HØ€H÷0%òdõ$1õfõ>*õ,/õ,2õ\V0ðp ô)ó ð)õõ õ
÷8uó ur1   r^  )8r[  Ú
__future__r   Úcollections.abcr   r   r   r   r   rv   r·  r$  Útypingr   r	   r
   r×   ÚnumpyrÈ  Úpandas._libs.libr   Úpandas.util._exceptionsr   Úpandas.core.dtypesr   Úpandas.core.dtypes.commonr   r   Úpandasr   r   r   r   r   Úpandas.core.commonÚcoreÚcommonrÔ  Úpandas.io.formats._color_datar   Úpandas.io.formats.cssr   r   Úpandas.io.formats.formatr   Úpandas._typingr   r   r   r   r   r   r!   rB   rX   r^  r,   r1   r.   Ú<module>r'     s¨   ðñõ #÷õ ó Û Û 	÷ñ ó
 ã å )Ý 4å &÷÷
õ ÷ !Ð  å 5÷õ 7ç÷õ õ #÷!ñ !ô*K�9ô K÷2CAñ CA÷LLó Lr1   