+
     Bit                     H   ^ RI t ^ RIt^ RIHtHt ^ RIt^ RIHt . RNRNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0Nt	]
t ! R1 R]
]4      t ! R2 R]
4      tR3 t] ! R4 R]4      4       t] ! R5 R]4      4       t. RYOt ! R6 R74      t ! R8 R94      t]! R:4      t]! R;4      t]! R<4      t]! R=4      tR> tR? tR@ tRA tRB tRC tRD tRE t  ! RF R]!4      t" ! RG R]"4      t# ! RH R]"4      t$ ! RI RJ4      t%RK t& ! RL R]#4      t' ! RM R]$4      t( ! RN RO]#4      t) ! RP RQ]'])4      t*]#! 4       t+]+PX                  t-RR t.]+P^                  t0]+Pb                  t1]+Pd                  t3]+Ph                  t5]+Pl                  t6]+Pn                  t8]+Pr                  t:]+Pv                  t<^t=^t>]=]>3RS lt?]=]>3RT lt@RUtA]P                  ! ]A^^4      P                  4       tDRV tERZRW ltF]GRX8X  d
   ]F! 4        R# R# )[    N)IntEnumglobal_enum)repeatIllegalMonthErrorIllegalWeekdayErrorsetfirstweekdayfirstweekdayisleapleapdaysweekday
monthrangemonthcalendarprmonthmonthprcalcalendartimegm
month_name
month_abbrday_nameday_abbrCalendarTextCalendarHTMLCalendarLocaleTextCalendarLocaleHTMLCalendar
weekheaderDayMonthJANUARYFEBRUARYMARCHAPRILMAYJUNEJULYAUGUST	SEPTEMBEROCTOBERNOVEMBERDECEMBERMONDAYTUESDAY	WEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAYc                   ,   a  ] tR t^ t o R tR tRtV tR# )r   c                    Wn         R # Nr   )selfr   s   &&/usr/lib/python3.14/calendar.py__init__IllegalMonthError.__init__!   s    
    c                (    R V P                   ,          # )z!bad month number %r; must be 1-12r6   r7   s   &r8   __str__IllegalMonthError.__str__#   s    2TZZ??r;   r6   N__name__
__module____qualname____firstlineno__r9   r>   __static_attributes____classdictcell____classdict__s   @r8   r   r       s     @ @r;   c                   ,   a  ] tR t^'t o R tR tRtV tR# )r   c                    Wn         R # r5   r   )r7   r   s   &&r8   r9   IllegalWeekdayError.__init__(   s    r;   c                (    R V P                   ,          # )z7bad weekday number %r; must be 0 (Monday) to 6 (Sunday)rK   r=   s   &r8   r>   IllegalWeekdayError.__str__*   s    H4<<WWr;   rK   Nr@   rG   s   @r8   r   r   '   s     X Xr;   c                     V R	9   d=   ^ RI pVP                  RV  RV P                  4        R2\        ^R7       V R 8X  d   ^# ^# \	        R\
         RV  R24      h)
JanuaryNzThe 'z ' attribute is deprecated, use 'z	' instead)
stacklevelzmodule 'z' has no attribute '')rP   February)warningswarnupperDeprecationWarningAttributeErrorrA   )namerT   s   & r8   __getattr__rZ   .   sf    &&dV#CDJJL>QZ[(Q 	 	89
8H:-A$qI
JJr;   c                   F    ] tR t^<t^t^t^t^t^t^t	^t
^t^	t^
t^t^tRtR# )r    N)rA   rB   rC   rD   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   rE   r\   r;   r8   r   r   <   s>    GHEE
CDDFIGHHr;   c                   2    ] tR t^Mt^ t^t^t^t^t^t	^t
RtR# )r   r\   N)rA   rB   rC   rD   r,   r-   r.   r/   r0   r1   r2   rE   r\   r;   r8   r   r   M   s%    FGIHFHFr;   c                      a ] tR t^`t o]! ^4       U u. uF,  p \
        P                  ! RV ^,           ^4      P                  NK.  	  up t]P                  ^ R 4       R t
R tR tRtVtR# u up i )_localized_month  c                    R # ) r\   )xs   &r8   <lambda>_localized_month.<lambda>c   s    r;   c                    Wn         R # r5   formatr7   rh   s   &&r8   r9   _localized_month.__init__e       r;   c                    V P                   V,          p\        V\        4      '       d"   V Uu. uF  q3! V P                  4      NK  	  up# V! V P                  4      # u upi r5   )_months
isinstanceslicerh   r7   ifuncsfs   &&  r8   __getitem___localized_month.__getitem__h   sM    Qa,12EqAdkkNE22%% 3   Ac                    ^# )   r\   r=   s   &r8   __len___localized_month.__len__o   s    r;   rg   N)rA   rB   rC   rD   rangedatetimedatestrftimerm   insertr9   rt   ry   rE   rF   rq   rH   s   0@r8   r_   r_   `   s\     =B2YGYx}}T1Q3*33YGGNN1l#&  Hs   2A+r_   c            	          a ] tR t^st o]! ^4       U u. uF,  p \
        P                  ! R^V ^,           4      P                  NK.  	  up tR t	R t
