1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
+ ijP%LRt^RIt^RIt^RIHtHt^RIt^RIH t .RNRNRNRNRNR NR NR NR NR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0Nt ] t !R1R] ] 4t!R2R] 4tR3t]!R4R]44t]!R5R]44t.RYOt!R6R74t!R8R94t]!R:4t]!R;4t]!R<4t]!R=4tR>tR?tR@tRAtRBtRCtRDt REt!!RFR]"4t#!RGR]#4t$!RHR]#4t%!RIRJ4t&RKt'!RLR]$4t(!RMR]%4t)!RNRO]$4t*!RPRQ](]*4t+]$!4t,],PZt.RRt/],P`t1],Pdt2],Pft4],Pjt6],Pnt7],Ppt9],Ptt;],Pxt=^t>^t?]>]?3RSlt@]>]?3RTltARUtB]P!]B^^4P4tERVtFRZRWltG]HRX8Xd ]G!4R#R#)[a$Calendar printing functions Note when comparing these calendars to the ones printed by cal(1): By default, these calendars have Monday as the first day of the week, and Sunday as the last (the European convention). Use setfirstweekday() to set the first day of the week (0=Monday, 6=Sunday).N)IntEnum global_enum)repeatIllegalMonthErrorIllegalWeekdayErrorsetfirstweekday firstweekdayisleapleapdaysweekday monthrange monthcalendarprmonthmonthprcalcalendartimegm month_name month_abbrday_nameday_abbrCalendar TextCalendar HTMLCalendarLocaleTextCalendarLocaleHTMLCalendar weekheaderDayMonthJANUARYFEBRUARYMARCHAPRILMAYJUNEJULYAUGUST SEPTEMBEROCTOBERNOVEMBERDECEMBERMONDAYTUESDAY WEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAYc,a]tRt^ toRtRtRtVtR#)rcWnR#Nr)selfrs&&.D:/M/msys64/mingw64/lib/python3.14/calendar.py__init__IllegalMonthError.__init__!s c(RVP,#)z!bad month number %r; must be 1-12r5r6s&r7__str__IllegalMonthError.__str__#s2TZZ??r:r5N__name__ __module__ __qualname____firstlineno__r8r=__static_attributes____classdictcell__ __classdict__s@r7rr s@@r:c,a]tRt^'toRtRtRtVtR#)rcWnR#r4r )r6r s&&r7r8IllegalWeekdayError.__init__(s r:c(RVP,#)z7bad weekday number %r; must be 0 (Monday) to 6 (Sunday)rJr<s&r7r=IllegalWeekdayError.__str__*sH4<<WWr:rJNr?rFs@r7rr'sXXr:cVR 9d=^RIpVPRV RVP4 R2\^R7VR8Xd^#^#\ R\ RV R24h) JanuaryNzThe 'z ' attribute is deprecated, use 'z ' instead) stacklevelzmodule 'z' has no attribute '')rOFebruary)warningswarnupperDeprecationWarningAttributeErrorr@)namerSs& r7 __getattr__rY.sf && dV#CDJJL>QZ[(Q  8 9  8H:-A$qI JJr:cF]tRt^GH E E C D D FIGHHr:c2]tRt^Mt^t^t^t^t^t^t ^t Rt R#)rr[N) r@rArBrCr+r,r-r.r/r0r1rDr[r:r7rrMs% FGIH FH Fr:ca]tRt^`to]!^ 4Uu.uF,p\ P !RV^,^4PNK. upt]P^R4Rt Rt Rt Rt VtR#uupi)_localized_monthcR#)r[)xs&r7_localized_month.csr:cWnR#r4formatr6rgs&&r7r8_localized_month.__init__e r:cVPV,p\V\4'd"VUu.uFq3!VP4NK up#V!VP4#uupir4)_months isinstanceslicergr6ifuncsfs&& r7 __getitem___localized_month.__getitem__hsM Q a  ,12EqAdkkNE2 2% %3Ac^ #) r[r<s&r7__len___localized_month.__len__osr:rfN)r@rArBrCrangedatetimedatestrftimerlinsertr8rsrxrDrErprGs0@r7r^r^`s\=B2YGYx}}T1Q3*33YGG NN1l#&Hs2A+r^c a]tRt^sto]!^4Uu.uF,p\ P !R^V^,4PNK. uptRt Rt Rt Rt Vt R#uupi)_localized_dayr_cWnR#r4rfrhs&&r7r8_localized_day.__init__xrjr:cVPV,p\V\4'd"VUu.uFq3!VP4NK up#V!VP4#uupir4)_daysrmrnrgros&& r7rs_localized_day.__getitem__{sM 1  a  ,12EqAdkkNE2 2% %3ruc^#r[r<s&r7rx_localized_day.__len__sr:rfN)r@rArBrCrzr{r|r}rr8rsrxrDrErs0@r7rrssQ^Tu;8:d^ 8:gM\V4hR#)N)rr5s&r7_validate_monthrs   && r:c\V4\W^4p\V,V\8H;'d \ V4,pW#3#)z`Return weekday of first day of month (0-6 ~ Mon-Sun) and number of days (28-31) for year, month.)rr mdaysr r )rrday1ndayss&& r7r r s?E 4 "D %LEX->>&, ?E ;r:c^\V,V\8H;'d \V4,#r4)rr r rrs&&r7 _monthlenrs" <5H,== >>r:c:V^8Xd V^, ^ 3#W^, 3#)rr[rs&&r7 _prevmonthrs# zAvrz1W}r:c:V^ 8Xd V^,^3#W^,3#) r[rs&&r7 _nextmonthrs# {Avqy1W}r:ca]tRt^toRtRRltRtRt]!]]4t Rt Rt Rt Rt R tR tR tR tR tRRltRRltRRltRtVtR#)rzc Base calendar class. This class doesn't do any formatting. It simply provides data to subclasses. cWnR#r4rr6rs&&r7r8Calendar.__init__s(r:c(VP^,#r _firstweekdayr<s&r7getfirstweekdayCalendar.getfirstweekdays!!A%%r:cWnR#r4rrs&&r7rCalendar.setfirstweekdays)r:c# "\VPVP^,4FpV^,xK R#5i)z\ Return an iterator for one week of weekday numbers starting with the configured first one. N)rzr)r6rps& r7 iterweekdaysCalendar.iterweekdayss3 t(($*;*;a*?@AA#IAs<>c# v"VPW4Fwr4p\P!W4V4xK! R#5i)z Return an iterator for one month. The iterator will yield datetime.date values and will always iterate through complete weeks, so it will yield dates outside the specified month. N)itermonthdays3r{r|)r6rrymds&&& r7itermonthdatesCalendar.itermonthdatess1 **47GA!--a( (8s79c# ."\W4wr4W0P, ^,p\^V4RjxL \^V^,4RjxL VPV, V, ^,p\^V4RjxL R#LVL=L 5i)zn Like itermonthdates(), but will yield day numbers. For days outside the specified month the day number is 0. N)r rrrz)r6rrrr days_before days_afters&&& r7 itermonthdaysCalendar.itermonthdayss !- ///14 ![)))EAI&&&''$.6!; !Z((( *&(s36BBBB4BB BBBc# "\VPW4VP4Fwr4WC^,3xK R#5i)z Like itermonthdates(), but will yield (day number, weekday number) tuples. For days outside the specified month the day number is 0. N) enumeraterr)r6rrrprs&&& r7itermonthdays2Calendar.itermonthdays2s7 d00=t?P?PQDAU(NRs=?c# "\W4wr4W0P, ^,pVPV, V, ^,p\W4wrx\Wx4^,p \ W, V 4F p WxV 3xK \ ^V^,4F p WV 3xK \ W4wrx\ ^V^,4F p WxV 3xK R#5i)zy Like itermonthdates(), but will yield (year, month, day) tuples. Can be used for dates outside of datetime.date range. N)r rrrrzr) r6rrrrrrrrendrs &&& r7rCalendar.itermonthdays3s !- ///14 ''$.6!; $&o!s,A'M-q%!)$Aq. %$&q*q.)A'M*sCCc# "\VPW44F'wpwrEpWEW`PV,^,3xK) R#5i)z Like itermonthdates(), but will yield (year, month, day, day_of_week) tuples. Can be used for dates outside of datetime.date range. N)rrr)r6rrrprrrs&&& r7itermonthdays4Calendar.itermonthdays4 sE &d&9&9$&FGLAya--1Q66 6HsAA c \VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)z Return a matrix (list of lists) representing a month's calendar. Each row represents a week; week entries are datetime.date values. )listrrzlen)r6rrdatesrps&&& r7monthdatescalendarCalendar.monthdatescalendarsF T((56',QE A'>@'>!q1'>@@@A c \VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)z Return a matrix representing a month's calendar. Each row represents a week; week entries are (day number, weekday number) tuples. Day numbers outside this month are zero. )rrrzrr6rrdaysrps&&& r7monthdays2calendarCalendar.monthdays2calendarsFD''45&+As4y!&<>&<a!&<>>>rc \VPW44p\^\V4^4Uu.uF qCWD^,NK up#uupi)zp Return a matrix representing a month's calendar. Each row represents a week; days outside this month are zero. )rrrzrrs&&& r7monthdayscalendarCalendar.monthdayscalendar$sF D&&t34&+As4y!&<>&<a!&<>>>rc \Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)z Return the data for the specified year ready for formatting. The return value is a list of month rows. Each month row contains up to width months. Each month contains between 4 and 6 weeks and each week contains 1-7 days. Days are datetime.date objects. )rrrzrr6rwidthrmonthsrps&&& r7yeardatescalendarCalendar.yeardatescalendar,V=BBEq))$2EB+0CK+GI+Gaq5!+GIICI AAc \Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)z Return the data for the specified year ready for formatting (similar to yeardatescalendar()). Entries in the week lists are (day number, weekday number) tuples. Day numbers outside this month are zero. )rrrzrrs&&& r7yeardays2calendarCalendar.yeardays2calendar6rrc \Uu.uFq0PW4NK pp\^\V4V4Uu.uF qTWUV,NK up#uupiuupi)z Return the data for the specified year ready for formatting (similar to yeardatescalendar()). Entries in the week lists are day numbers. Day numbers outside this month are zero. )rrrzrrs&&& r7yeardayscalendarCalendar.yeardayscalendar@sV \VPW4RR7R#)z# Print a single week (no newline). rarN)print formatweekr6theweekrs&&&r7prweekTextCalendar.prweekPs doog-26r:c JV^8XdRpM RV,pVPV4#)z Returns a formatted day. raz%2icenter)r6rr rss&&&& r7 formatdayTextCalendar.formatdayVs' !8A Axxr:c >aaRPVV3RlV44#)1 Returns a single week in a string (no newline).  c3L<"TFwrSPWS4xK R#5ir4r).0rwdr6rs& r7 *TextCalendar.formatweek..ds!LG!qe44G!$joinrsf&fr7rTextCalendar.formatweek`sxxLGLLLr:c ^V^ 8d\pM\pW1,RVPV4#)z$ Returns a formatted week day name. N)rrr)r6rrnamess&&& r7 formatweekdayTextCalendar.formatweekdayfs/ A:EEz&5!((//r:c ZaaRPVV3RlSP444#)z Return a header for a week. rc3H<"TFpSPVS4xK R#5ir4r )rrpr6rs& r7r0TextCalendar.formatweekheader..ts#R>Q**1e44>Qs"rr)r6rsffr7formatweekheaderTextCalendar.formatweekheaderps#xxRd>O>O>QRRRr:c v\V4\V,pV'd V: RV: 2pVPV4#)z Return a formatted month name. r)rrr)r6theyearthemonthrwithyearrs&&&&& r7formatmonthnameTextCalendar.formatmonthnamevs1 ! x  g&Axxr:c @\VPWW44RR7R#)z Print a month's calendar. rarN)r formatmonth)r6rrwls&&&&&r7rTextCalendar.prmonths dw!7R@r:c \^V4p\^V4pVPW^V^,,^, 4pVP4pVRV,, pWPPV4P4, pVRV,, pVP W4F8pWPP Wc4P4, pVRV,, pK: V#)0 Return a month's calendar string (multi-line).  )maxrrstriprrr)r6rrrrrweeks&&&&& r7rTextCalendar.formatmonths 1I 1I  AQK!O D HHJ TAX  " "1 % , , .. TAX ++G>D )002 2A MA?r:c  aaaa\^V4p\^V4p\^V4pV^,^,^, o.pVPpV!\S4PSV,WE^, ,,4P 44V!RV,4SP V4o\ SPSV44EFpwr\WX,^,\WX^,,^,^ 44p V!RV,4VVV3RlV 4p V!\V SV4P 44V!RV,4V3RlV 4p V!\V SV4P 44V!RV,4\RV 44p \V 4Fp.pV FNpV\V48dVPR4K&VPSPVV,V44KP V!\VSV4P 44V!RV,4K EKs RPV4#)3 Returns a year's calendar as a multi-line string. rc3L<"TFpSPSVSR4xK R#5iFNrrkcolwidthr6rs& r7r*TextCalendar.formatyear..,&$))'1hFF$rc3(<"TFpSxK R#5ir4r[rr*headers& r7rr,.v!vvc38"TFp\V4xK R#5ir4rrcals& r7rr,1ScSSra)r appendreprrr!rrrrzmin formatstringrrr)r6rrrcrvarprowrrheadersheightjweeksr6r+r0sff&&&& @@r7 formatyearTextCalendar.formatyears 1I 1I 1IEQ;?  HH $w-  xz!qS'1 2 9 9 ;< $q& &&q)!$"8"8!"DEHQ13q5#a1gai"45F d1fI&$&E l5(A.557 8 d1fI.v.G l7Ha0779 : d1fI1S11F6]CCH} R( T__SVQ%?@  ,uh299;<$( #F.wwqzr:c  B\VPWW4V4RR7R#)zPrint a year's calendar.rarN)rrE)r6rrrr=rs&&&&&&r7pryearTextCalendar.pryears doog!2;r:r[NTrrrr)rrrNr)r@rArBrCrrrrr rrrrrErHrDrErFs@r7rrJsE 7 M 0S A  $L< z%d)cssclass_noday cssclasses)r6rr s&&&r7rHTMLCalendar.formatdays5 !8/$2E2EE E+tw/G.MM Mr:c LaRPV3RlV44pRV,#)z( Return a complete week as a table row. rac3J<"TFwrSPW4xK R#5ir4r)rrrr6s& r7r*HTMLCalendar.formatweek..sAgqDNN1))s # %sr)r6rrsf& r7rHTMLCalendar.formatweeks$ GGAA Aq  r:c PRVPV,: R\V,: R2#)z* Return a weekday name as a table header. z z)cssclasses_weekday_headr)r6rs&&r7r HTMLCalendar.formatweekdays'  ( ( - -x}}> >r:c haRPV3RlSP444pRV,#)z, Return a header for a week as a table row. rac3F<"TFpSPV4xK R#5ir4r )rrpr6s& r7r0HTMLCalendar.formatweekheader..s!G3FaD&&q))3Fs!rXr)r6rsf r7rHTMLCalendar.formatweekheaders- GGG43D3D3FG Gq  r:c \V4V'd\V,: RV: 2pMR\V,,pRVP: RV: R2#)z% Return a month name as a table row. rz%szrrra)r9cssclass_monthrrrrr)r6rrrr>r?r"s&&&& r7rHTMLCalendar.formatmonths  HH I    ! " $ $  w8  DE $ $   !" $++G>D dood# $ dG? *  $wwqzr:c  .pVPp\V^4pV!RVP,4V!R4V!RW PV3,4\ \ \ ^ ,V4Fap\ V\ WR,^ 44pV!R4VF,pV!R4V!VPWRR74V!R4K. V!R 4Kc V!R 4R PV4#) z/ Return a formatted year as a table of tables. rfrz,%szzFrgzzrhra) r9r  cssclass_yearcssclass_year_headrzrr;rr)r6rrr>r?rprrs&&& r7rEHTMLCalendar.formatyears  HHE1  I      $ 8 **G<5 5 6w E2A1c!'2./F fI& $""7">?'  gJ3 * wwqzr:Nc Vf\P!4p.pVPpV!RV,4V!R4V!R4V!R4V!RV,4VeV!RV,4V!RV,4V!R4V!R 4V!VPW44V!R 4V!R 4R P V4P VR 4#)z2 Return a formatted year as a complete HTML page. z$ zn z z zC z4 zCalendar for %d z z z z raxmlcharrefreplace)sysgetdefaultencodingr9rErencode)r6rrcssencodingr>r?s&&&&& r7formatyearpageHTMLCalendar.formatyearpage3s  --/H  HH 1H <= {| *  *  PS[ [\ ? EK L ,w 67 + *  $//' )* + +wwqz  +>??r:r[)montuewedthufrisatsunrJr)r calendar.cssN)r@rArBrCrrSr\rRrcrirmrlrrr rrrrErvrDrErFs@r7rrso CJ)N"N MN!>! )(0@@r:c2a]tRtRtoRtRtRtRtVtR#)different_localeiKc WnRVnR#r4locale oldlocale)r6rs&&r7r8different_locale.__init__Ls r:c\P!\PR4Vn\P!\PVP4R#r4)_locale setlocaleLC_TIMErrr<s&r7 __enter__different_locale.__enter__Ps2 **7??DA'//4;;7r:cd\P!\PVP4R#r4)rrrr)r6argss&*r7__exit__different_locale.__exit__Ts'//4>>:r:rN) r@rArBrCr8rrrDrErFs@r7rrKs8;;r:rc \P!\PR4pVR8XdD\R4;_uu_4\P!\PR4pRRR4V#V# +'giT#;i)NCra)rrrrrs r7_get_default_localerXsb   w 5F } b ! !&&w=F" M6M " ! Ms &A22 B cPaa]tRtRtoRtRRltV3RltRV3RlltRtVt V;t #) rib| This class can be passed a locale name in the constructor and will return month and weekday names in the specified locale. cX\PW4Vf \4pW nR#r4)rr8rrr6rrs&&&r7r8LocaleTextCalendar.__init__h"d1 >(*F r:c<\VP4;_uu_4\SV` W4uuRRR4# +'giR#;ir4rrsuperr )r6rr __class__s&&&r7r  LocaleTextCalendar.formatweekdayns. dkk * *7(4+ * * * 9 A c<\VP4;_uu_4\SV` WW44uuRRR4# +'giR#;ir4rrrr)r6rrrrrs&&&&&r7r"LocaleTextCalendar.formatmonthnamers0 dkk * *7*7eN+ * * * : A rrNrJ r@rArBrCrr8r rrDrE __classcell__rrGs@@r7rrbs   5OOr:cPaa]tRtRtoRtRRltV3RltRV3RlltRtVt V;t #) riwrcX\PW4Vf \4pW nR#r4)rr8rrrs&&&r7r8LocaleHTMLCalendar.__init__|rr:c<\VP4;_uu_4\SV` V4uuRRR4# +'giR#;ir4r)r6rrs&&r7r  LocaleHTMLCalendar.formatweekdays. dkk * *7(-+ * * *rc<\VP4;_uu_4\SV` WV4uuRRR4# +'giR#;ir4r)r6rrrrs&&&&r7r"LocaleHTMLCalendar.formatmonthnames0 dkk * *7*7hG+ * * *rrrrJrrs@@r7rrws  .HHr:cXaa]tRtRtoR V3RlltRR/RltR RltR RltRtVt V;t #) _CLIDemoCalendariNc4<\SV`!V/VBWnR#r4rr8 highlight_dayr6rrkwargsrs&&*,r7r8_CLIDemoCalendar.__init__ $)&)*r:rc aaaaaS'd5^RIHpV!4pVP VP 2oVPoMR;ooRP VVVVV3RlV44#)r) get_colorsrarc3<"TF8wrVS8XdS SPWS4 S 2MSPWS4xK: R#5ir4r)rrr highlightrresetr6rs& r7r._CLIDemoCalendar.formatweek..sT # %+dnnQE:;E7C^^A512#sAA) _colorizerBLACKBACKGROUND_YELLOWRESETr)r6rrrransirrsf&fd @@r7r_CLIDemoCalendar.formatweeksc  ,?IJJE " "Ixx  #    r:c VP'dNVPPV8Xd3VPPV8XdVPPpMRp\ ^V4p\ ^V4pVP W^V^,,^, 4pVP 4pVRV,, pW`PV4P 4, pVRV,, pVPW4F:pW`PWsVR7P 4, pVRV,, pK< V#)rNrr) rrrrr rr!rrr)r6rrrrrrr"s&&&&& r7r_CLIDemoCalendar.formatmonths     ""''72""((H4 ..22M M 1I 1I  AQK!O D HHJ TAX  " "1 % , , .. TAX ++G>D  FMMO OA MA?r:c  aaaa\^V4p\^V4p\^V4pV^,^,^, o.pVPpV!\S4PSV,WE^, ,,4P 44V!RV,4SP V4o\ SPSV44EF wr\WX,^,\WX^,,^,^ 44p V!RV,4VVV3RlV 4p V!\V SV4P 44V!RV,4V3RlV 4p V!\V SV4P 44V!RV,4SP'd]SPPS8XdBSPPV 9d'V PSPP4p MRp \RV 44p\V4Fp.p\ V 4FrwppV\V48dVPR4K)VV 8XdSPP MRpVPSP#VV,VVR74Kt V!\VSV4P 44V!RV,4K EK RP%V4#)r%rc3L<"TFpSPSVSR4xK R#5ir'r(r)s& r7r._CLIDemoCalendar.formatyear..r-rc3(<"TFpSxK R#5ir4r[r/s& r7rrr1r2Nc38"TFp\V4xK R#5ir4r4r5s& r7rrr7r8rar)r r9r:rr!rrrrzr;r<rrrindexrrrr)r6rrrr=rr>r?rpr@rrrA month_posrBrCrDr*r6rr+r0sff&&&& @@r7rE_CLIDemoCalendar.formatyears\ 1I 1I 1IEQ;?  HH $w-  xz!qS'1 2 9 9 ;< $q& &&q)!$"8"8!"DEHQ13q5#a1gai"45F d1fI&$&E l5(A.557 8 d1fI.v.G l7Ha0779 : d1fI"""&&++w6&&,,6"LL););)A)AB  1S11F6]'nFAsCH} R(789nD..22$  OOCFASOI-,uh299;<$( #/FJwwqzr:rr4rKrL) r@rArBrCr8rrrErDrErrs@@r7rrs%+ $ ,022r:rc6aa]tRtRtoRV3RlltRtVtV;t#)_CLIDemoLocaleCalendaric4<\SV`!V/VBWnR#r4rrs&&*,r7r8_CLIDemoLocaleCalendar.__init__rr:rr4)r@rArBrCr8rDrErrs@@r7rrs++r:rcd\Tu;8:d \8:gM\V4hV\nR#r4)r+r1rr=rrs&r7rrs! \ +V +!,//!ANr:c0\\WV44R#)z1Prints multi-column formatting for year calendarsN)rr<colsr+spacings&&&r7rgrgs ,tw /0r:cLaVR,pVPV3RlV44#)zEReturns a string formatted from n strings, centered within n columns.rc3D<"TFqPS4xK R#5ir4r)rr=r+s& r7rformatstring..s9Dq**Ds rrs&f&r7r<r<s! sNG <<9D9 99r:icVR,wrr4rV\P!W^4P4\, V,^, pV^,V,pV^<,V,p V ^<,V,p V #)zBUnrelated but handy function to calculate Unix timestamp from GMT.:NrNN)r{r| toordinal _EPOCH_ORD) tuplerrrhourminutesecondrhoursminutessecondss & r7rr!sh-22Y*DF ==a ( 2 2 4z AC G! KD GdNEBhGbj6!G Nr:cp ^RIpVPRR7pVPR4pVPR4pVPRR\^RR 7VPR R \^R R 7VPR R\^RR 7VPRR\^RR 7VPRRRRR7VPRRRRR7VPRRRRR7VPRRR R6R"R#7VPR$R%\^R&R 7VPR'R(\R)R*7VPR+R(\R,R*7VP V4pVP 'd:VP'g(VPR-4\P!^4VP VP3p\PP4pVPR!8XEd5VP'd(VPR.4\P!^4VP 'd\!VR/7pM \#4pVP%VP&4VPp V f\P(!4p \+WP,R07p \P.P0P2p VP4f&V !VP6!VP43/V B4R#V !VP6!VP43/V B4R#VP 'd\9WvR17pM \;VR27pVP%VP&4\+VP<VP>R37p VPf VP@V R4&VPBV R5&M\EVP4VP4fVPF!VP43/V Bp MTVPfVPF!VP43/V Bp M(VPH!VP4VP3/V Bp \P.P2p VP'd@V PKVP4p \P.P0P2p V !V 4R#)7rNT)colorztext only argumentszhtml only argumentsz-wz--widthz width of date column (default 2))typedefaulthelpz-lz--linesz)number of lines for each week (default 1)z-sz --spacingz"spacing between months (default 6)z-mz--monthszmonths per row (default 3)z-cz--cssrzCSS to use for page)rrz-Lz--localez)locale to use for month and weekday namesz-ez --encodingzencoding to use for outputz-tz--typetexthtmlzoutput type (text or html))rchoicesrz-fz--first-weekdayzAweekday (0 is Monday, 6 is Sunday) to start each week (default 0)r?z year number)nargsrrrzmonth number (1-12, text only)z/if --locale is specified --encoding is requiredzincorrect number of argumentsr)rurt)rrr)rrr=r)rr)&argparseArgumentParseradd_argument_group add_argumentint parse_argsrruerrorrqexitr{r|todayrrrrr first_weekdayrrdictrtstdoutbufferwriterrvrrrlinesrrrrErrs) rrparser textgroup htmlgroupoptionsrrr6ruoptdictrresults & r7mainr+s  $ $4 $ 0F))*?@I))*?@I  i ! /  i ! 8  k ! 1  j ! )  g "   j 8   l )   h )     ! P      - %G~~~g... FG  ^^W-- -F MM   !E||v === LL8 9 HHQK >>>$F3C.C G112##  --/Hkk: !!'' <<  #$$UZZ;7; < #$$W\\=W= > >>>(uLC"7C G112'--8 == "??GCL">>GCL GMM * << ^^EJJ:':F ]] "^^GLLrs7 % !  ! 5 !7H !  !# !%/ !1: !H !  !& !(6 !8L ! ! ". !  !  ! % ! '1 ! 3: !  ! !" !$* !  !! !#, !.8 !:D !  ! !!, !.8 !:B !  !  !  @ J@X*X K  G     '  <&( $  $ d # d # B G:'?EJvEJPu<8u