R tRtVtR# u up i )_localized_dayr`   c                    Wn         R # r5   rg   ri   s   &&r8   r9   _localized_day.__init__x   rk   r;   c                    V P                   V,          p\        V\        4      '       d"   V Uu. uF  q3! V P                  4      NK  	  up# V! V P                  4      # u upi r5   )_daysrn   ro   rh   rp   s   &&  r8   rt   _localized_day.__getitem__{   sM    

1a,12EqAdkkNE22%% 3rv   c                    ^#    r\   r=   s   &r8   ry   _localized_day.__len__   s    r;   rg   N)rA   rB   rC   rD   r{   r|   r}   r~   r   r9   rt   ry   rE   rF   r   s   0@r8   r   r   s   sQ      <A8D8aX]]4AaC(118DE&  Es   2Ar   z%Az%az%Bz%bc                 j    V ^,          ^ 8H  ;'       d!    V ^d,          ^ 8g  ;'       g    V R,          ^ 8H  # )     r\   )years   &r8   r
   r
      s0    !8q=AAdSjAo@@qAr;   c                     V ^,          p V^,          pV^,          V ^,          ,
          V^d,          V ^d,          ,
          ,
          VR,          V R,          ,
          ,           # )   r   r\   )y1y2s   &&r8   r   r      sL     !GB!GBEBEMb#gC/0BGb#g4EFFr;   c                     \         P                  T u;8:  d   \         P                  8:  g   M R V R,          ,           p \        \         P                  ! WV4      P                  4       4      # )i  r   )r|   MINYEARMAXYEARr   r}   r   )r   r   days   &&&r8   r   r      sH    t7x'7'77dSj x}}T#.66899r;   c                 >    ^T u;8:  d   ^8:  g   M \        V 4      hR# )r   N)r   r6   s   &r8   _validate_monthr      s    && r;   c                     \        V4       \        W^4      p\        V,          V\        8H  ;'       d    \	        V 4      ,           pW#3# r   )r   r   mdaysr!   r
   )r   r   day1ndayss   &&  r8   r   r      s?     E4"D%LEX->>&,?E;r;   c                 ^    \         V,          V\        8H  ;'       d    \        V 4      ,           # r5   )r   r!   r
   r   r   s   &&r8   	_monthlenr      s"    <5H,==>>r;   c                 :    V^8X  d   V ^,
          ^3# W^,
          3# r   r\   r   s   &&r8   
_prevmonthr      s#    zAvrz1W}r;   c                 :    V^8X  d   V ^,           ^3# W^,           3# )   r\   r   s   &&r8   
_nextmonthr      s#    {Avqy1W}r;   c                      a  ] tR t^t o RR ltR tR t]! ]]4      tR t	R t
R tR tR tR	 tR
 tR tR tRR ltRR ltRR ltRtV tR# )r   c                    Wn         R # r5   r	   r7   r	   s   &&r8   r9   Calendar.__init__   s    (r;   c                (    V P                   ^,          # r   _firstweekdayr=   s   &r8   getfirstweekdayCalendar.getfirstweekday   s    !!A%%r;   c                    Wn         R # r5   r   r   s   &&r8   r   Calendar.setfirstweekday   s    )r;   c              #     "   \        V P                  V P                  ^,           4       F  pV^,          x  K  	  R# 5ir   N)r{   r	   )r7   rq   s   & r8   iterweekdaysCalendar.iterweekdays   s3     
 t(($*;*;a*?@AA#I As   <>c              #  v   "   V P                  W4       F  w  r4p\        P                  ! W4V4      x  K!  	  R # 5ir5   )itermonthdays3r|   r}   )r7   r   r   ymds   &&&   r8   itermonthdatesCalendar.itermonthdates   s1      **47GA!--a(( 8s   79c              #  .  "   \        W4      w  r4W0P                  ,
          ^,          p\        ^ V4       Rj  xL
  \        ^V^,           4       Rj  xL
  V P                  V,
          V,
          ^,          p\        ^ V4       Rj  xL
  R#  LV L= L
5ir   )r   r	   r   r{   )r7   r   r   r   r   days_before
days_afters   &&&    r8   itermonthdaysCalendar.itermonthdays   s     
 !-///14![)))EAI&&&''$.6!;
!Z((( 	*&(s3   6BBBB4BB	BBBc              #     "   \        V P                  W4      V P                  4       F  w  r4WC^,          3x  K  	  R# 5ir   )	enumerater   r	   )r7   r   r   rq   r   s   &&&  r8   itermonthdays2Calendar.itermonthdays2   s7     
 d00=t?P?PQDAU(N Rs   =?c              #    "   \        W4      w  r4W0P                  ,
          ^,          pV P                  V,
          V,
          ^,          p\        W4      w  rx\        Wx4      ^,           p	\	        W,
          V	4       F	  p
WxV
3x  K  	  \	        ^V^,           4       F	  p
WV
3x  K  	  \        W4      w  rx\	        ^V^,           4       F	  p
WxV
3x  K  	  R# 5ir   )r   r	   r   r   r{   r   )r7   r   r   r   r   r   r   r   r   endr   s   &&&        r8   r   Calendar.itermonthdays3   s     
 !-///14''$.6!;
$&o!s,A'M -q%!)$Aq.  %$&q*q.)A'M *s   CCc              #     "   \        V P                  W4      4       F'  w  pw  rEpWEW`P                  V,           ^,          3x  K)  	  R# 5ir   )r   r   r	   )r7   r   r   rq   r   r   r   s   &&&    r8   itermonthdays4Calendar.itermonthdays4
  sE     
 &d&9&9$&FGLAya--1Q666 Hs   AA
c                    \        V P                  W4      4      p\        ^ \        V4      ^4       Uu. uF  qCWD^,            NK  	  up# u upi r   )listr   r{   len)r7   r   r   datesrq   s   &&&  r8   monthdatescalendarCalendar.monthdatescalendar  sF    
 T((56',QE
A'>@'>!q1'>@@@   A	c                    \        V P                  W4      4      p\        ^ \        V4      ^4       Uu. uF  qCWD^,            NK  	  up# u upi r   )r   r   r{   r   r7   r   r   daysrq   s   &&&  r8   monthdays2calendarCalendar.monthdays2calendar  sF     D''45&+As4y!&<>&<a!&<>>>r   c                    \        V P                  W4      4      p\        ^ \        V4      ^4       Uu. uF  qCWD^,            NK  	  up# u upi r   )r   r   r{   r   r   s   &&&  r8   monthdayscalendarCalendar.monthdayscalendar$  sF    
 D&&t34&+As4y!&<>&<a!&<>>>r   c                    \          Uu. uF  q0P                  W4      NK  	  pp\        ^ \        V4      V4       Uu. uF  qTWUV,            NK  	  up# u upi u upi r   )r   r   r{   r   r7   r   widthr   monthsrq   s   &&&   r8   yeardatescalendarCalendar.yeardatescalendar,  V     =BBEq))$2EB+0CK+GI+Gaq5!+GII CI
   AAc                    \          Uu. uF  q0P                  W4      NK  	  pp\        ^ \        V4      V4       Uu. uF  qTWUV,            NK  	  up# u upi u upi r   )r   r   r{   r   r   s   &&&   r8   yeardays2calendarCalendar.yeardays2calendar6  r   r   c                    \          Uu. uF  q0P                  W4      NK  	  pp\        ^ \        V4      V4       Uu. uF  qTWUV,            NK  	  up# u upi u upi r   )r   r   r{   r   r   s   &&&   r8   yeardayscalendarCalendar.yeardayscalendar@  sV     <AA5a((15A+0CK+GI+Gaq5!+GII BIr   )r   r	   Nr      )rA   rB   rC   rD   r9   r   r   propertyr	   r   r   r   r   r   r   r   r   r   r   r   r   rE   rF   rG   s   @r8   r   r      sh     )&* O_=L)
)$7A??JJJ Jr;   c                   p   a  ] tR tRt o R tR tR tR tR tRR lt	RR lt
RR	 ltRR
 ltRR ltRtV tR# )r   iJ  c                >    \        V P                  W4      R R7       R# rb   )r   N)print
formatweekr7   theweekr   s   &&&r8   prweekTextCalendar.prweekP  s     	doog-26r;   c                J    V^ 8X  d   RpM	RV,          pVP                  V4      # )r   rb   z%2icenter)r7   r   r   r   ss   &&&& r8   	formatdayTextCalendar.formatdayV  s'     !8AAxxr;   c                >   a a R P                  V V3R lV 4       4      # ) c              3   L   <"   T F  w  rSP                  WS4      x  K  	  R # 5ir5   r   ).0r   wdr7   r   s   &  r8   	<genexpr>*TextCalendar.formatweek.<locals>.<genexpr>d  s!     LG!qe44G   !$joinr   s   f&fr8   r   TextCalendar.formatweek`  s     xxLGLLLr;   c                ^    V^	8  d   \         pM\        pW1,          RV P                  V4      # )	   N)r   r   r   )r7   r   r   namess   &&& r8   formatweekdayTextCalendar.formatweekdayf  s/     A:EEz&5!((//r;   c                Z   a a R P                  V V3R lS P                  4        4       4      # )r   c              3   H   <"   T F  pSP                  VS4      x  K  	  R # 5ir5   r  )r  rq   r7   r   s   & r8   r  0TextCalendar.formatweekheader.<locals>.<genexpr>t  s#     R>Q**1e44>Qs   "r  r   )r7   r   s   ffr8   formatweekheaderTextCalendar.formatweekheaderp  s#     xxRd>O>O>QRRRr;   c                v    \        V4       \        V,          pV'       d
   V: R V: 2pVP                  V4      # )r   )r   r   r   )r7   theyearthemonthr   withyearr   s   &&&&& r8   formatmonthnameTextCalendar.formatmonthnamev  s1     	!x g&Axxr;   c                @    \        V P                  WW44      R R7       R# r   )r   formatmonth)r7   r  r  wls   &&&&&r8   r   TextCalendar.prmonth  s     	dw!7R@r;   c                   \        ^V4      p\        ^V4      pV P                  W^V^,           ,          ^,
          4      pVP                  4       pVRV,          ,          pWPP                  V4      P                  4       ,          pVRV,          ,          pV P	                  W4       F8  pWPP                  Wc4      P                  4       ,          pVRV,          ,          pK:  	  V# )   
)maxr  rstripr  r   r   )r7   r  r  r  r  r   weeks   &&&&&  r8   r  TextCalendar.formatmonth  s     1I1I  AQK!ODHHJ	TAX	""1%,,..	TAX++G>D)0022AMA ? r;   c           	       a aaa \        ^V4      p\        ^V4      p\        ^V4      pV^,           ^,          ^,
          o. pVP                  pV! \        S4      P                  SV,          WE^,
          ,          ,           4      P	                  4       4       V! RV,          4       S P                  V4      o\        S P                  SV4      4       EFp  w  r\        WX,          ^,           \        WX^,           ,          ^,           ^4      4      p
V! RV,          4       VV V3R lV
 4       pV! \        VSV4      P	                  4       4       V! RV,          4       V3R lV
 4       pV! \        VSV4      P	                  4       4       V! RV,          4       \        R V	 4       4      p\        V4       F  p. pV	 FN  pV\        V4      8  d   VP                  R4       K&  VP                  S P                  VV,          V4      4       KP  	  V! \        VSV4      P	                  4       4       V! RV,          4       K  	  EKs  	  RP                  V4      # )r!  r"  c              3   L   <"   T F  pSP                  SVSR 4      x  K  	  R# 5iFNr  r  kcolwidthr7   r  s   & r8   r  *TextCalendar.formatyear.<locals>.<genexpr>  ,      &$ ))'1hFF$r  c              3   (   <"   T F  pSx  K	  	  R # 5ir5   r\   r  r,  headers   & r8   r  r.         .v!vv   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir5   r   r  cals   & r8   r  r.         1ScSS   rb   )r#  appendreprr   r$  r  r   r   r{   minformatstringr   r   r  )r7   r  r  r  cr   varq   rowr   r  headersheightjweeksr8  r-  r2  s   ff&&&&           @@r8   
formatyearTextCalendar.formatyear  s    1I1I1IEQ;?HH	$w-

xz!qS'1
2
9
9
;<	$q&	&&q)!$"8"8!"DEHQ13q5#a1gai"45Fd1fI&$&El5(A.5578d1fI.v.Gl7Ha0779:d1fI 1S11F6]CCH}R(T__SVQ%?@	 
 ,uh299;<$( # F. wwqzr;   c           	     B    \        V P                  WW4V4      R R7       R# r   )r   rG  )r7   r  r  r  r?  r   s   &&&&&&r8   pryearTextCalendar.pryear  s    doog!2;r;   r\   NTr   r   r!  r      r   )r   r   rO  r   )rA   rB   rC   rD   r   r   r   r  r  r  r   r  rG  rJ  rE   rF   rG   s   @r8   r   r   J  s@     7M0S	A $L< <r;   c                      a  ] tR tRt o . ROt]tRtRtRtRt	Rt
R tR tR tR tRR	 ltRR
 ltRR ltRR ltRtV tR# )r   i  nodayr   r   c                n    V^ 8X  d   RV P                   ,          # RV P                  V,          V3,          # )r   z<td class="%s">&nbsp;</td>z<td class="%s">%d</td>)cssclass_noday
cssclasses)r7   r   r   s   &&&r8   r   HTMLCalendar.formatday  s5     !8/$2E2EEE+tw/G.MMMr;   c                L   a  R P                  V 3R lV 4       4      pRV,          # )rb   c              3   J   <"   T F  w  rSP                  W4      x  K  	  R # 5ir5   r   )r  r   r  r7   s   &  r8   r  *HTMLCalendar.formatweek.<locals>.<genexpr>  s     AgqDNN1))s    #<tr>%s</tr>r  )r7   r   r   s   f& r8   r   HTMLCalendar.formatweek  s$     GGAAAq  r;   c                P    R V P                   V,          : R\        V,          : R2# )z<th class="">z</th>)cssclasses_weekday_headr   )r7   r   s   &&r8   r  HTMLCalendar.formatweekday  s'    
 ((--x}}> 	>r;   c                h   a  R P                  V 3R lS P                  4        4       4      pRV,          # )rb   c              3   F   <"   T F  pSP                  V4      x  K  	  R # 5ir5   r  )r  rq   r7   s   & r8   r  0HTMLCalendar.formatweekheader.<locals>.<genexpr>  s!     G3FaD&&q))3Fs   !rY  r  )r7   r   s   f r8   r  HTMLCalendar.formatweekheader  s-     GGG43D3D3FGGq  r;   c                    \        V4       V'       d   \        V,          : R V: 2pMR\        V,          ,          pRV P                  : RV: R2# )r   z%sz<tr><th colspan="7" class="r\  z
</th></tr>)r   r   cssclass_month_head)r7   r  r  r  r   s   &&&& r8   r  HTMLCalendar.formatmonthname  sF     	!%h//9Az(++A$$a) 	)r;   c                   . pVP                   pV! R V P                  ,          4       V! R4       V! V P                  WVR7      4       V! R4       V! V P                  4       4       V! R4       V P	                  W4       F"  pV! V P                  V4      4       V! R4       K$  	  V! R4       V! R4       RP                  V4      # )=<table border="0" cellpadding="0" cellspacing="0" class="%s">r"  r  </table>rb   )r;  cssclass_monthr  r  r   r   r  )r7   r  r  r  r@  rA  r%  s   &&&&   r8   r  HTMLCalendar.formatmonth  s     HH	
I! 	"	$	$

w8

DE	$	$


!"	$++G>Ddood#$dG ? 	
*	$wwqzr;   c           
        . pVP                   p\        V^4      pV! RV P                  ,          4       V! R4       V! RW P                  V3,          4       \	        \
        \
        ^,           V4       Fa  p\	        V\        WR,           ^4      4      pV! R4       V F,  pV! R4       V! V P                  WRR7      4       V! R4       K.  	  V! R	4       Kc  	  V! R
4       RP                  V4      # )r   rg  r"  z,<tr><th colspan="%d" class="%s">%s</th></tr>z<tr>z<td>Frh  z</td>z</tr>ri  rb   )	r;  r#  cssclass_yearcssclass_year_headr{   r    r=  r  r  )r7   r  r   r@  rA  rq   r   r   s   &&&     r8   rG  HTMLCalendar.formatyear  s     HHE1	
I


 		$	
8**G<5 5 	6w
E2A1c!'2./FfI&	$""7">?'
  gJ 3 	
*wwqzr;   Nc                   Vf   \         P                  ! 4       p. pVP                  pV! RV,          4       V! R4       V! R4       V! R4       V! RV,          4       Ve   V! RV,          4       V! RV,          4       V! R4       V! R	4       V! V P                  W4      4       V! R
4       V! R4       RP	                  V4      P                  VR4      # )Nz$<?xml version="1.0" encoding="%s"?>
zn<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
z<html>
z<head>
zC<meta http-equiv="Content-Type" content="text/html; charset=%s" />
z4<link rel="stylesheet" type="text/css" href="%s" />
z<title>Calendar for %d</title>
z</head>
z<body>
z</body>
z</html>
rb   xmlcharrefreplace)sysgetdefaultencodingr;  rG  r  encode)r7   r  r   cssencodingr@  rA  s   &&&&&  r8   formatyearpageHTMLCalendar.formatyearpage3  s     --/HHH	
1H
<=	
{|	*	*	
PS[
[\?EKL	
,w
67	+	*	$//'
)*	+	+wwqz  +>??r;   r\   )montuewedthufrisatsunrL  r   )r   calendar.cssN)rA   rB   rC   rD   rT  r]  rS  rd  rj  rn  rm  r   r   r  r  r  r  rG  rw  rE   rF   rG   s   @r8   r   r     sj      CJ ) N " N   MN!>!
)(0@ @r;   c                   2   a  ] tR tRt o R tR tR tRtV tR# )different_localeiK  c                     Wn         R V n        R # r5   locale	oldlocale)r7   r  s   &&r8   r9   different_locale.__init__L  s    r;   c                    \         P                  ! \         P                  R 4      V n        \         P                  ! \         P                  V P                  4       R # r5   )_locale	setlocaleLC_TIMEr  r  r=   s   &r8   	__enter__different_locale.__enter__P  s2     **7??DA'//4;;7r;   c                d    \         P                  ! \         P                  V P                  4       R # r5   )r  r  r  r  )r7   argss   &*r8   __exit__different_locale.__exit__T  s    '//4>>:r;   r  N)	rA   rB   rC   rD   r9   r  r  rE   rF   rG   s   @r8   r  r  K  s     8; ;r;   r  c                     \         P                  ! \         P                  R 4      p V R8X  dD   \        R4      ;_uu_ 4        \         P                  ! \         P                  R 4      p R R R 4       V # V #   + '       g   i     T # ; i)NCrb   )r  r  r  r  r  s    r8   _get_default_localer  X  sb    w5F}b!! &&w=F " M6M	 "! Ms    &A22B	c                   L   a a ] tR tRt oRR ltV 3R ltRV 3R lltRtVtV ;t	# )r   ib  c                X    \         P                  W4       Vf   \        4       pW n        R # r5   )r   r9   r  r  r7   r	   r  s   &&&r8   r9   LocaleTextCalendar.__init__h  "    d1>(*Fr;   c                   < \        V P                  4      ;_uu_ 4        \        SV `  W4      uuR R R 4       #   + '       g   i     R # ; ir5   r  r  superr  )r7   r   r   	__class__s   &&&r8   r   LocaleTextCalendar.formatweekdayn  s.    dkk**7(4 +***	   9A
	c                   < \        V P                  4      ;_uu_ 4        \        SV `  WW44      uuR R R 4       #   + '       g   i     R # ; ir5   r  r  r  r  )r7   r  r  r   r  r  s   &&&&&r8   r  "LocaleTextCalendar.formatmonthnamer  s0    dkk**7*7eN +***	   :A	r  r   NrL  
rA   rB   rC   rD   r9   r  r  rE   rF   __classcell__r  rH   s   @@r8   r   r   b  s     5O Or;   c                   L   a a ] tR tRt oRR ltV 3R ltRV 3R lltRtVtV ;t	# )r   iw  c                X    \         P                  W4       Vf   \        4       pW n        R # r5   )r   r9   r  r  r  s   &&&r8   r9   LocaleHTMLCalendar.__init__|  r  r;   c                   < \        V P                  4      ;_uu_ 4        \        SV `  V4      uuR R R 4       #   + '       g   i     R # ; ir5   r  )r7   r   r  s   &&r8   r   LocaleHTMLCalendar.formatweekday  s.    dkk**7(- +***r  c                   < \        V P                  4      ;_uu_ 4        \        SV `  WV4      uuR R R 4       #   + '       g   i     R # ; ir5   r  )r7   r  r  r  r  s   &&&&r8   r  "LocaleHTMLCalendar.formatmonthname  s0    dkk**7*7hG +***r  r  r  rL  r  r  s   @@r8   r   r   w  s     
.H Hr;   c                   X   a a ] tR tRt oR	V 3R lltRR/R ltR
R ltRR ltRtVt	V ;t
# )_CLIDemoCalendari  Nc                4   < \         SV `  ! V/ VB  Wn        R # r5   r  r9   highlight_dayr7   r  r  kwargsr  s   &&*,r8   r9   _CLIDemoCalendar.__init__      $)&)*r;   r  c                  a aaaa S'       d5   ^ RI Hp V! 4       pVP                   VP                   2oVP                  oMR;ooRP                  VVVV V3R lV 4       4      # )r   )
get_colorsrb   r   c              3      <"   T F8  w  rVS8X  d   S SP                  WS4       S 2MSP                  WS4      x  K:  	  R # 5ir5   r   )r  r   r  	highlightr  resetr7   r   s   &  r8   r  ._CLIDemoCalendar.formatweek.<locals>.<genexpr>  sT      
 # % +dnnQE:;E7C^^A512 #s   A A)	_colorizer  BLACKBACKGROUND_YELLOWRESETr  )r7   r   r   r  r  ansir  r  s   f&fd  @@r8   r   _CLIDemoCalendar.formatweek  sc     ,<D::,t'='=&>?IJJE ""Ixx 
 
 #
 
 	
r;   c                   V P                   '       dN   V P                   P                  V8X  d3   V P                   P                  V8X  d   V P                   P                  pMR p\	        ^V4      p\	        ^V4      pV P                  W^V^,           ,          ^,
          4      pVP                  4       pVRV,          ,          pW`P                  V4      P                  4       ,          pVRV,          ,          pV P                  W4       F:  pW`P                  WsVR7      P                  4       ,          pVRV,          ,          pK<  	  V# )Nr"  r  )
r  r   r   r   r#  r  r$  r  r   r   )r7   r  r  r  r  r  r   r%  s   &&&&&   r8   r  _CLIDemoCalendar.formatmonth  s
   
 ""''72""((H4 ..22M M1I1I  AQK!ODHHJ	TAX	""1%,,..	TAX++G>DFMMOOAMA ? r;   c                  a aaa \        ^V4      p\        ^V4      p\        ^V4      pV^,           ^,          ^,
          o. pVP                  pV! \        S4      P                  SV,          WE^,
          ,          ,           4      P	                  4       4       V! RV,          4       S P                  V4      o\        S P                  SV4      4       EF  w  r\        WX,          ^,           \        WX^,           ,          ^,           ^4      4      p
V! RV,          4       VV V3R lV
 4       pV! \        VSV4      P	                  4       4       V! RV,          4       V3R lV
 4       pV! \        VSV4      P	                  4       4       V! RV,          4       S P                  '       d]   S P                  P                  S8X  dB   S P                  P                  V
9   d'   V
P                  S P                  P                  4      pMRp\        R V	 4       4      p\        V4       F  p. p\        V	4       Fr  w  ppV\        V4      8  d   VP                  R4       K)  VV8X  d   S P                  P                   MRpVP                  S P#                  VV,          VVR7      4       Kt  	  V! \        VSV4      P	                  4       4       V! RV,          4       K  	  EK  	  RP%                  V4      # )r!  r"  c              3   L   <"   T F  pSP                  SVSR 4      x  K  	  R# 5ir)  r*  r+  s   & r8   r  ._CLIDemoCalendar.formatyear.<locals>.<genexpr>  r/  r  c              3   (   <"   T F  pSx  K	  	  R # 5ir5   r\   r1  s   & r8   r  r    r3  r4  Nc              3   8   "   T F  p\        V4      x  K  	  R # 5ir5   r6  r7  s   & r8   r  r    r9  r:  rb   r  )r#  r;  r<  r   r$  r  r   r   r{   r=  r>  r  r   r   indexr   r   r   r  )r7   r  r  r  r?  r   r@  rA  rq   rB  r   r  rC  	month_posrD  rE  rF  r,  r8  r   r-  r2  s   ff&&&&              @@r8   rG  _CLIDemoCalendar.formatyear  s\    1I1I1IEQ;?HH	$w-

xz!qS'1
2
9
9
;<	$q&	&&q)!$"8"8!"DEHQ13q5#a1gai"45Fd1fI&$&El5(A.5578d1fI.v.Gl7Ha0779:d1fI """&&++w6&&,,6"LL););)A)AB	 	 1S11F6]'nFAsCH}R( 789nD..22$   OOCFASOI - ,uh299;<$( #/ FJ wwqzr;   r  r5   rM  rN  )rA   rB   rC   rD   r9   r   r  rG  rE   rF   r  r  s   @@r8   r  r    s%     +
$ 
,02 2r;   r  c                   6   a a ] tR tRt oRV 3R lltRtVtV ;t# )_CLIDemoLocaleCalendari  c                4   < \         SV `  ! V/ VB  Wn        R # r5   r  r  s   &&*,r8   r9   _CLIDemoLocaleCalendar.__init__  r  r;   r  r5   )rA   rB   rC   rD   r9   rE   rF   r  r  s   @@r8   r  r    s     + +r;   r  c                 d    \         T u;8:  d   \        8:  g   M \        V 4      hV \        n        R # r5   )r,   r2   r   r?  r	   r   s   &r8   r   r     s!    \+V+!,//!ANr;   c                 0    \        \        WV4      4       R # r5   )r   r>  colsr-  spacings   &&&r8   rh   rh     s    	,tw
/0r;   c                 L   a VR ,          pVP                  V3R lV  4       4      # )r   c              3   D   <"   T F  qP                  S4      x  K  	  R # 5ir5   r   )r  r?  r-  s   & r8   r  formatstring.<locals>.<genexpr>  s     9Dq**Ds    r  r  s   &f&r8   r>  r>    s!    sNG<<9D999r;   i  c                     V R ,          w  rr4rV\         P                  ! W^4      P                  4       \        ,
          V,           ^,
          pV^,          V,           pV^<,          V,           p	V	^<,          V,           p
V
# ):NrO  N)r|   r}   	toordinal
_EPOCH_ORD)tupler   r   r   hourminutesecondr   hoursminutessecondss   &          r8   r   r   !  sh    -22Y*DF==a(224zACG!KDGdNEBhGbj6!GNr;   c                 p	   ^ RI pVP                  RR7      pVP                  R4      pVP                  R4      pVP                  RR\        ^RR	7       VP                  R
R\        ^RR	7       VP                  RR\        ^RR	7       VP                  RR\        ^RR	7       VP                  RRRRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  RRR R6R"R#7       VP                  R$R%\        ^ R&R	7       VP                  R'R(\        R)R*7       VP                  R+R(\        R,R*7       VP                  V 4      pVP                  '       d:   VP                  '       g(   VP                  R-4       \        P                  ! ^4       VP                  VP                  3p\        P                  P                  4       pVP                  R!8X  Ed5   VP                  '       d(   VP                  R.4       \        P                  ! ^4       VP                  '       d   \!        VR/7      pM
\#        4       pVP%                  VP&                  4       VP                  p	V	f   \        P(                  ! 4       p	\+        WP,                  R07      p
\        P.                  P0                  P2                  pVP4                  f&   V! VP6                  ! VP4                  3/ V
B 4       R# V! VP6                  ! VP4                  3/ V
B 4       R# VP                  '       d   \9        WvR17      pM\;        VR27      pVP%                  VP&                  4       \+        VP<                  VP>                  R37      p
VP                  f    VP@                  V
R4&   VPB                  V
R5&   M\E        VP                  4       VP4                  f   VPF                  ! VP4                  3/ V
B pMTVP                  f   VPF                  ! VP4                  3/ V
B pM(VPH                  ! VP4                  VP                  3/ V
B p\        P.                  P2                  pVP                  '       d@   VPK                  VP                  4      p\        P.                  P0                  P2                  pV! V4       R# )7r   NT)colorztext only argumentszhtml only argumentsz-wz--widthz width of date column (default 2))typedefaulthelpz-lz--linesz)number of lines for each week (default 1)z-sz	--spacingz"spacing between months (default 6)z-mz--monthszmonths per row (default 3)z-cz--cssr  zCSS to use for page)r  r  z-Lz--localez)locale to use for month and weekday namesz-ez
--encodingzencoding to use for outputz-tz--typetexthtmlzoutput type (text or html))r  choicesr  z-fz--first-weekdayzAweekday (0 is Monday, 6 is Sunday) to start each week (default 0)r   ?zyear number)nargsr  r  r   zmonth number (1-12, text only)z/if --locale is specified --encoding is requiredzincorrect number of argumentsr  )rv  ru  )r  r  r  )r  r  r?  r   )r  r  )&argparseArgumentParseradd_argument_groupadd_argumentint
parse_argsr  rv  errorrr  exitr|   r}   todayr  r   r   r   r   first_weekdayrs  dictru  stdoutbufferwriter   rw  r  r  r   linesr  r   r   rG  r  rt  )r  r  parser	textgroup	htmlgroupoptionsr  r  r8  rv  optdictr  results   &            r8   mainr  +  s   $$4$0F))*?@I))*?@Ii!/  
 i!8  
 k!1  
 j!)  
 g"  
 j8  
 l)  
 h )	   !P  
   
 -   %G~~~g...FG^^W---FMM!E||v===LL89HHQK>>>$F3C.CG112##--/Hkk:

!!''<<#$$UZZ;7;<#$$W\\=W=>>>>(uLC"7CG112'--8== "??GCL">>GCLGMM*<<^^EJJ:':F]]"^^GLL<G<F__W\\7==LGLF

  ]]7#3#34FJJ%%++Efr;   __main__)r         r     r  r	  r  r  r	  r  r	  r  r5   )Hrr  r|   enumr   r   r  r  	itertoolsr   __all__
ValueErrorr  
IndexErrorr   r   rZ   r   r   r   r_   r   r   r   r   r   r
   r   r   r   r   r   r   r   objectr   r   r   r  r  r   r   r  r  r?  r   r	   r   r   r   r   r   r%  r  r   r   r  r   rG  r   rJ  r   	_colwidth_spacingrh   r>  EPOCHr}   r  r  r   r  rA   r\   r;   r8   <module>r     s     %  
! 
! 5 
!7H 
!
!#
!%/
!1:
!<H
!
!%
!'.
!07
!9C
! 
! "
! $0
! 2<
! >H
! 	
! &	
! (6	
! 8L	
!
  
!
 ".
! 
! 
! %
! '1
! 3:
! 
! 
! "
! $*
! 
! !
! #,
! .8
! :D
! 
! 
! !,
! .8
! :B
! 
!  
! 	
@
J @X* X
K G    '   	< & ( $$ d#
d#
B
G:'?EJv EJPu<8 u<pF@8 F@R
; 
;O O*H H(e| eP+/1A + N  "
 ##	
||

))	<<	 	 $X 1
 !*8 : 	]]5!Q'113
od zF r;   