ó
    F\hVg ã            	       ó†  • S r SrSSKrSSKrSSKrSSKJr	  S r
S rSrSrS	r/ S
QrS/rSr\SS  H  r\R'                  \5        \\-  rM     CCS rS rS rS rS r\" S5      r\" S5      r\" S5      r\S:X  d   e\S\-  S-   :X  d   e\S\-  S-
  :X  d   eS r/ SQr/ SQrS rSGS jr SHS jr!S r"S r#S r$S  r%/ S!Qr&S" r'S# r(S$ r)S% r*S& r+S' r,S( r-S) r.S* r/ " S+ S,5      r0\0" S-5      \0l1        \0" S.S/S0S0S1S29\0l2        \0" SS39\0l3         " S4 S55      r4\4r5\4" SSS5      \4l1        \4" SS6S75      \4l2        \0" SS89\4l3         " S9 S:5      r6 " S; S<\75      r8\8r9C8\6r: " S= S>5      r\r;\" SSS5      \l1        \" S/S0S0S15      \l2        \0" SS39\l3         " S? S@\45      r<\<" SSS5      \<l1        \<" SS6S7S/S0S0S15      \<l2        \0" SS39\<l3        SA r= " SB SC\65      r>\>R                  \0" S5      5      =r@\>lA        \>R                  \0" S/S0SD9* 5      \>l1        \>R                  \0" S/S0SD95      \>l2        \<" SESS\>R‚                  SF9rBg)Iz†Concrete date/time and related types.

See http://www.iana.org/time-zones/repository/tz-link.html for
time zone and DST data sources.
)	ÚdateÚdatetimeÚtimeÚ	timedeltaÚtimezoneÚtzinfoÚMINYEARÚMAXYEARÚUTCé    N)Úindexc                 ó"   • X:X  a  S$ X:”  a  S$ S$ )Nr   é   éÿÿÿÿ© )ÚxÚys     Ú"/usr/lib/python3.13/_pydatetime.pyÚ_cmpr      s   € Ø“ˆ1Ð. £˜AÐ.¨BÐ.ó    c                 ó@   • U R                   R                  nUS:X  a  gU$ )NÚ_pydatetimer   )Ú	__class__Ú
__module__)ÚselfÚmodule_names     r   Ú_get_class_moduler      s"   € Ø—.‘.×+Ñ+€KØ�mÓ#ØàÐr   r   i'  iÛ¹7 )r   é   é   r   é   r   r   r   r   r   r   r   r   r   c                 óN   • U S-  S:H  =(       a    U S-  S:g  =(       d    U S-  S:H  $ )zyear -> 1 if leap year, else 0.é   r   éd   é�  r   )Úyears    r   Ú_is_leapr%   1   s*   € à�!‰8�q‰=×A˜d S™j¨A™o×@°¸±¸q±ÐAr   c                 ó:   • U S-
  nUS-  US-  -   US-  -
  US-  -   $ )z2year -> number of days before January 1st of year.r   ém  r!   r"   r#   r   )r$   r   s     r   Ú_days_before_yearr(   5   s/   € àˆq‰€AØˆS‰5�1�a‘4‰<˜!˜S™&Ñ  1 c¡6Ñ)Ð)r   c                 óz   • SUs=::  a  S::  d   U5       e   U5       eUS:X  a  [        U 5      (       a  g[        U   $ )z9year, month -> number of days in that month in that year.r   é   é   é   )r%   Ú_DAYS_IN_MONTH©r$   Úmonths     r   Ú_days_in_monthr0   :   sB   € à�Õ˜ÓÐ"˜UÓ"ÑÐ"˜UÓ"ÐØ�ƒz”h˜t—n‘nØÜ˜%Ñ Ð r   c                 ó|   • SUs=::  a  S::  d   S5       e   S5       e[         U   US:„  =(       a    [        U 5      -   $ )zCyear, month -> number of days in year preceding first day of month.r   r*   úmonth must be in 1..12r+   )Ú_DAYS_BEFORE_MONTHr%   r.   s     r   Ú_days_before_monthr4   A   sD   € à�Õ˜ÓÐ5Ð5Ó5ÑÐ5Ð5Ó5ÐÜ˜eÑ$¨°©	×(D´h¸t³nÑEÐEr   c                 ó¶   • SUs=::  a  S::  d   S5       e   S5       e[        X5      nSUs=::  a  U::  d  O   SU-  5       e[        U 5      [        X5      -   U-   $ )z>year, month, day -> ordinal, considering 01-Jan-0001 as day 1.r   r*   r2   úday must be in 1..%d)r0   r(   r4   ©r$   r/   ÚdayÚdims       r   Ú_ymd2ordr:   F   sn   € à�Õ˜ÓÐ5Ð5Ó5ÑÐ5Ð5Ó5ÐÜ
˜Ó
%€CØ��?�s�?Ð:Ð3°cÑ9Ó:ˆ?Ü˜dÓ#Ü˜tÓ+ñ,àñð r   i‘  ée   é   iµ  r!   é   c                 ó.  • U S-  n [        U [        5      u  pUS-  S-   n[        U [        5      u  p0[        U [        5      u  p@[        U S5      u  pPX#S-  US-  -   U-   -  nUS:X  d  US:X  a  U S:X  d   eUS-
  SS4$ US	:H  =(       a    US
:g  =(       d    US	:H  nU[	        U5      :X  d   eU S-   S-	  n[
        U   US:„  =(       a    U-   nX€:”  a   US-  nU[        U   US:H  =(       a    U-   -  nX-  n SU s=::  a  [        X'5      :  d   e   eX'U S-   4$ )z@ordinal -> (year, month, day), considering 01-Jan-0001 as day 1.r   r#   r'   r"   r!   r   r*   r   é   é   é2   r<   r+   )ÚdivmodÚ_DI400YÚ_DI100YÚ_DI4Yr%   r3   r-   r0   )	ÚnÚn400r$   Ún100Ún4Ún1Úleapyearr/   Ú	precedings	            r   Ú_ord2ymdrM   _   sN  € ð. ˆ�F€AÜ�QœÓ �G€DØ�#‰:˜‰>€Dô �QœÓ �G€Dô �1”eÓ�E€Bô �1�c‹N�E€Bà�3‰J˜˜a™Ñ "Ñ$Ñ$€DØ	ˆQƒw�$˜!“)Ø�A‹vˆˆvØ�A‰v�r˜2ˆ~Ðð �Q‰w×2˜B "™H×1¨°©	€HØ”x “~Ó%Ð%Ð%Ø�‰V˜‰M€EÜ" 5Ñ)¨U°Q©Y×-C¸8ÑD€IØƒ}Ø�‰
ˆØ”^ EÑ*¨e°q©j×.E¸XÑFÑFˆ	Ø�N€AØ�Õ/”N 4Ó/Ó/Ð/Ñ/Ð/Ð/ð ˜˜!™ÐÐr   )NÚJanÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDec)NÚMonÚTueÚWedÚThuÚFriÚSatÚSunc                 óx   • [        XU5      S-   S-  n[        X5      U-   n[        R                  " XX#XEXxU4	5      $ )Né   é   )r:   r4   Ú_timeÚstruct_time)	r   ÚmÚdÚhhÚmmÚssÚdstflagÚwdayÚdnums	            r   Ú_build_struct_timern   £   sC   € Ü�Q˜1Ó Ñ! QÑ&€DÜ˜aÓ# aÑ'€DÜ×Ò˜a A¨2°4¸wÐGÓHÐHr   c                 ó¬   • SSSSSS.nUS:X  a  U(       a  SOS	nOUS
:X  a  US-  n XT   nUR                  XX#5      $ ! [         a    [        S5      ef = f)Nz{:02d}z{:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})ÚhoursÚminutesÚsecondsÚmillisecondsÚmicrosecondsÚautort   rr   rs   éè  zUnknown timespec value)ÚformatÚKeyErrorÚ
ValueError)rh   ri   rj   ÚusÚtimespecÚspecsÚfmts          r   Ú_format_timer~   ¨   sx   € àØ"Ø)Ø5Ø5ñ€Eð �6Óæ%'‘>¨Y‰Ø	�^Ó	#Ø
ˆt‰ˆð*Ø‰oˆð �z‰z˜" "Ó)Ð)øô ó 3ÜÐ1Ó2Ð2ð3ús	   §= ½Ac                 óD  • SnU bš  U R                   S:  a  SnU * n OSn[        U [        SS95      u  pE[        U[        SS95      u  pVUSX4X4-  -  nU(       d  UR                  (       a6  US	XR                  4-  -  nUR                  (       a  US
UR                  -  -  nU$ )NÚ r   Ú-Ú+r   ©rp   ©rq   z%s%02d%s%02dz%s%02dú.%06d)ÚdaysrB   r   rt   rr   )ÚoffÚsepÚsÚsignrh   ri   rj   s          r   Ú_format_offsetr‹   ½   s    € Ø
€AØ
�Ø�8‰8�a‹<ØˆDØ�$‰CàˆDÜ˜œY¨QÑ/Ó0‰ˆÜ˜œI¨aÑ0Ó1‰ˆØ	ˆ^˜t¨Ð1Ñ1Ñ1ˆÞ�——Ø�˜S§*¡*Ð-Ñ-Ñ-ˆAà��Ø�W˜rŸ™Ñ.Ñ.�Ø€Hr   c                 óÆ  • S nS nS nS n/ nUR                   nS[        U5      p©Xš:  Ga“  X   nU	S-  n	US:X  Gas  Xš:  Gad  X   nU	S-  n	US:X  a&  Uc  S[        U SS5      -  nUR                  U5        GO@US:X  aI  Uc,  [        U S5      (       a  [	        U R                  5       S	S
9nOS	nSU;  d   eUR                  U5        OñUS:X  av  Xš:  ap  X   nU	S-  n	US:X  aI  Uc,  [        U S5      (       a  [	        U R                  5       SS
9nOS	nSU;  d   eUR                  U5        OŽU" S5        U" U5        U" U5        OuUS:X  aM  Uc8  S	n[        U S5      (       a%  U R                  5       nUb  UR                  SS5      nUR                  U5        O"U" S5        U" U5        OU" S5        OU" U5        Xš:  a  GM“  S	R                  U5      n[        R                  " Xr5      $ )Nr   r   Ú%Úfz%06dÚmicrosecondÚzÚ	utcoffsetr€   ©rˆ   Ú:ÚZÚtznamez%%)ÚappendÚlenÚgetattrÚhasattrr‹   r‘   r•   ÚreplaceÚjoinrd   Ústrftime)Úobjectrw   Ú	timetupleÚfreplaceÚzreplaceÚcolonzreplaceÚZreplaceÚ	newformatÚpushÚirF   ÚchÚch2r‰   s                 r   Ú_wrap_strftimer¨   Ð   sý  € à€HØ€HØ€MØ€Hð €IØ×Ñ€DØŒc�&‹k€qØ
Œ%Ø‰YˆØ	ˆQ‰ˆØ�Œ9ØŒuØ‘Y�Ø�Q‘�Ø˜“9ØÑ'Ø#)¬G°FØ4AÀ1ó-Fñ $F˜à×$Ñ$ XÖ.Ø˜3“YØÑ'Ü" 6¨;×7Ñ7Ü'5°f×6FÑ6FÓ6HÈbÑ'Q™Hà')˜HØ hÓ.Ð.Ð.Ø×$Ñ$ XÕ.Ø˜3“YØ“uØ$™i˜Ø˜Q™˜Ø #›:Ø,Ñ4Ü#*¨6°;×#?Ñ#?Ü4BÀ6×CSÑCSÓCUÐ[^Ñ4_¡Mà46 MØ#&¨mÓ#;Ð;Ð#;Ø%×,Ñ,¨]Õ;á  œIÙ  œHÙ  œIøØ˜3“YØÑ'Ø#%˜Ü" 6¨8×4Ñ4Ø &§¡£˜AØ ™}à+,¯9©9°S¸$Ó+? Ø×$Ñ$ XÕ.á˜”IÙ˜•Há�S•	á�ŒHðg Ž%ðh —‘˜	Ó"€IÜ�>Š>˜)Ó/Ð/r   c                 ó   • U S;   $ )NÚ
0123456789r   )Úcs    r   Ú_is_ascii_digitr¬     s   € Ø�ÑÐr   c                 ó„  • [        U 5      nUS:X  a  gUS:”  d   eSnSnU S   U:X  aW  U S   U:X  aM  US:  a  [        S5      eUS:”  a5  U S   U:X  a,  US:X  a  [        S5      eUS	:”  a  [        U S	   5      (       a  gg	gg	U S   U:X  a9  SnXA:  a  [        X   5      (       d  OUS
-  nXA:  a  M  US:  a  U$ US-  S:X  a  ggg)Nrc   r�   ÚWr!   r<   é   zInvalid ISO stringé	   é
   r   r+   r   )r—   ry   r¬   )ÚdtstrÚ	len_dtstrÚdate_separatorÚweek_indicatorÚidxs        r   Ú"_find_isoformat_datetime_separatorr·     sü   € ä�E“
€IØ�Aƒ~Øà�q‹=Ðˆ=Ø€NØ€NàˆQ�x�>Ó!Ø�‰8�~Ó%Ø˜1‹}Ü Ð!5Ó6Ð6Ø˜1‹}  q¡¨^Ó!;Ø “>Ü$Ð%9Ó:Ð:Ø˜r“>¤o°e¸B±i×&@Ñ&@ð Øð ð à�‰8�~Ó%àˆCØ“/Ü& u¡z×2Ñ2ØØ�q‘�ð •/ð
 �Q‹wØ�
à�Q‰w˜!‹|ààð r   c                 óÖ  • [        U 5      S;   d   e[        U SS 5      nU S   S:H  nSU-   nXUS-    S:X  am  US-  n[        XUS-    5      nUS-  nSn[        U 5      U:”  a-  XUS-    S:H  U:w  a  [        S5      eX2-  n[        XUS-    5      n[        [	        XU5      5      $ [        XUS-    5      nUS-  nXUS-    S:H  U:w  a  [        S5      eX2-  n[        XUS-    5      nXU/$ )	N©rc   r¯   r±   r   r!   r�   r   r®   r+   z"Inconsistent use of dash separator)r—   Úintry   ÚlistÚ_isoweek_to_gregorian)r²   r$   Úhas_sepÚposÚweeknoÚdaynor/   r8   s           r   Ú_parse_isoformat_daterÁ   O  s4  € ô ˆu‹:˜Ó#Ð#Ð#Üˆu�Q�qˆz‹?€DØ�A‰h˜#‰o€Gà
ˆg‰+€CØ��q‘Ð˜SÓ àˆq‰ˆÜ�U˜s Q™wÐ'Ó(ˆØˆq‰ˆàˆÜˆu‹:˜ÓØ˜# ™'Ð" cÑ)¨gÓ5Ü Ð!EÓFÐFà‰NˆCä˜ #¨¡'Ð*Ó+ˆEäÔ)¨$¸Ó>Ó?Ð?ä�E˜c A™gÐ&Ó'ˆØˆq‰ˆØ�c˜A‘gÐ #Ñ%¨'Ó1ÜÐAÓBÐBà‰ˆÜ�%˜C !™GÐ$Ó%ˆà˜SÐ!Ð!r   )i † i'  rv   r"   r±   c                 ó.  • [        U 5      n/ SQnSn[        SS5       Hm  nX-
  S:  a  [        S5      e[        XUS-    5      X$'   US-  nXUS-    nUS:X  a  US:H  nU(       a  US:¼  a    O#W(       a  US:w  a  [        SU-  5      eX6-  nMo     X1:  a�  X   S	;  a  [        S
5      eUS-  n[	        [        [        XS  5      5      (       d  [        S5      eX-
  nUS:¼  a  SnOUn[        XX8-    5      US'   US:  a  US==   [        US-
     -  ss'   U$ )N)r   r   r   r   r   r?   r+   zIncomplete time componentr   r“   zInvalid time separator: %cz.,zInvalid microsecond componentzNon-digit values in fractionrb   )r—   Úrangery   rº   ÚallÚmapr¬   Ú_FRACTION_CORRECTION)	ÚtstrÚlen_strÚ
time_compsr¾   ÚcompÚ	next_charr½   Úlen_remainderÚto_parses	            r   Ú_parse_hh_mm_ss_ffrÎ   v  s@  € ä�$‹i€Gâ€JØ
€CÜ�a˜–ˆØ‰M˜QÓÜÐ8Ó9Ð9ä˜t¨¨A©˜Ó/ˆ
Ñàˆq‰ˆØ˜S ™U�Oˆ	à�1‹9Ø 3Ñ&ˆGæ˜D A›IÙæ�y CÓ'ÜÐ9¸IÑEÓFÐFà‰Šñ% ð( ƒ}Ø‰9˜DÓ ÜÐ<Ó=Ð=à�1‰HˆCÜ”sœ?¨D°¨JÓ7×8Ñ8Ü Ð!?Ó@Ð@à#™MˆMà Ó!Ø‘à(�ä ¨#©,Ð 8Ó9ˆJ�q‰MØ˜!‹|Ø˜1“Ô!5°h¸q±jÑ!AÑA“àÐr   c                 ó‚  • [        U 5      nUS:  a  [        S5      eU R                  S5      S-   =(       d/    U R                  S5      S-   =(       d    U R                  S5      S-   nUS:”  a  U S US-
   OU n[        U5      nS nX!:X  a  U S   S:X  a  [        R
                  nO‹US:”  a…  XS  n[        U5      S	;   a  [        S
5      e[        U5      n[        S U 5       5      (       a  [        R
                  nO4XS-
     S:X  a  SOSn[        US   US   US   US   S9n	[	        X‰-  5      nUR                  U5        U$ )Nr+   zIsoformat time too shortr�   r   r‚   r”   r   r   )r   r   r?   zMalformed time zone stringc              3   ó*   #   • U  H	  oS :H  v •  M     g7f)r   Nr   )Ú.0r   s     r   Ú	<genexpr>Ú(_parse_isoformat_time.<locals>.<genexpr>Å  s   é € Ð(šx˜!�AŽvšxùs   ‚r?   ©rp   rq   rr   rt   )	r—   ry   ÚfindrÎ   r   ÚutcrÄ   r   r–   )
rÇ   rÈ   Útz_posÚtimestrrÉ   ÚtziÚtzstrÚtz_compsÚtzsignÚtds
             r   Ú_parse_isoformat_timerÞ   ¥  s>  € ä�$‹i€GØ�ƒ{ÜÐ3Ó4Ð4ð �i‰i˜‹n˜qÑ ×L D§I¡I¨c£N°QÑ$6×L¸$¿)¹)ÀC».È1Ñ:L€FØ!'¨!£ˆd�9�F˜1‘H‰o°€Gä# GÓ,€Jà
€CØÓ˜T "™X¨›_Ü�l‰l‰Ø	�!‹Ø�W�ˆô ˆu‹:˜Ó"ÜÐ9Ó:Ð:ä% eÓ,ˆäÑ(™xÓ(×(Ñ(Ü—,‘,‰Cà¨¡
Ñ+¨sÓ2‘R¸ˆFä ¨!¡°h¸q±kØ#+¨A¡;¸XÀa¹[ñJˆBô ˜6™;Ó'ˆCà×Ñ�cÔàÐr   c                 óŒ  • [         U s=::  a
  [        ::  d  O  [        SU  35      eSUs=:  a  S:  dM  O  SnUS:X  a.  [        U SS5      S-  nUS:X  d  US:X  a  [	        U 5      (       a  S	nU(       a  [        S
U 35      eSUs=:  a  S:  d  O  [        SU S35      eUS-
  S-  US-
  -   n[        U 5      nXe-   n[        U5      $ )NzYear is out of range: r   é5   Tr   rc   r!   r?   FzInvalid week: r¯   zInvalid weekday: z (range is [1, 7]))r   r	   ry   r:   r%   Ú_isoweek1mondayrM   )r$   Úweekr8   Úout_of_rangeÚfirst_weekdayÚ
day_offsetÚday_1Úord_days           r   r¼   r¼   Ô  sØ   € ä�dÕ%œgÕ%ÜÐ1°$°Ð8Ó9Ð9àˆt�=�b�=Øˆà�2‹:ô % T¨1¨aÓ0°1Ñ4ˆMØ Ó" }¸Ó'9Ü'/°§~¡~Ø$�æÜ˜~¨d¨VÐ4Ó5Ð5àˆs�;�Q�;ÜÐ,¨S¨EÐ1CÐDÓEÐEð ˜‘(˜a‘ 3¨¡7Ñ+€Jô ˜DÓ!€EØÑ €Gä�GÓÐr   c                 ód   • U b-  [        U [        5      (       d  [        S[        U 5      -  5      eg g )Nz4tzinfo.tzname() must return None or string, not '%s')Ú
isinstanceÚstrÚ	TypeErrorÚtype)Únames    r   Ú_check_tznamerî   õ  s:   € ØÑ¤
¨4´× 5Ñ 5Üð #Ü%)¨$£Zñ0ó 1ð 	1ð !6Ðr   c                 óê   • U S;   d   eUc  g [        U[        5      (       d  [        SU < S[        U5      < S35      e[        S5      * Us=:  a  [        S5      :  d  O  [	        U < SU< S35      eg )N)r‘   Údstztzinfo.z'() must return None or timedelta, not 'Ú'r   z()=zG, must be strictly between -timedelta(hours=24) and timedelta(hours=24))ré   r   rë   rì   ry   )rí   Úoffsets     r   Ú_check_utc_offsetró      sw   € ØÐ'Ó'Ð'Ð'Ø�~ØÜ�fœi×(Ñ(ÝÛ48¼$¸v¾,ðHó Ið 	Iä�a‹Lˆ=˜6Õ0¤I¨a£LÕ0Üã£ð(ó )ð 	)ð 1r   c                 ó4  • [        U 5      n [        U5      n[        U5      n[        U s=::  a
  [        ::  d  O  [        S[        [        4-  U 5      eSUs=::  a  S::  d  O  [        SU5      e[	        X5      nSUs=::  a  U::  d  O  [        SU-  U5      eXU4$ )Nzyear must be in %d..%dr   r*   r2   r6   )Ú_indexr   r	   ry   r0   r7   s       r   Ú_check_date_fieldsrö     s�   € Ü�$‹<€DÜ�5‹M€EÜ
�‹+€CÜ�dÕ%œgÕ%ÜÐ1´W¼gÐ4FÑFÈÓMÐMØ�Õ˜ÕÜÐ1°5Ó9Ð9Ü
˜Ó
%€CØ��?�s�?ÜÐ/°#Ñ5°sÓ;Ð;Ø˜ÐÐr   c                 ó`  • [        U 5      n [        U5      n[        U5      n[        U5      nSU s=::  a  S::  d  O  [        SU 5      eSUs=::  a  S::  d  O  [        SU5      eSUs=::  a  S::  d  O  [        SU5      eSUs=::  a  S::  d  O  [        SU5      eUS	;  a  [        S
U5      eXX#U4$ )Nr   é   zhour must be in 0..23é;   zminute must be in 0..59zsecond must be in 0..59é?B z microsecond must be in 0..999999)r   r   zfold must be either 0 or 1)rõ   ry   )ÚhourÚminuteÚsecondr�   Úfolds        r   Ú_check_time_fieldsrÿ     s´   € Ü�$‹<€DÜ�F‹^€FÜ�F‹^€FÜ˜Ó%€KØ��?˜�?ÜÐ0°$Ó7Ð7Ø�Õ˜"ÕÜÐ2°FÓ;Ð;Ø�Õ˜"ÕÜÐ2°FÓ;Ð;Ø�Õ%˜vÕ%ÜÐ;¸[ÓIÐIØ�6ÓÜÐ5°tÓ<Ð<Ø˜¨dÐ2Ð2r   c                 óL   • U b!  [        U [        5      (       d  [        S5      eg g )Nz4tzinfo argument must be None or of a tzinfo subclass)ré   r   rë   )Útzs    r   Ú_check_tzinfo_argr  *  s&   € Ø	�~œj¨¬V×4Ñ4ÜÐNÓOÐOð 5€~r   c                 óz   • [        X5      u  p#US-  nUS:”  a  X1:„  OX1:  nU(       d  X1:X  a  US-  S:X  a  US-  nU$ )zŽdivide a by b and round result to the nearest integer

When the ratio is exactly half-way between two integers,
the even integer is returned.
r+   r   r   )rB   )ÚaÚbÚqÚrÚgreater_than_halfs        r   Ú_divide_and_roundr	  .  sK   € ô �!‹<�D€Að ˆ�F€AØ!" Q£˜š¨A©EÐÞ˜A›F q¨1¡u°£zØ	ˆQ‰ˆà€Hr   c                   óø   • \ rS rSrSrSr  S#S jrS rS rS r	\
S 5       r\
S	 5       r\
S
 5       rS r\rS rS rS rS rS rS r\rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S  r%S!r&g")$r   iB  aŠ  Represent the difference between two datetime objects.

Supported operators:

- add, subtract timedelta
- unary plus, minus, abs
- compare to timedelta
- multiply, divide by int

In addition, datetime supports subtraction of two datetime objects
returning a timedelta, and addition or subtraction of a datetime
and a timedelta giving a datetime.

Representation: (days, seconds, microseconds).
)Ú_daysÚ_secondsÚ_microsecondsÚ	_hashcodec                 ó@  • S=n=pšXS-  -  nX%S-  US-  -   -  nX4S-  -  n[        U[        5      (       al  [        R                  " U5      u  p±[        R                  " US-  5      u  pÍU[	        U5      :X  d   e[	        U5      n	U[	        U5      :X  d   e[	        U5      nOSnUn[        U[        5      (       d   e[        U5      S::  d   e[        U[        5      (       d   e[        U	5      S	::  d   e[        U[        5      (       aJ  [        R                  " U5      u  pâU[	        U5      :X  d   e[	        U5      nXì-  n[        U5      S
::  d   eOUn[        U[        5      (       d   e[        U5      S
::  d   e[        U[        5      (       d   e[        US	5      u  pX�-  nU	[	        U5      -  n	[        U	[        5      (       d   e[        U	5      S::  d   eUS-  n[        U5      S:  d   e[        U[        5      (       a2  [        X?-   5      n[        US5      u  p#[        US	5      u  pX�-  nX’-  n	O<[	        U5      n[        US5      u  p#[        US	5      u  pX�-  nX’-  n	[        X?-   5      n[        U	[        5      (       d   e[        U[        5      (       d   e[        U	5      S::  d   e[        U5      S:  d   e[        US5      u  p*X’-  n	[        U	S	5      u  pX�-  n[        U[        5      (       d   e[        U	[        5      (       a  SU	s=::  a  S	:  d   e   e[        U
[        5      (       a  SU
s=::  a  S:  d   e   e[        U5      S:”  a  [        SU-  5      e[        R                  U 5      nUUl        U	Ul        U
Ul        SUl        U$ )Nr   rc   é<   é  rv   g     õ@g        g      ð?é€Q g       @i £ ç    €„.Ag    �@Aé@B i€ô g    °¦GAéÿÉš;z$timedelta # of days is too large: %dr   )ré   ÚfloatÚ_mathÚmodfrº   ÚabsrB   ÚroundÚOverflowErrorr�   Ú__new__r  r  r  r  )Úclsr†   rr   rt   rs   rq   rp   Úweeksrg   r‰   rz   ÚdayfracÚdaysecondsfracÚdaysecondswholeÚsecondsfracÚusdoubler   s                    r   r  Útimedelta.__new__X  sª  € ð ˆˆˆˆAð 	�a‘‰ˆØ˜2‘:  d¡
Ñ*Ñ*ˆØ TÑ)Ñ)ˆô �dœE×"Ñ"Ü!ŸJšJ tÓ,‰MˆGÜ.3¯jªj¸ÀIÑ9NÓ.OÑ+ˆNØ"¤c¨/Ó&:Ó:Ð:Ð:Ü�OÓ$ˆAØœ3˜t›9Ó$Ð$Ð$Ü�D“	‰Aà ˆNØˆAÜ˜.¬%×0Ñ0Ð0Ð0Ü�>Ó" cÓ)Ð)Ð)Ü˜!œS×!Ñ!Ð!Ð!Ü�1‹v˜Ó"Ð"Ð"ô �gœu×%Ñ%Ü#(§:¢:¨gÓ#6Ñ ˆKØœc '›lÓ*Ð*Ð*Ü˜'“lˆGØÑ)ˆKÜ�{Ó# sÓ*Ð*Ñ*à(ˆKä˜+¤u×-Ñ-Ð-Ð-Ü�;Ó 3Ó&Ð&Ð&ä˜'¤3×'Ñ'Ð'Ð'Ü˜w¨Ó0‰ˆØ	‰	ˆØ	ŒS�‹\ÑˆÜ˜!œS×!Ñ!Ð!Ð!Ü�1‹v˜Ó&Ð&Ð&ð  Ñ$ˆÜ�8‹}˜uÓ$Ð$Ð$ô �l¤E×*Ñ*Ü  Ñ!8Ó9ˆLÜ$*¨<¸Ó$AÑ!ˆGÜ" 7¨GÓ4‰MˆDØ‰IˆAØ‰L‰Aä˜|Ó,ˆLÜ$*¨<¸Ó$AÑ!ˆGÜ" 7¨GÓ4‰MˆDØ‰IˆAØ‰LˆAÜ  Ñ!8Ó9ˆLÜ˜!œS×!Ñ!Ð!Ð!Ü˜,¬×,Ñ,Ð,Ð,Ü�1‹v˜Ó&Ð&Ð&Ü�<Ó  5Ó(Ð(Ð(ô ˜\¨7Ó3‰ˆØ	‰ˆÜ˜˜GÓ$‰ˆØ	‰	ˆä˜!œS×!Ñ!Ð!Ð!Ü˜!œS×!Ñ! a¨1Õ&6¨wÓ&6Ð6Ð6Ð&6Ð6Ð6Ü˜"œc×"Ñ" q¨BÕ'8°Ó'8Ð8Ð8Ð'8Ð8Ð8äˆq‹6�IÓÜÐ FÈÑ JÓKÐKä�~‰~˜cÓ"ˆØˆŒ
ØˆŒØˆÔØˆŒØˆr   c                 óÄ  • / nU R                   (       a  UR                  SU R                   -  5        U R                  (       a  UR                  SU R                  -  5        U R                  (       a  UR                  SU R                  -  5        U(       d  UR                  S5        [	        U 5      < SU R
                  R                  < SSR                  U5      < S3$ )	Nzdays=%dz
seconds=%dzmicroseconds=%dÚ0Ú.Ú(ú, Ú))r  r–   r  r  r   r   Ú__qualname__r›   )r   Úargss     r   Ú__repr__Útimedelta.__repr__½  s™   € ØˆØ�:�:Ø�K‰K˜	 D§J¡JÑ.Ô/Ø�=�=Ø�K‰K˜ t§}¡}Ñ4Ô5Ø××Ø�K‰KÐ)¨D×,>Ñ,>Ñ>Ô?ÞØ�K‰K˜ÔÜ/°Ö5Ø"Ÿn™n×9Ô9Ø"Ÿi™i¨žoð/ð 	/r   c                 óþ   • [        U R                  S5      u  p[        US5      u  p1SX1U4-  nU R                  (       a  S nSU" U R                  5      -  U-   nU R                  (       a  USU R                  -  -   nU$ )Nr  z%d:%02d:%02dc                 óF   • U [        U 5      S:g  =(       a    S=(       d    S4$ )Nr   r‰   r€   )r  )rF   s    r   ÚpluralÚ!timedelta.__str__.<locals>.pluralÐ  s   € Øœ#˜a›& A™+×-¨#×3°Ð3Ð3r   z
%d day%s, r…   )rB   r  r  r  )r   ri   rj   rh   r‰   r1  s         r   Ú__str__Útimedelta.__str__Ë  sv   € Ü˜Ÿ™ rÓ*‰ˆÜ˜˜B“‰ˆØ˜b b˜\Ñ)ˆØ�:�:ò4à¡ t§z¡zÓ 2Ñ2°aÑ7ˆAØ××Ø�G˜d×0Ñ0Ñ0Ñ0ˆAØˆr   c                 ó`   • U R                   S-  U R                  -   S-  U R                  -   S-  $ )zTotal seconds in the duration.r  r  )r†   rr   rt   ©r   s    r   Útotal_secondsÚtimedelta.total_seconds×  s7   € à—‘˜UÑ" T§\¡\Ñ1°UÑ:Ø×!Ñ!ñ"Ø%*ñ+ð 	+r   c                 ó   • U R                   $ ©r†   ©r  r6  s    r   r†   Útimedelta.daysÝ  ó   € ð �z‰zÐr   c                 ó   • U R                   $ ©rr   )r  r6  s    r   rr   Útimedelta.secondsâ  s   € ð �}‰}Ðr   c                 ó   • U R                   $ ©rt   )r  r6  s    r   rt   Útimedelta.microsecondsç  s   € ð ×!Ñ!Ð!r   c                 óÜ   • [        U[        5      (       aR  [        U R                  UR                  -   U R                  UR                  -   U R                  UR                  -   5      $ [
        $ ©N©ré   r   r  r  r  ÚNotImplemented©r   Úothers     r   Ú__add__Útimedelta.__add__ì  ó[   € Ü�eœY×'Ñ'ô ˜TŸZ™Z¨%¯+©+Ñ5Ø!Ÿ]™]¨U¯^©^Ñ;Ø!×/Ñ/°%×2EÑ2EÑEóGð Gô Ðr   c                 óÜ   • [        U[        5      (       aR  [        U R                  UR                  -
  U R                  UR                  -
  U R                  UR                  -
  5      $ [
        $ rE  rF  rH  s     r   Ú__sub__Útimedelta.__sub__÷  rL  r   c                 óD   • [        U[        5      (       a  U * U-   $ [        $ rE  )ré   r   rG  rH  s     r   Ú__rsub__Útimedelta.__rsub__   s!   € Ü�eœY×'Ñ'Ø�5˜5‘=Ð ÜÐr   c                 ó^   • [        U R                  * U R                  * U R                  * 5      $ rE  )r   r  r  r  r6  s    r   Ú__neg__Útimedelta.__neg__  s.   € ô ˜$Ÿ*™*˜ØŸ-™-˜Ø×,Ñ,Ð,ó.ð 	.r   c                 ó   • U $ rE  r   r6  s    r   Ú__pos__Útimedelta.__pos__  s   € Øˆr   c                 ó,   • U R                   S:  a  U * $ U $ ©Nr   r;  r6  s    r   Ú__abs__Útimedelta.__abs__  s   € Ø�:‰:˜‹>Ø�5ˆLàˆKr   c                 ó@  • [        U[        5      (       a4  [        U R                  U-  U R                  U-  U R
                  U-  5      $ [        U[        5      (       a;  U R                  5       nUR                  5       u  p4[        SS[        X#-  U5      5      $ [        $ rZ  )ré   rº   r   r  r  r  r  Ú_to_microsecondsÚas_integer_ratior	  rG  ©r   rI  Úusecr  r  s        r   Ú__mul__Útimedelta.__mul__  s�   € Ü�eœS×!Ñ!ô ˜TŸZ™Z¨%Ñ/Ø!Ÿ]™]¨UÑ2Ø!×/Ñ/°%Ñ7ó9ð 9ô �eœU×#Ñ#Ø×(Ñ(Ó*ˆDØ×)Ñ)Ó+‰DˆAÜ˜Q Ô#4°T±X¸qÓ#AÓBÐBÜÐr   c                 óZ   • U R                   S-  U R                  -   S-  U R                  -   $ )Nr  r  ©r  r  r  r6  s    r   r^  Útimedelta._to_microseconds$  s/   € Ø—‘˜wÑ'¨$¯-©-Ñ7¸7ÑBØ×"Ñ"ñ#ð 	$r   c                 óü   • [        U[        [        45      (       d  [        $ U R	                  5       n[        U[        5      (       a  X!R	                  5       -  $ [        U[        5      (       a  [        SSX!-  5      $ g rZ  )ré   rº   r   rG  r^  )r   rI  ra  s      r   Ú__floordiv__Útimedelta.__floordiv__(  sj   € Ü˜%¤#¤yÐ!1×2Ñ2Ü!Ð!Ø×$Ñ$Ó&ˆÜ�eœY×'Ñ'Ø×1Ñ1Ó3Ñ3Ð3Ü�eœS×!Ñ!Ü˜Q  4¡=Ó1Ð1ð "r   c                 ó”  • [        U[        [        [        45      (       d  [        $ U R                  5       n[        U[        5      (       a  X!R                  5       -  $ [        U[        5      (       a  [        SS[        X!5      5      $ [        U[        5      (       a+  UR                  5       u  p4[        SS[        XB-  U5      5      $ g rZ  )ré   rº   r  r   rG  r^  r	  r_  r`  s        r   Ú__truediv__Útimedelta.__truediv__1  s¦   € Ü˜%¤#¤u¬iÐ!8×9Ñ9Ü!Ð!Ø×$Ñ$Ó&ˆÜ�eœY×'Ñ'Ø×0Ñ0Ó2Ñ2Ð2Ü�eœS×!Ñ!Ü˜Q Ô#4°TÓ#AÓBÐBÜ�eœU×#Ñ#Ø×)Ñ)Ó+‰DˆAÜ˜Q Ô#4°Q±X¸qÓ#AÓBÐBð $r   c                 ó”   • [        U[        5      (       a.  U R                  5       UR                  5       -  n[        SSU5      $ [        $ rZ  )ré   r   r^  rG  )r   rI  r  s      r   Ú__mod__Útimedelta.__mod__=  s@   € Ü�eœY×'Ñ'Ø×%Ñ%Ó'¨%×*@Ñ*@Ó*BÑBˆAÜ˜Q  1Ó%Ð%ÜÐr   c                 óª   • [        U[        5      (       a9  [        U R                  5       UR                  5       5      u  p#U[        SSU5      4$ [        $ rZ  )ré   r   rB   r^  rG  )r   rI  r  r  s       r   Ú
__divmod__Útimedelta.__divmod__C  sL   € Ü�eœY×'Ñ'Ü˜$×/Ñ/Ó1Ø×0Ñ0Ó2ó4‰DˆAà”i  1 aÓ(Ð(Ð(ÜÐr   c                 ó`   • [        U[        5      (       a  U R                  U5      S:H  $ [        $ rZ  ©ré   r   r   rG  rH  s     r   Ú__eq__Útimedelta.__eq__L  ó)   € Ü�eœY×'Ñ'Ø—9‘9˜UÓ# qÑ(Ð(ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:*  $ [        $ rZ  rt  rH  s     r   Ú__le__Útimedelta.__le__R  rw  r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:  $ [        $ rZ  rt  rH  s     r   Ú__lt__Útimedelta.__lt__X  ó)   € Ü�eœY×'Ñ'Ø—9‘9˜UÓ# aÑ'Ð'ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:¬  $ [        $ rZ  rt  rH  s     r   Ú__ge__Útimedelta.__ge__^  rw  r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:„  $ [        $ rZ  rt  rH  s     r   Ú__gt__Útimedelta.__gt__d  r~  r   c                 ó€   • [        U[        5      (       d   e[        U R                  5       UR                  5       5      $ rE  )ré   r   r   Ú	_getstaterH  s     r   r   Útimedelta._cmpj  s0   € Ü˜%¤×+Ñ+Ð+Ð+Ü�D—N‘NÓ$ e§o¡oÓ&7Ó8Ð8r   c                 óv   • U R                   S:X  a  [        U R                  5       5      U l         U R                   $ )Nr   ©r  Úhashr†  r6  s    r   Ú__hash__Útimedelta.__hash__n  s+   € Ø�>‰>˜RÓÜ! $§.¡.Ó"2Ó3ˆDŒNØ�~‰~Ðr   c                 óx   • U R                   S:g  =(       d%    U R                  S:g  =(       d    U R                  S:g  $ rZ  re  r6  s    r   Ú__bool__Útimedelta.__bool__s  s6   € Ø—
‘
˜a‘÷ (Ø—‘ Ñ"÷(à×"Ñ" aÑ'ð	)r   c                 óH   • U R                   U R                  U R                  4$ rE  re  r6  s    r   r†  Útimedelta._getstatez  s   € Ø—
‘
˜DŸM™M¨4×+=Ñ+=Ð>Ð>r   c                 ó:   • U R                   U R                  5       4$ rE  ©r   r†  r6  s    r   Ú
__reduce__Útimedelta.__reduce__}  ó   € Ø—‘ §¡Ó 0Ð1Ð1r   )r  r  r  r  N)r   r   r   r   r   r   r   )'Ú__name__r   r+  Ú__firstlineno__Ú__doc__Ú	__slots__r  r-  r3  r7  Úpropertyr†   rr   rt   rJ  Ú__radd__rN  rQ  rT  rW  r[  rb  Ú__rmul__r^  rh  rk  rn  rq  ru  ry  r|  r€  rƒ  r   r‹  rŽ  r†  r”  Ú__static_attributes__r   r   r   r   r   B  sä   † ñð& B€Ià56Ø:;ôcòJ/ò
ò+ð ñó ðð ñó ðð ñ"ó ð"òð €Hòòò
.òòòð €Hò$ò2ò
Còòò"ò"ò"ò"ò"ò9òò
)ò?õ2r   r   i6eÄr  rø   rù   rú   )r†   rp   rq   rr   rt   rB  c                   ó@  • \ rS rSrSrSrS&S jr\S 5       r\S 5       r	\S 5       r
\S	 5       r\S
 5       rS rS rS rS rS r\r\S 5       r\S 5       r\S 5       rS rS rS'S jr\rS rS rS rS rS rS r S r!S r"\"r#S r$S r%S  r&S! r'S" r(S# r)S$ r*S%r+g)(r   i…  at  Concrete date type.

Constructors:

__new__()
fromtimestamp()
today()
fromordinal()

Operators:

__repr__, __str__
__eq__, __le__, __lt__, __ge__, __gt__, __hash__
__add__, __radd__, __sub__ (add/radd only with timedelta arg)

Methods:

timetuple()
toordinal()
weekday()
isoweekday(), isocalendar(), isoformat()
ctime()
strftime()

Properties (readonly):
year, month, day
)Ú_yearÚ_monthÚ_dayr  Nc                 óð  • Ucœ  [        U[        [        45      (       a�  [        U5      S:X  ar  S[	        USS 5      s=::  a  S::  aY  O  OV[        U[        5      (       a   UR                  S5      n[        R                  U 5      nUR                  U5        SUl        U$ [        XU5      u  pn[        R                  U 5      nXl        X$l        X4l        SUl        U$ ! [         a    [        S5      ef = f)	z>Constructor.

Arguments:

year, month, day (required, base 1)
r!   r   r+   r?   r*   Úlatin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r   )ré   Úbytesrê   r—   ÚordÚencodeÚUnicodeEncodeErrorry   r�   r  Ú_date__setstater  rö   r   r¡  r¢  )r  r$   r/   r8   r   s        r   r  Údate.__new__£  sæ   € ð ‰MÜ�tœe¤S˜\×*Ñ*¬s°4«y¸A«~Ø”�T˜!˜A�Y“Õ% 2Ö%ä˜$¤×$Ñ$ðLØŸ;™; xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜DÔ!ØˆDŒNØˆKÜ-¨d¸3Ó?Ñˆ�SÜ�~‰~˜cÓ"ˆØŒ
ØŒØŒ	ØˆŒØˆøô! *ó Lä$ðKóLð LðLús   Á C ÃC5c           	      óh   • Uc  [        S5      e[        R                  " U5      u	  p#pEpgp‰n
U " X#U5      $ )z;Construct a date from a POSIX timestamp (like time.time()).z5'NoneType' object cannot be interpreted as an integer)rë   rd   Ú	localtime)r  Útr   rf   rg   rh   ri   rj   ÚweekdayÚjdayrð   s              r   ÚfromtimestampÚdate.fromtimestampÅ  s:   € ð ‰9ÜÐSÓTÐTÜ27·/²/À!Ó2DÑ/ˆˆa�R˜W¨CÙ�1˜‹|Ðr   c                 óN   • [         R                  " 5       nU R                  U5      $ )z"Construct a date from time.time().©rd   r   r°  )r  r­  s     r   ÚtodayÚ
date.todayÍ  s    € ô �JŠJ‹LˆØ× Ñ  Ó#Ð#r   c                 ó0   • [        U5      u  p#nU " X#U5      $ )zŽConstruct a date from a proleptic Gregorian ordinal.

January 1 of year 1 is day 1.  Only the year, month and day are
non-zero in the result.
)rM   )r  rF   r   rf   rg   s        r   ÚfromordinalÚdate.fromordinalÓ  s   € ô ˜1“+‰ˆˆaÙ�1˜‹|Ðr   c                 óÖ   • [        U[        5      (       d  [        S5      e[        U5      S;  a  [	        SU< 35      e U " [        U5      6 $ ! [         a    [	        SU< 35      ef = f)z2Construct a date from a string in ISO 8601 format.ú#fromisoformat: argument must be strr¹   úInvalid isoformat string: )ré   rê   rë   r—   ry   rÁ   Ú	Exception)r  Údate_strings     r   ÚfromisoformatÚdate.fromisoformatÝ  sx   € ô ˜+¤s×+Ñ+ÜÐAÓBÐBäˆ{Ó :Ó-ÜÐ9¸+¹ÐIÓJÐJð	KÙÔ-¨kÓ:Ð;Ð;øÜó 	KÜÐ9¸+¹ÐIÓJÐJð	Kús   Á A ÁA(c                 ó    • U " [        XU5      6 $ )ztConstruct a date from the ISO year, week number and weekday.

This is the inverse of the date.isocalendar() function)r¼   )r  r$   râ   r8   s       r   ÚfromisocalendarÚdate.fromisocalendarë  s   € ñ
 Ô)¨$°cÓ:Ð;Ð;r   c                 óŒ   • S[        U 5      U R                  R                  U R                  U R                  U R
                  4-  $ )zhConvert to formal string, for repr().

>>> d = date(2010, 1, 1)
>>> repr(d)
'datetime.date(2010, 1, 1)'
z%s.%s(%d, %d, %d))r   r   r+  r   r¡  r¢  r6  s    r   r-  Údate.__repr__ô  s@   € ð #Ô&7¸Ó&=Ø&*§n¡n×&AÑ&AØ&*§j¡jØ&*§k¡kØ&*§i¡ið	&1ñ 1ð 	1r   c                 ó¤   • U R                  5       S-  =(       d    SnS[        U   [        U R                     U R                  U R
                  4-  $ )úReturn ctime() style string.rc   z%s %s %2d 00:00:00 %04d)Ú	toordinalÚ	_DAYNAMESÚ_MONTHNAMESr¡  r¢  r   ©r   r®  s     r   ÚctimeÚ
date.ctime  sK   € à—.‘.Ó" QÑ&×+¨!ˆØ(Ü�gÑÜ˜Ÿ™Ñ$Ø�I‰I�t—z‘zð,#ñ #ð 	#r   c                 ó6   • [        XU R                  5       5      $ )z9
Format using strftime().

Example: "%d/%m/%Y, %H:%M:%S"
)r¨   rž   )r   rw   s     r   rœ   Údate.strftime  s   € ô ˜d¨D¯N©NÓ,<Ó=Ð=r   c                 óÄ   • [        U[        5      (       d!  [        S[        U5      R                  -  5      e[        U5      S:w  a  U R                  U5      $ [        U 5      $ ©Nzmust be str, not %sr   ©ré   rê   rë   rì   r—  r—   rœ   ©r   r}   s     r   Ú
__format__Údate.__format__  óN   € Ü˜#œs×#Ñ#ÜÐ1´D¸³I×4FÑ4FÑFÓGÐGÜˆs‹8�q‹=Ø—=‘= Ó%Ð%Ü�4‹yÐr   c                 óN   • SU R                   U R                  U R                  4-  $ )z¦Return the date formatted according to ISO.

This is 'YYYY-MM-DD'.

References:
- https://www.w3.org/TR/NOTE-datetime
- https://www.cl.cam.ac.uk/~mgk25/iso-time.html
z%04d-%02d-%02d)r   r¡  r¢  r6  s    r   Ú	isoformatÚdate.isoformat  s"   € ð   4§:¡:¨t¯{©{¸D¿I¹IÐ"FÑFÐFr   c                 ó   • U R                   $ )zyear (1-9999))r   r6  s    r   r$   Ú	date.year+  r=  r   c                 ó   • U R                   $ )zmonth (1-12))r¡  r6  s    r   r/   Ú
date.month0  s   € ð �{‰{Ðr   c                 ó   • U R                   $ )z
day (1-31))r¢  r6  s    r   r8   Údate.day5  s   € ð �y‰yÐr   c           	      ó`   • [        U R                  U R                  U R                  SSSS5      $ )ú9Return local time tuple compatible with time.localtime().r   r   )rn   r   r¡  r¢  r6  s    r   rž   Údate.timetuple=  s*   € ä! $§*¡*¨d¯k©k¸4¿9¹9Ø"# Q¨¨2ó/ð 	/r   c                 óX   • [        U R                  U R                  U R                  5      $ )zžReturn proleptic Gregorian ordinal for the year, month and day.

January 1 of year 1 is day 1.  Only the year, month and day values
contribute to the result.
)r:   r   r¡  r¢  r6  s    r   rÇ  Údate.toordinalB  s   € ô ˜Ÿ
™
 D§K¡K°·±Ó;Ð;r   c                 ó€   • Uc  U R                   nUc  U R                  nUc  U R                  n[        U 5      " XU5      $ )z;Return a new date with new values for the specified fields.)r   r¡  r¢  rì   )r   r$   r/   r8   s       r   rš   Údate.replaceJ  s=   € à‰<Ø—:‘:ˆDØ‰=Ø—K‘KˆEØ‰;Ø—)‘)ˆCÜ�DŒz˜$ sÓ+Ð+r   c                 óŠ   • [        U[        5      (       a)  [        U[        5      (       d  U R                  U5      S:H  $ [        $ rZ  ©ré   r   r   r   rG  rH  s     r   ru  Údate.__eq__X  ó5   € Ü�eœT×"Ñ"¬:°e¼X×+FÑ+FØ—9‘9˜UÓ# qÑ(Ð(ÜÐr   c                 óŠ   • [        U[        5      (       a)  [        U[        5      (       d  U R                  U5      S:*  $ [        $ rZ  rç  rH  s     r   ry  Údate.__le__]  ré  r   c                 óŠ   • [        U[        5      (       a)  [        U[        5      (       d  U R                  U5      S:  $ [        $ rZ  rç  rH  s     r   r|  Údate.__lt__b  ó5   € Ü�eœT×"Ñ"¬:°e¼X×+FÑ+FØ—9‘9˜UÓ# aÑ'Ð'ÜÐr   c                 óŠ   • [        U[        5      (       a)  [        U[        5      (       d  U R                  U5      S:¬  $ [        $ rZ  rç  rH  s     r   r€  Údate.__ge__g  ré  r   c                 óŠ   • [        U[        5      (       a)  [        U[        5      (       d  U R                  U5      S:„  $ [        $ rZ  rç  rH  s     r   rƒ  Údate.__gt__l  rî  r   c                 ó
  • [        U[        5      (       d   e[        U[        5      (       a   eU R                  U R                  U R
                  pCnUR                  UR                  UR
                  pvn[        X#U4XVU45      $ rE  )ré   r   r   r   r¡  r¢  r   )r   rI  r   rf   rg   Úy2Úm2Úd2s           r   r   Ú	date._cmpq  sk   € Ü˜%¤×&Ñ&Ð&Ð&Ü˜e¤X×.Ñ.Ð.Ð.Ø—*‘*˜dŸk™k¨4¯9©9ˆaˆØ—[‘[ %§,¡,°·
±
�ˆÜ�Q˜1�I ¨˜|Ó,Ð,r   c                 óv   • U R                   S:X  a  [        U R                  5       5      U l         U R                   $ )úHash.r   r‰  r6  s    r   r‹  Údate.__hash__x  s+   € à�>‰>˜RÓÜ! $§.¡.Ó"2Ó3ˆDŒNØ�~‰~Ðr   c                 óä   • [        U[        5      (       aV  U R                  5       UR                  -   nSUs=:  a
  [        ::  a  O  O[        U 5      R                  U5      $ [        S5      e[        $ )zAdd a date to a timedelta.r   úresult out of range)	ré   r   rÇ  r†   Ú_MAXORDINALrì   r·  r  rG  )r   rI  Úos      r   rJ  Údate.__add__€  sX   € ä�eœY×'Ñ'Ø—‘Ó  5§:¡:Ñ-ˆAØ�1Õ#œÖ#Ü˜D“z×-Ñ-¨aÓ0Ð0ÜÐ 5Ó6Ð6ÜÐr   c                 óî   • [        U[        5      (       a  U [        UR                  * 5      -   $ [        U[        5      (       a-  U R	                  5       nUR	                  5       n[        X#-
  5      $ [
        $ )z.Subtract two dates, or a date and a timedelta.)ré   r   r†   r   rÇ  rG  )r   rI  Údays1Údays2s       r   rN  Údate.__sub__‹  s]   € ä�eœY×'Ñ'Øœ) U§Z¡Z KÓ0Ñ0Ð0Ü�eœT×"Ñ"Ø—N‘NÓ$ˆEØ—O‘OÓ%ˆEÜ˜U™]Ó+Ð+ÜÐr   c                 ó.   • U R                  5       S-   S-  $ )z:Return day of the week, where Monday == 0 ... Sunday == 6.rb   rc   ©rÇ  r6  s    r   r®  Údate.weekday•  s   € à—‘Ó  1Ñ$¨Ñ)Ð)r   c                 ó:   • U R                  5       S-  =(       d    S$ )z:Return day of the week, where Monday == 1 ... Sunday == 7.rc   r  r6  s    r   Ú
isoweekdayÚdate.isoweekday›  s   € ð �~‰~Ó !Ñ#×( qÐ(r   c                 óV  • U R                   n[        U5      n[        U R                   U R                  U R                  5      n[        X2-
  S5      u  pEUS:  a!  US-  n[        U5      n[        X2-
  S5      u  pEOUS:¼  a  U[        US-   5      :¼  a  US-  nSn[        XS-   US-   5      $ )ag  Return a named tuple containing ISO year, week number, and weekday.

The first ISO week of the year is the (Mon-Sun) week
containing the year's first Thursday; everything else derives
from that.

The first week is 1; Monday is 1 ... Sunday is 7.

ISO calendar algorithm taken from
https://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
(used with permission)
rc   r   r   é4   )r   rá   r:   r¡  r¢  rB   Ú_IsoCalendarDate)r   r$   Úweek1mondayr´  râ   r8   s         r   ÚisocalendarÚdate.isocalendar   sª   € ð �z‰zˆÜ% dÓ+ˆÜ˜Ÿ™ T§[¡[°$·)±)Ó<ˆä˜5Ñ.°Ó2‰	ˆØ�!‹8Ø�A‰IˆDÜ)¨$Ó/ˆKÜ˜uÑ2°AÓ6‰IˆD�#Ø�R‹ZØœ¨¨Q©Ó/Ó/Ø˜‘	�Ø�Ü ¨1¡f¨c°!©eÓ4Ð4r   c                 óx   • [        U R                  S5      u  p[        XU R                  U R                  /5      4$ ©Né   )rB   r   r¥  r¡  r¢  )r   ÚyhiÚylos      r   r†  Údate._getstate¾  s1   € Ü˜$Ÿ*™* cÓ*‰ˆÜ�c §¡¨T¯Y©YÐ7Ó8Ð9Ð9r   c                 ó>   • Uu  p#U l         U l        US-  U-   U l        g r  )r¡  r¢  r   )r   Ústringr  r  s       r   Ú
__setstateÚdate.__setstateÂ  s!   € Ø+1Ñ(ˆ�$”+˜tœyØ˜3‘Y ‘_ˆ�
r   c                 ó:   • U R                   U R                  5       4$ rE  r“  r6  s    r   r”  Údate.__reduce__Æ  r–  r   )r¢  r  r¡  r   )NN)NNN),r—  r   r+  r˜  r™  rš  r  Úclassmethodr°  r´  r·  r¾  rÁ  r-  rË  rœ   rÓ  r×  r3  r›  r$   r/   r8   rž   rÇ  rš   Ú__replace__ru  ry  r|  r€  rƒ  r   r‹  rJ  rœ  rN  r®  r  r  r†  r©  r”  rž  r   r   r   r   r   …  s?  † ñð6 7€IôðD ñó ðð ñ$ó ð$ð
 ñó ðð ñKó ðKð ñ<ó ð<ò1ò$#ò>òò	Gð €Gð ñó ðð ñó ðð ñó ðò/ò
<ô,ð €Kòò
ò
ò
ò
ò
-òòð €Hòò*ò)ò
5ò<:ò%õ2r   r   r*   r   r:  c                   ó:   • \ rS rSrSrSrS rS rS rS r	S r
Srg	)
r   iÐ  zwAbstract base class for time zone info classes.

Subclasses must override the tzname(), utcoffset() and dst() methods.
r   c                 ó   • [        S5      e)z%datetime -> string name of time zone.z&tzinfo subclass must override tzname()©ÚNotImplementedError©r   Údts     r   r•   Útzinfo.tzname×  s   € ä!Ð"JÓKÐKr   c                 ó   • [        S5      e)zIdatetime -> timedelta, positive for east of UTC, negative for west of UTCz)tzinfo subclass must override utcoffset()r   r"  s     r   r‘   Útzinfo.utcoffsetÛ  s   € ä!Ð"MÓNÐNr   c                 ó   • [        S5      e)z‰datetime -> DST offset as timedelta, positive for east of UTC.

Return 0 if DST not in effect.  utcoffset() must include the DST
offset.
z#tzinfo subclass must override dst()r   r"  s     r   rð   Ú
tzinfo.dstß  s   € ô "Ð"GÓHÐHr   c                 óP  • [        U[        5      (       d  [        S5      eUR                  U La  [	        S5      eUR                  5       nUc  [	        S5      eUR                  5       nUc  [	        S5      eX#-
  nU(       a"  X-  nUR                  5       nUc  [	        S5      eX-   $ )z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.tzinfo is not selfz0fromutc() requires a non-None utcoffset() resultz*fromutc() requires a non-None dst() resultz;fromutc(): dt.dst gave inconsistent results; cannot convert)ré   r   rë   r   ry   r‘   rð   )r   r#  ÚdtoffÚdtdstÚdeltas        r   ÚfromutcÚtzinfo.fromutcç  s°   € ô ˜"œh×'Ñ'ÜÐDÓEÐEØ�9‰9˜DÒ ÜÐ4Ó5Ð5à—‘“ˆØ‰=Üð &ó 'ð 'ð
 —‘“ˆØ‰=ÜÐIÓJÐJØ‘ˆÞØ‰KˆBØ—F‘F“HˆEØ‰}Ü ð ";ó <ð <à‰zÐr   c                 óv   • [        U SS 5      nU(       a  U" 5       nOSnU R                  X R                  5       4$ )NÚ__getinitargs__r   )r˜   r   Ú__getstate__)r   Úgetinitargsr,  s      r   r”  Útzinfo.__reduce__  s8   € Ü˜dÐ$5°tÓ<ˆÞÙ“=‰DàˆDØ—‘ ×&7Ñ&7Ó&9Ð:Ð:r   N)r—  r   r+  r˜  r™  rš  r•   r‘   rð   r-  r”  rž  r   r   r   r   r   Ð  s*   † ñð €IòLòOòIòõ:;r   r   c                   ód   ^ • \ rS rSrU 4S jr\S 5       r\S 5       r\S 5       rS r	S r
SrU =r$ )	ÚIsoCalendarDatei  c                ó&   >• [         TU ]  XX#45      $ rE  )Úsuperr  )r  r$   râ   r®  r   s       €r   r  ÚIsoCalendarDate.__new__  s   ø€ Ü‰w‰˜s¨4Ð$9Ó:Ð:r   c                 ó   • U S   $ rZ  r   r6  s    r   r$   ÚIsoCalendarDate.year  ó   € à�A‰wˆr   c                 ó   • U S   $ )Nr   r   r6  s    r   râ   ÚIsoCalendarDate.week  r;  r   c                 ó   • U S   $ ©Nr+   r   r6  s    r   r®  ÚIsoCalendarDate.weekday  r;  r   c                 ó&   • [         [        U 5      44$ rE  )Útupler6  s    r   r”  ÚIsoCalendarDate.__reduce__  s   € ô œ˜d›�~Ð&Ð&r   c                 óX   • U R                   R                   SU S    SU S    SU S    S3$ )Nz(year=r   z, week=r   z
, weekday=r+   r*  )r   r—  r6  s    r   r-  ÚIsoCalendarDate.__repr__#  s?   € Ø—>‘>×*Ñ*Ð+Ø˜˜a™˜	 ¨¨a©¨	°¸DÀ¹G¸9ÀAðGð 	Hr   r   )r—  r   r+  r˜  r  r›  r$   râ   r®  r”  r-  rž  Ú__classcell__)r   s   @r   r5  r5    sU   ø† õ;ð ñó ðð ñó ðð ñó ðò'÷
Hð Hr   r5  c                   ó:  • \ rS rSrSrSrS$SS.S jjr\S 5       r\S	 5       r	\S
 5       r
\S 5       r\S 5       r\S 5       rS rS rS rS rS rS%S jrS rS rS rS&S jr\r\S 5       rS rS rS rS rS r  S'SS.S jjr \ r!S(S jr"S  r#S! r$S" r%S#r&g))r   i,  a  Time with time zone.

Constructors:

__new__()

Operators:

__repr__, __str__
__eq__, __le__, __lt__, __ge__, __gt__, __hash__

Methods:

strftime()
isoformat()
utcoffset()
tzname()
dst()

Properties (readonly):
hour, minute, second, microsecond, tzinfo, fold
)Ú_hourÚ_minuteÚ_secondÚ_microsecondÚ_tzinfor  Ú_foldr   N©rþ   c                ó,  • [        U[        [        45      (       aƒ  [        U5      S:X  at  [	        USS 5      S-  S:  a_  [        U[        5      (       a   UR                  S5      n[        R                  U 5      nUR                  X=(       d    S5        S	Ul        U$ [        XX4U5      u  pp4n[        U5        [        R                  U 5      nXl        X'l        X7l        XGl        XWl        S	Ul        Xgl        U$ ! [         a    [        S5      ef = f)
z–Constructor.

Arguments:

hour, minute (required)
second, microsecond (default to zero)
tzinfo (default to None)
fold (keyword only, default to zero)
rb   r   r   é   r@   r¤  znFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.Nr   )ré   r¥  rê   r—   r¦  r§  r¨  ry   r�   r  Ú_time__setstater  rÿ   r  rH  rI  rJ  rK  rL  rM  )r  rû   rü   rý   r�   r   rþ   r   s           r   r  Útime.__new__E  s  € ô �tœe¤S˜\×*Ñ*¬s°4«y¸A«~Ü��Q�q�	‹N˜4Ñ "Ó$ä˜$¤×$Ñ$ðLØŸ;™; xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜D§.¨DÔ1ØˆDŒNØˆKÜ2DØ˜&¨tó35Ñ/ˆ�f¨4ä˜&Ô!Ü�~‰~˜cÓ"ˆØŒ
ØŒØŒØ'ÔØŒØˆŒØŒ
Øˆøô+ *ó Lä$ðKóLð LðLús   ÁC= Ã=Dc                 ó   • U R                   $ ©zhour (0-23)©rH  r6  s    r   rû   Ú	time.hourm  r=  r   c                 ó   • U R                   $ ©zminute (0-59)©rI  r6  s    r   rü   Útime.minuter  ó   € ð �|‰|Ðr   c                 ó   • U R                   $ ©zsecond (0-59)©rJ  r6  s    r   rý   Útime.secondw  r[  r   c                 ó   • U R                   $ ©zmicrosecond (0-999999)©rK  r6  s    r   r�   Útime.microsecond|  ó   € ð × Ñ Ð r   c                 ó   • U R                   $ ©ztimezone info object©rL  r6  s    r   r   Útime.tzinfo�  r[  r   c                 ó   • U R                   $ rE  ©rM  r6  s    r   rþ   Ú	time.fold†  ó   € à�z‰zÐr   c                 ó^   • [        U[        5      (       a  U R                  USS9S:H  $ [        $ ©NT)Úallow_mixedr   ©ré   r   r   rG  rH  s     r   ru  Útime.__eq__Ž  s-   € Ü�eœT×"Ñ"Ø—9‘9˜U°�9Ð5¸Ñ:Ð:ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:*  $ [        $ rZ  rp  rH  s     r   ry  Útime.__le__”  ó)   € Ü�eœT×"Ñ"Ø—9‘9˜UÓ# qÑ(Ð(ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:  $ [        $ rZ  rp  rH  s     r   r|  Útime.__lt__š  ó)   € Ü�eœT×"Ñ"Ø—9‘9˜UÓ# aÑ'Ð'ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:¬  $ [        $ rZ  rp  rH  s     r   r€  Útime.__ge__   rt  r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:„  $ [        $ rZ  rp  rH  s     r   rƒ  Útime.__gt__¦  rw  r   c                 óØ  • [        U[        5      (       d   eU R                  nUR                  nS =pVX4L a  SnO$U R                  5       nUR                  5       nXV:H  nU(       ad  [	        U R
                  U R                  U R                  U R                  4UR
                  UR                  UR                  UR                  45      $ Ub  Uc  U(       a  g[        S5      eU R
                  S-  U R                  -   U[        SS9-  -
  nUR
                  S-  UR                  -   U[        SS9-  -
  n	[	        X€R                  U R                  4X‘R                  UR                  45      $ )NTr+   z$cannot compare naive and aware timesr  r   r„   )ré   r   rL  r‘   r   rH  rI  rJ  rK  rë   r   )
r   rI  ro  ÚmytzÚottzÚmyoffÚotoffÚbase_compareÚmyhhmmÚothhmms
             r   r   Ú	time._cmp¬  sC  € Ü˜%¤×&Ñ&Ð&Ð&Ø�|‰|ˆØ�}‰}ˆØÐˆàŠ<Ø‰Là—N‘NÓ$ˆEØ—O‘OÓ%ˆEØ ™>ˆLæÜ˜Ÿ™ T§\¡\°4·<±<Ø×*Ñ*ð,àŸ™ e§m¡m°U·]±]Ø×+Ñ+ð-ó.ð .ð ‰=˜E™MÞØäÐ FÓGÐGØ—‘˜b‘ 4§<¡<Ñ/°%¼È1Ñ9MÑ2MÑMˆØ—‘˜rÑ! E§M¡MÑ1°E¼9ÈQÑ;OÑ4OÑOˆÜ�VŸ\™\¨4×+<Ñ+<Ð=ØŸ]™]¨E×,>Ñ,>Ð?óAð 	Ar   c                 óž  • U R                   S:X  Ga1  U R                  (       a  U R                  SS9nOU nUR                  5       nU(       d-  [	        UR                  5       S   5      U l         U R                   $ [        [        U R                  U R                  S9U-
  [        SS95      u  p4U[        SS9-  (       a   S5       eU[        SS9-  nSUs=::  a  S	:  a>  O  O;[	        [        X4U R                  U R                  5      5      U l         U R                   $ [	        X4U R                  U R                  45      U l         U R                   $ )
rù  r   r   rN  ©rp   rq   r   rƒ   r„   zwhole minuter@   )r  rþ   rš   r‘   rŠ  r†  rB   r   rû   rü   r   rý   r�   )r   r­  ÚtzoffÚhrf   s        r   r‹  Útime.__hash__È  s  € à�>‰>˜RÔØ�y�yØ—L‘L a�LÐ(‘à�Ø—K‘K“MˆEÞÜ!% a§k¡k£m°AÑ&6Ó!7�”ð �~‰~Ðô œi¨d¯i©iÀÇÁÑMÐPUÑUÜ'¨aÑ0ó2‘�àœy°Ñ3×3ÐC°^ÓCÐ3Ø”i¨Ñ*Ñ*�Ø˜•;˜B–;Ü%)¬$¨q°T·[±[À$×BRÑBRÓ*SÓ%T�D”Nð �~‰~Ðô &*¨1°·±¸d×>NÑ>NÐ*OÓ%P�D”NØ�~‰~Ðr   c                 ó8   • U R                  5       n[        U5      $ )z=Return formatted timezone offset (+xx:xx) or an empty string.)r‘   r‹   )r   r‡   s     r   Ú_tzstrÚtime._tzstrß  s   € à�n‰nÓˆÜ˜cÓ"Ð"r   c                 óÀ  • U R                   S:w  a  SU R                  U R                   4-  nO"U R                  S:w  a  SU R                  -  nOSnS[        U 5      U R                  R                  U R
                  U R                  U4-  nU R                  b#  USS S:X  d   eUSS S	U R                  -  -   S-   nU R                  (       a  USS S:X  d   eUSS S
-   nU$ )ú%Convert to formal string, for repr().r   z, %d, %dz, %dr€   z%s.%s(%d, %d%s)Nr   r*  ú, tzinfo=%rú	, fold=1))	rK  rJ  r   r   r+  rH  rI  rL  rM  ©r   r‰   s     r   r-  Útime.__repr__ä  så   € à×Ñ Ó!Ø˜dŸl™l¨D×,=Ñ,=Ð>Ñ>‰AØ�\‰\˜QÓØ˜Ÿ™Ñ%‰AàˆAØÔ 1°$Ó 7Ø $§¡× ;Ñ ;Ø $§
¡
¨D¯L©L¸!ð =ñ =ˆð �<‰<Ñ#Ø�R�S�6˜S“=Ð �=Ø�#�2�˜¨¯©Ñ5Ñ5¸Ñ;ˆAØ�:�:Ø�R�S�6˜S“=Ð �=Ø�#�2�˜Ñ$ˆAØˆr   c                 óª   • [        U R                  U R                  U R                  U R                  U5      nU R                  5       nU(       a  X#-  nU$ )a[  Return the time formatted according to ISO.

The full format is 'HH:MM:SS.mmmmmm+zz:zz'. By default, the fractional
part is omitted if self.microsecond == 0.

The optional argument timespec specifies the number of additional
terms of the time to include. Valid options are 'auto', 'hours',
'minutes', 'seconds', 'milliseconds' and 'microseconds'.
)r~   rH  rI  rJ  rK  r‹  )r   r{   r‰   r  s       r   r×  Útime.isoformat÷  sE   € ô ˜Ÿ™ T§\¡\°4·<±<Ø×+Ñ+¨Xó7ˆà�[‰[‹]ˆÞØ‰GˆAØˆr   c                 ó¼   • [        U[        5      (       d  [        S5      eUR                  S5      n U " [	        U5      6 $ ! [
         a    [        SU< 35      ef = f)z>Construct a time from a string in one of the ISO 8601 formats.rº  ÚTr»  )ré   rê   rë   ÚremoveprefixrÞ   r¼  ry   )r  Útime_strings     r   r¾  Útime.fromisoformat
  sj   € ô ˜+¤s×+Ñ+ÜÐAÓBÐBð
 "×.Ñ.¨sÓ3ˆð	KÙÔ-¨kÓ:Ð;Ð;øÜó 	KÜÐ9¸+¹ÐIÓJÐJð	Kús   ³A ÁAc           	      ól   • SSSU R                   U R                  U R                  SSS4	n[        XU5      $ )zkFormat using strftime().  The date part of the timestamp passed
to underlying strftime should not be used.
il  r   r   r   )rH  rI  rJ  r¨   )r   rw   rž   s      r   rœ   Útime.strftime  s;   € ð ˜1˜aØ—Z‘Z §¡¨t¯|©|Ø˜˜2ðˆ	ô ˜d¨IÓ6Ð6r   c                 óÄ   • [        U[        5      (       d!  [        S[        U5      R                  -  5      e[        U5      S:w  a  U R                  U5      $ [        U 5      $ rÐ  rÑ  rÒ  s     r   rÓ  Útime.__format__%  rÕ  r   c                 óp   • U R                   c  gU R                   R                  S5      n[        SU5        U$ )zUReturn the timezone offset as timedelta, positive east of UTC
(negative west of UTC).Nr‘   ©rL  r‘   ró   ©r   rò   s     r   r‘   Útime.utcoffset.  ó4   € ð �<‰<ÑØØ—‘×'Ñ'¨Ó-ˆÜ˜+ vÔ.Øˆr   c                 ón   • U R                   c  gU R                   R                  S5      n[        U5        U$ ©zîReturn the timezone name.

Note that the name is 100% informational -- there's no requirement that
it mean anything in particular. For example, "GMT", "UTC", "-500",
"-5:00", "EDT", "US/Eastern", "America/New York" are all valid replies.
N©rL  r•   rî   ©r   rí   s     r   r•   Útime.tzname7  ó2   € ð �<‰<ÑØØ�|‰|×"Ñ" 4Ó(ˆÜ�dÔØˆr   c                 óp   • U R                   c  gU R                   R                  S5      n[        SU5        U$ ©aA  Return 0 if DST is not in effect, or the DST offset (as timedelta
positive eastward) if DST is in effect.

This is purely informational; the DST offset has already been added to
the UTC offset returned by utcoffset() if applicable, so there's no
need to consult dst() unless you're interested in displaying the DST
info.
Nrð   ©rL  rð   ró   r   s     r   rð   Útime.dstD  ó4   € ð �<‰<ÑØØ—‘×!Ñ! $Ó'ˆÜ˜% Ô(Øˆr   c          	      óÜ   • Uc  U R                   nUc  U R                  nUc  U R                  nUc  U R                  nUSL a  U R                  nUc  U R
                  n[        U 5      " XX4XVS9$ )z;Return a new time with new values for the specified fields.TrN  )rû   rü   rý   r�   r   rM  rì   )r   rû   rü   rý   r�   r   rþ   s          r   rš   Útime.replaceS  sp   € ð ‰<Ø—9‘9ˆDØ‰>Ø—[‘[ˆFØ‰>Ø—[‘[ˆFØÑØ×*Ñ*ˆKØ�TŠ>Ø—[‘[ˆFØ‰<Ø—:‘:ˆDÜ�DŒz˜$¨¸VÑOÐOr   c                 ó  • [        U R                  S5      u  p#[        US5      u  pBU R                  nU R                  (       a  US:”  a  US-  n[	        XPR
                  U R                  XBU/5      nU R                  c  U4$ X`R                  4$ ©Nr  r?   é€   )rB   rK  rH  rM  r¥  rI  rJ  rL  )r   ÚprotocolÚus2Úus3Úus1rˆ  Ú	basestates          r   r†  Útime._getstateh  s‚   € Ü˜$×+Ñ+¨SÓ1‰ˆÜ˜#˜sÓ#‰ˆØ�J‰JˆØ�:�:˜( Q›,Ø�‰HˆAÜ˜1Ÿl™l¨D¯L©LØ Sð*ó +ˆ	à�<‰<ÑØ�<ÐàŸ|™|Ð,Ð,r   c                 óè   • Ub   [        U[        5      (       d  [        S5      eUu  o0l        U l        pEnUS:”  a  SU l        US-
  U l        OSU l        X0l        US-  U-  S-  U-  U l        X l        g )Núbad tzinfo state argrP  r   r²  r   r¯   )	ré   Ú_tzinfo_classrë   rI  rJ  rM  rH  rK  rL  )r   r  r   rˆ  r¶  r´  rµ  s          r   r  Útime.__setstateu  sw   € ØÑ¤j°¼×&GÑ&GÜÐ2Ó3Ð3Ø7=Ñ4ˆŒ<˜œ s°Øˆs‹7ØˆDŒJØ˜S™ˆD�JàˆDŒJØŒJØ" a™x¨3Ñ.°1Ñ4¸Ñ;ˆÔØ�r   c                 ó<   • U R                   U R                  U5      4$ rE  r“  ©r   r³  s     r   Ú__reduce_ex__Útime.__reduce_ex__‚  ó   € Ø—‘ §¡¨xÓ 8Ð9Ð9r   c                 ó$   • U R                  S5      $ r?  ©r¿  r6  s    r   r”  Útime.__reduce__…  ó   € Ø×!Ñ! !Ó$Ð$r   )rM  r  rH  rK  rI  rJ  rL  ©r   r   r   r   N©F©ru   )NNNNT©r?   )'r—  r   r+  r˜  r™  rš  r  r›  rû   rü   rý   r�   r   rþ   ru  ry  r|  r€  rƒ  r   r‹  r‹  r-  r×  r3  r  r¾  rœ   rÓ  r‘   r•   rð   rš   r  r†  rQ  r¿  r”  rž  r   r   r   r   r   ,  s0  † ñð, _€Ið%ÐUVö %ðP ñó ðð ñó ðð ñó ðð ñ!ó ð!ð ñó ðð ñó ðò"ò"ò"ò"ò"ôAò8ò.#ò
ô&ð" €GàñKó ðKò	7òòòòð HLØðPØ%)öPð" €Kô-òò:õ%r   r   c                   ó  • \ rS rSrSr\R                  r  S4SS.S jjr\S 5       r	\S 5       r
\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S5S j5       r\S 5       r\S5S j5       r\S 5       r\S6S j5       r\S 5       rS rS rS rS rS rS rS r  S7SS.S jjr\rS rS5S jr S r!S8S jr"S  r#S! r$\S" 5       r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S9S+ jr.S, r/\/r0S- r1S. r2S:S/ jr3S0 r4S1 r5S2 r6S3r7g);r   i�  zÞdatetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

The year, month and day arguments are required. tzinfo may be None, or an
instance of a tzinfo subclass. The remaining arguments may be ints.
Nr   rN  c	                óf  • [        U[        [        45      (       a  [        U5      S:X  ap  S[	        USS 5      S-  s=::  a  S::  aT  O  OQ[        U[        5      (       a   [        US5      n[        R                  U 5      n
U
R                  X5        S	U
l
        U
$ [        XU5      u  pn[        XEXgU	5      u  pEpgn	[        U5        [        R                  U 5      n
Xl        X*l        X:l        XJl        XZl        Xjl        Xzl        XŠl        S	U
l
        Xšl        U
$ ! [
         a    [        S5      ef = f)
Nr±   r   r+   r?   rP  r*   r¤  zrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r   )ré   r¥  rê   r—   r¦  r¨  ry   r�   r  Ú_datetime__setstater  rö   rÿ   r  r   r¡  r¢  rH  rI  rJ  rK  rL  rM  )r  r$   r/   r8   rû   rü   rý   r�   r   rþ   r   s              r   r  Údatetime.__new__—  s!  € ä�tœe¤S˜\×*Ñ*¬s°4«y¸B«Ø”�T˜!˜A�Y“ Ñ$Õ*¨Ö*ä˜$¤×$Ñ$ðLÜ   xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜DÔ(ØˆDŒNØˆKÜ-¨d¸3Ó?Ñˆ�SÜ2DØ˜&¨tó35Ñ/ˆ�f¨4ä˜&Ô!Ü�~‰~˜cÓ"ˆØŒ
ØŒØŒ	ØŒ
ØŒØŒØ'ÔØŒØˆŒØŒ
Øˆøô3 *ó Lä$ðKóLð LðLús   Á D ÄD0c                 ó   • U R                   $ rT  rU  r6  s    r   rû   Údatetime.hour»  r=  r   c                 ó   • U R                   $ rX  rY  r6  s    r   rü   Údatetime.minuteÀ  r[  r   c                 ó   • U R                   $ r]  r^  r6  s    r   rý   Údatetime.secondÅ  r[  r   c                 ó   • U R                   $ ra  rb  r6  s    r   r�   Údatetime.microsecondÊ  rd  r   c                 ó   • U R                   $ rf  rg  r6  s    r   r   Údatetime.tzinfoÏ  r[  r   c                 ó   • U R                   $ rE  rj  r6  s    r   rþ   Údatetime.foldÔ  rl  r   c           
      ó´  • [         R                  " U5      u  pA[        US-  5      nUS:¼  a  US-  nUS-  nOUS:  a
  US-  nUS-  nU(       a  [        R                  O[        R
                  nU" U5      u	  pxpšp¼pÞn[        US5      nU " XxXšX¼XS5      nUc­  U(       d¦  SnUU:  a&  [        R                  R                  S5      (       a  U$ U" UU-
  5      SS	 u  pxpšp¼U " XxXšX¼XS5      nUU-
  [        SU5      -
  nUR                  S:  a7  U" UU[        SS5      -  -   5      SS	 u  pxpšp¼U " XxXšX¼XS5      nUU:X  a  SUl        U$ Ub  UR                  U5      nU$ )
úrConstruct a datetime from a POSIX timestamp (like time.time()).

A timezone info object may be passed in as well.
r  r  r   r   rù   Nr  Úwinrb   )r  r  r  rd   Úgmtimer¬  ÚminÚsysÚplatformÚ
startswithr   r†   rM  r-  )r  r­  rÖ   r  Úfracrz   Ú	converterr   rf   rg   rh   ri   rj   r®  r¯  rð   ÚresultÚmax_fold_secondsÚprobe1ÚtransÚprobe2s                        r   Ú_fromtimestampÚdatetime._fromtimestampØ  s}  € ô —*’*˜Q“-‰ˆÜ�4˜#‘:ÓˆØ�‹=Ø�‰FˆAØ�'‰M‰BØ�!‹VØ�‰FˆAØ�'‰MˆBæ$'”E—L’L¬U¯_©_ˆ	Ù2;¸A³,Ñ/ˆˆa�R˜W¨CÜ��R‹[ˆÙ�Q˜1 "¨"Ó1ˆØ‰:žcð  )Ðð Ð#Ó#¬¯©×(?Ñ(?À×(FÑ(FØ�á"+¨AÐ0@Ñ,@Ó"AÀ"À1Ð"EÑˆA�!˜Ù˜˜q b¨bÓ5ˆFØ˜V‘O¤i°Ð3CÓ&DÑDˆEØ�z‰z˜A‹~Ù&/°°E¼YÀqÈ!»_Ñ4LÑ0LÓ&MÈbÈqÐ&QÑ#��a˜RÙ˜Q 1¨"°"Ó9�Ø˜VÓ#Ø#$�F”Lð ˆð ‰^Ø—Z‘Z Ó'ˆFØˆr   c                 ó@   • [        U5        U R                  XSLU5      $ )rÛ  N)r  ré  )r  Ú	timestampr  s      r   r°  Údatetime.fromtimestamp  s#   € ô 	˜"Ôà×!Ñ! )°t¨^¸RÓ@Ð@r   c                 óZ   • SSK nUR                  S[        SS9  U R                  USS5      $ )z6Construct a naive UTC datetime from a POSIX timestamp.r   NzÍdatetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(t, datetime.UTC).r+   ©Ú
stacklevelT)ÚwarningsÚwarnÚDeprecationWarningré  )r  r­  rñ  s      r   ÚutcfromtimestampÚdatetime.utcfromtimestamp  s=   € ó 	Ø�‰ð Jô )Ø!"ð 	ñ 	$ð ×!Ñ! ! T¨4Ó0Ð0r   c                 óN   • [         R                  " 5       nU R                  X!5      $ )zBConstruct a datetime from time.time() and optional time zone info.r³  )r  r  r­  s      r   ÚnowÚdatetime.now  s    € ô �JŠJ‹LˆØ× Ñ  Ó'Ð'r   c                 ó„   • SSK nUR                  S[        SS9  [        R                  " 5       nU R                  USS5      $ )z*Construct a UTC datetime from time.time().r   Nz¶datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).r+   rï  T)rñ  rò  ró  rd   r   ré  )r  rñ  r­  s      r   ÚutcnowÚdatetime.utcnow   sG   € ó 	Ø�‰ð =ô )Ø!"ð 	ñ 	$ô �JŠJ‹LˆØ×!Ñ! ! T¨4Ó0Ð0r   c                 ó^  • [        U[        5      (       d  [        S5      e[        U[        5      (       d  [        S5      eUSL a  UR                  nU " UR
                  UR                  UR                  UR                  UR                  UR                  UR                  X2R                  S9	$ )z8Construct a datetime from a given date and a given time.z%date argument must be a date instancez%time argument must be a time instanceTrN  )ré   Ú_date_classrë   Ú_time_classr   r$   r/   r8   rû   rü   rý   r�   rþ   )r  r   r   r   s       r   ÚcombineÚdatetime.combine-  s‡   € ô ˜$¤×,Ñ,ÜÐCÓDÐDÜ˜$¤×,Ñ,ÜÐCÓDÐDØ�TŠ>Ø—[‘[ˆFÙ�4—9‘9˜dŸj™j¨$¯(©(Ø—9‘9˜dŸk™k¨4¯;©;¸×8HÑ8HØ§	¡	ñ+ð 	+r   c                 óz  • [        U[        5      (       d  [        S5      e[        U5      S:  a  [	        SU< 35      e [        U5      nUSU nXS-   S n[        U5      nU(       a   [        U5      nO/ SQnU " XV-   6 $ ! [         a    [	        SU< 35      Sef = f! [         a    [	        SU< 35      Sef = f)zBConstruct a datetime from a string in one of the ISO 8601 formats.rº  rc   r»  r   r   NrÆ  )ré   rê   rë   r—   ry   r·   rÁ   rÞ   )r  r½  Úseparator_locationÚdstrrÇ   Údate_componentsÚtime_componentss          r   r¾  Údatetime.fromisoformat:  sû   € ô ˜+¤s×+Ñ+ÜÐAÓBÐBäˆ{Ó˜aÓÜÐ9¸+¹ÐIÓJÐJð	HÜ!CÀKÓ!PÐØ˜qÐ!3Ð4ˆDØ°1Ñ 4Ð6Ð7ˆDä3°DÓ9ˆOö
 ðLÜ"7¸Ó"=‘ò
 1ˆOá�_Ñ6Ð8Ð8øô ó 	HÜØ,¨[©OÐ<ó>ØCGðHð	Hûô ó LÜ Ø0°±Ð@óBØGKðLðLús   Á "B Á*B ÂBÂB:c           	      óà   • U R                  5       nUc  SnOU(       a  SnOSn[        U R                  U R                  U R                  U R
                  U R                  U R                  U5      $ )rà  r   r   r   )rð   rn   r$   r/   r8   rû   rü   rý   )r   rð   s     r   rž   Údatetime.timetupleY  sY   € à�h‰h‹jˆØ‰;Ø‰CÞØ‰CàˆCÜ! $§)¡)¨T¯Z©Z¸¿¹Ø"&§)¡)¨T¯[©[¸$¿+¹+Ø"%ó'ð 	'r   c                 ó`  ^
• [        SSS5      m
SnU T
-
  [        SS5      -  nU
4S jnU" U5      U-
  nX$-
  nU" U5      nXb:X  a'  XQ* U4U R                     -   nU" U5      U-
  nXH:X  a  U$ OXe-
  nXH:w  d   eX(-
  nU" U5      n	X’:X  a  U$ Xb:X  a  U$ [        [        4U R                     " XW5      $ )zReturn integer POSIX timestamp.é²  r   r  r   c                 óx   >• [         R                  " U 5      S S u  pp4pV[        XX4XV5      T-
  [        SS5      -  $ )Nrb   r   r   )rd   r¬  r   r   )Úur   rf   rg   rh   ri   rj   Úepochs          €r   ÚlocalÚdatetime._mktime.<locals>.localk  s>   ø€ Ü"'§/¢/°!Ó"4°R°aÐ"8ÑˆA�!˜Ü˜Q 1¨"Ó1°EÑ9¼iÈÈ1»oÑMÐMr   )r   r   rþ   ÚmaxrÞ  )r   rå  r­  r  r  Úu1Út1Úu2r  Út2r  s             @r   Ú_mktimeÚdatetime._mktimef  sÝ   ø€ ä˜˜q !Ó$ˆØ$ÐØ�E‰\œi¨¨1›oÑ-ˆõ	Nñ
 �!‹H�q‰LˆØ‰UˆÙ�2‹YˆØ‹7ð Ð(Ð*:Ð;¸D¿I¹IÑFÑFˆBÙ�b“	˜B‘ˆAØ‹vØ�	ð ð ‘ˆAØ“6ˆM�6Ø‰UˆÙ�2‹YˆØ‹7ØˆIØ‹7ØˆIô ”Sˆz˜$Ÿ)™)Ò$ RÓ,Ð,r   c                 óŒ   • U R                   c!  U R                  5       nXR                  S-  -   $ U [        -
  R	                  5       $ )zReturn POSIX timestamp as floatr  )rL  r  r�   Ú_EPOCHr7  r‘  s     r   rì  Údatetime.timestamp‰  s>   € à�<‰<ÑØ—‘“ˆAØ×'Ñ'¨#Ñ-Ñ-Ð-àœ6‘M×0Ñ0Ó2Ð2r   c           	      óà   • U R                  5       nU(       a  X-  n U R                  U R                  U R                  pCnU R                  U R
                  U R                  pvn[        X#XEXgS5      $ )z4Return UTC time tuple compatible with time.gmtime().r   )r‘   r$   r/   r8   rû   rü   rý   rn   )r   rò   r   rf   rg   rh   ri   rj   s           r   ÚutctimetupleÚdatetime.utctimetuple‘  sW   € à—‘Ó!ˆÞØ‰NˆDØ—)‘)˜TŸZ™Z¨¯©ˆaˆØ—Y‘Y §¡¨T¯[©[�ˆÜ! !¨¨r°qÓ9Ð9r   c                 óX   • [        U R                  U R                  U R                  5      $ )zReturn the date part.)r   r   r¡  r¢  r6  s    r   r   Údatetime.dateš  s   € ä�D—J‘J §¡¨T¯Y©YÓ7Ð7r   c                 ó€   • [        U R                  U R                  U R                  U R                  U R
                  S9$ )z'Return the time part, with tzinfo None.rN  )r   rû   rü   rý   r�   rþ   r6  s    r   r   Údatetime.timež  s.   € ä�D—I‘I˜tŸ{™{¨D¯K©K¸×9IÑ9IÐPT×PYÑPYÑZÐZr   c           	      ó–   • [        U R                  U R                  U R                  U R                  U R
                  U R                  S9$ )z'Return the time part, with same tzinfo.rN  )r   rû   rü   rý   r�   rL  rþ   r6  s    r   ÚtimetzÚdatetime.timetz¢  s6   € ä�D—I‘I˜tŸ{™{¨D¯K©K¸×9IÑ9IØ—L‘L t§y¡yñ2ð 	2r   c	                ó:  • Uc  U R                   nUc  U R                  nUc  U R                  nUc  U R                  nUc  U R                  nUc  U R
                  nUc  U R                  nUSL a  U R                  nU	c  U R                  n	[        U 5      " XX4XVXxU	S9	$ )z?Return a new datetime with new values for the specified fields.TrN  )
r$   r/   r8   rû   rü   rý   r�   r   rþ   rì   )
r   r$   r/   r8   rû   rü   rý   r�   r   rþ   s
             r   rš   Údatetime.replace§  s£   € ð ‰<Ø—9‘9ˆDØ‰=Ø—J‘JˆEØ‰;Ø—(‘(ˆCØ‰<Ø—9‘9ˆDØ‰>Ø—[‘[ˆFØ‰>Ø—[‘[ˆFØÑØ×*Ñ*ˆKØ�TŠ>Ø—[‘[ˆFØ‰<Ø—9‘9ˆDÜ�DŒz˜$ s°&Ø%°Dñ:ð 	:r   c                 ó‚  • U R                   cT  U R                  5       nU R                  SU R                  -
  S9R                  5       nX!:w  a  X!:„  U R                  :X  a  UnOU [        -
  [        SS9-  n[        R                  " U5      n[        US S 6 nUR                  nUR                  n[        [        US9U5      $ )Nr   rN  r?  rb   )r   r  rš   rþ   r  r   rd   r¬  r   Ú	tm_gmtoffÚtm_zoner   )r   ÚtsÚts2Úlocaltmr  ÚgmtoffÚzones          r   Ú_local_timezoneÚdatetime._local_timezoneÂ  s¨   € Ø�;‰;ÑØ—‘“ˆBà—,‘, A d§i¡i¡K�,Ð0×8Ñ8Ó:ˆCØ‹yØ‘H §¡Ó*Ø�Bøàœ‘-¤I°aÑ$8Ñ8ˆBÜ—/’/ "Ó%ˆÜ˜' " 1˜+Ð&ˆà×"Ñ"ˆØ�‰ˆÜœ	¨&Ñ1°4Ó8Ð8r   c                 ó   • Uc  U R                  5       nO [        U[        5      (       d  [        S5      eU R                  nUc"  U R                  5       nUR	                  U 5      nOBUR	                  U 5      nUc.  U R                  S S9R                  5       nUR	                  U 5      nXL a  U $ X-
  R                  US9nUR                  U5      $ )Nz)tz argument must be an instance of tzinfo©r   )r.  ré   r   rë   r‘   rš   r-  )r   r  r}  ÚmyoffsetrÖ   s        r   Ú
astimezoneÚdatetime.astimezoneÓ  sÄ   € Ø‰:Ø×%Ñ%Ó'‰BÜ˜B¤×'Ñ'ÜÐGÓHÐHà�{‰{ˆØ‰<Ø×'Ñ'Ó)ˆDØ—~‘~ dÓ+‰Hà—~‘~ dÓ+ˆHØÑØ—|‘|¨4�|Ð0×@Ñ@ÓB�ØŸ>™>¨$Ó/�àŠ:ØˆKð ‰×'Ñ'¨rÐ'Ð2ˆð �z‰z˜#‹Ðr   c                 óæ   • U R                  5       S-  =(       d    SnS[        U   [        U R                     U R                  U R
                  U R                  U R                  U R                  4-  $ )rÆ  rc   z%s %s %2d %02d:%02d:%02d %04d)	rÇ  rÈ  rÉ  r¡  r¢  rH  rI  rJ  r   rÊ  s     r   rË  Údatetime.ctimeî  s_   € à—.‘.Ó" QÑ&×+¨!ˆØ.Ü�gÑÜ˜Ÿ™Ñ$Ø�I‰IØ�J‰J˜Ÿ™ d§l¡lØ�J‰Jð2ñ ð 	r   c                 ó  • SU R                   U R                  U R                  U4-  [        U R                  U R
                  U R                  U R                  U5      -   nU R                  5       n[        U5      nU(       a  X5-  nU$ )a<  Return the time formatted according to ISO.

The full format looks like 'YYYY-MM-DD HH:MM:SS.mmmmmm'.
By default, the fractional part is omitted if self.microsecond == 0.

If self.tzinfo is not None, the UTC offset is also attached, giving
giving a full format of 'YYYY-MM-DD HH:MM:SS.mmmmmm+HH:MM'.

Optional argument sep specifies the separator between date and
time, default 'T'.

The optional argument timespec specifies the number of additional
terms of the time to include. Valid options are 'auto', 'hours',
'minutes', 'seconds', 'milliseconds' and 'microseconds'.
z%04d-%02d-%02d%c)
r   r¡  r¢  r~   rH  rI  rJ  rK  r‘   r‹   )r   rˆ   r{   r‰   r‡   r  s         r   r×  Údatetime.isoformatø  st   € ð    4§:¡:¨t¯{©{¸D¿I¹IÀsÐ"KÑKÜ˜$Ÿ*™* d§l¡l°D·L±LØ×+Ñ+¨Xó7ñ7ˆð �n‰nÓˆÜ˜CÓ ˆÞØ‰GˆAàˆr   c           
      ó  • U R                   U R                  U R                  U R                  U R                  U R
                  U R                  /nUS   S:X  a  US	 US   S:X  a  US	 [        U 5      < SU R                  R                  < SSR                  [        [        U5      5      < S3nU R                  b#  USS S:X  d   eUSS SU R                  -  -   S-   nU R                  (       a  USS S:X  d   eUSS S	-   nU$ )
rŽ  r   r   r'  r(  r)  r*  Nr�  r�  )r   r¡  r¢  rH  rI  rJ  rK  r   r   r+  r›   rÅ   rê   rL  rM  )r   ÚLr‰   s      r   r-  Údatetime.__repr__  sô   € à�Z‰Z˜Ÿ™ d§i¡iØ�Z‰Z˜Ÿ™ t§|¡|°T×5FÑ5FðHˆàˆR‰5�A‹:Ø�"�ØˆR‰5�A‹:Ø�"�Ü,¨TÖ2ØŸ>™>×6Ô6ØŸ9™9¤S¬¨a£[Ö1ð3ˆð �<‰<Ñ#Ø�R�S�6˜S“=Ð �=Ø�#�2�˜¨¯©Ñ5Ñ5¸Ñ;ˆAØ�:�:Ø�R�S�6˜S“=Ð �=Ø�#�2�˜Ñ$ˆAØˆr   c                 ó    • U R                  SS9$ )zConvert to string, for str().Ú r’   )r×  r6  s    r   r3  Údatetime.__str__&  s   € à�~‰~ #ˆ~Ð&Ð&r   c                 ó.   • SSK nUR                  XU5      $ )zKstring, format -> new datetime parsed from a string (like time.strptime()).r   N)Ú	_strptimeÚ_strptime_datetime)r  r½  rw   r@  s       r   ÚstrptimeÚdatetime.strptime*  s   € ó 	Ø×+Ñ+¨C¸fÓEÐEr   c                 óp   • U R                   c  gU R                   R                  U 5      n[        SU5        U$ )zTReturn the timezone offset as timedelta positive east of UTC (negative west of
UTC).Nr‘   rŸ  r   s     r   r‘   Údatetime.utcoffset0  r¢  r   c                 ón   • U R                   c  gU R                   R                  U 5      n[        U5        U$ r¤  r¥  r¦  s     r   r•   Údatetime.tzname9  r¨  r   c                 óp   • U R                   c  gU R                   R                  U 5      n[        SU5        U$ rª  r«  r   s     r   rð   Údatetime.dstF  r­  r   c                 ó^   • [        U[        5      (       a  U R                  USS9S:H  $ [        $ rn  ©ré   r   r   rG  rH  s     r   ru  Údatetime.__eq__W  s-   € Ü�eœX×&Ñ&Ø—9‘9˜U°�9Ð5¸Ñ:Ð:ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:*  $ [        $ rZ  rK  rH  s     r   ry  Údatetime.__le__]  ó)   € Ü�eœX×&Ñ&Ø—9‘9˜UÓ# qÑ(Ð(ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:  $ [        $ rZ  rK  rH  s     r   r|  Údatetime.__lt__c  ó)   € Ü�eœX×&Ñ&Ø—9‘9˜UÓ# aÑ'Ð'ä!Ð!r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:¬  $ [        $ rZ  rK  rH  s     r   r€  Údatetime.__ge__i  rO  r   c                 ó`   • [        U[        5      (       a  U R                  U5      S:„  $ [        $ rZ  rK  rH  s     r   rƒ  Údatetime.__gt__o  rR  r   c           
      óh  • [        U[        5      (       d   eU R                  nUR                  nS =pVX4L a  SnO‹U R                  5       nUR                  5       nU(       a`  XPR	                  U R
                  (       + S9R                  5       :w  a  gXaR	                  UR
                  (       + S9R                  5       :w  a  gXV:H  nU(       a¦  [        U R                  U R                  U R                  U R                  U R                  U R                  U R                  4UR                  UR                  UR                  UR                  UR                  UR                  UR                  45      $ Ub  Uc  U(       a  g[        S5      eX-
  nUR                  S:  a  gU=(       a    S=(       d    S$ )NTrN  r+   z(cannot compare naive and aware datetimesr   r   r   )ré   r   rL  r‘   rš   rþ   r   r   r¡  r¢  rH  rI  rJ  rK  rë   r†   )	r   rI  ro  r}  r~  r  r€  r�  Údiffs	            r   r   Údatetime._cmpu  sZ  € Ü˜%¤×*Ñ*Ð*Ð*Ø�|‰|ˆØ�}‰}ˆØÐˆàŠ<Ø‰Là—N‘NÓ$ˆEØ—O‘OÓ%ˆEæØŸL™L°$·)±)¬m˜LÐ<×FÑFÓHÓHØØŸM™M°5·:±:¬~˜MÐ>×HÑHÓJÓJØØ ™>ˆLæÜ˜Ÿ™ T§[¡[°$·)±)ØŸ™ T§\¡\°4·<±<Ø×*Ñ*ð,ð Ÿ™ e§l¡l°E·J±JØŸ™ e§m¡m°U·]±]Ø×+Ñ+ð-ó.ð .ð ‰=˜E™MÞØäÐ JÓKÐKà‰|ˆØ�9‰9�q‹=ØØ�z˜�˜QÐr   c                 ó  • [        U[        5      (       d  [        $ [        U R                  5       U R                  U R
                  U R                  U R                  S9nX!-  n[        UR                  S5      u  p4[        US5      u  pVSUR                  s=:  a
  [        ::  aY  O  OV[        U 5      R                  [        R                  UR                  5      [!        X5UUR"                  U R$                  S95      $ ['        S5      e)zAdd a datetime and a timedelta.rÔ   r  r  r   r1  rü  )ré   r   rG  rÇ  rH  rI  rJ  rK  rB   rr   r†   rý  rì   rÿ  r   r·  r   rt   rL  r  )r   rI  r,  rû   Úremrü   rý   s          r   rJ  Údatetime.__add__š  sÔ   € ä˜%¤×+Ñ+Ü!Ð!Ü˜$Ÿ.™.Ó*Ø $§
¡
Ø"&§,¡,Ø"&§,¡,Ø'+×'8Ñ'8ñ	:ˆð
 	‰ˆÜ˜5Ÿ=™=¨$Ó/‰	ˆÜ  R›‰ˆØˆu�z‰zÕ(œ[Ö(Ü˜“:×%Ñ%¤d×&6Ñ&6°u·z±zÓ&BÜ&*¨4¸Ø+0×+=Ñ+=Ø26·,±,ñ'@óAð Aô Ð1Ó2Ð2r   c                 ó`  • [        U[        5      (       d   [        U[        5      (       a  X* -   $ [        $ U R	                  5       nUR	                  5       nU R
                  U R                  S-  -   U R                  S-  -   nUR
                  UR                  S-  -   UR                  S-  -   n[        X#-
  XE-
  U R                  UR                  -
  5      nU R                  UR                  L a  U$ U R                  5       nUR                  5       nXx:X  a  U$ Ub  Uc  [        S5      eXh-   U-
  $ )z6Subtract two datetimes, or a datetime and a timedelta.r  r  z(cannot mix naive and timezone-aware time)ré   r   r   rG  rÇ  rJ  rI  rH  rK  rL  r‘   rë   )	r   rI  r  r  Úsecs1Úsecs2Úbaser  r€  s	            r   rN  Údatetime.__sub__¯  s  € ä˜%¤×*Ñ*Ü˜%¤×+Ñ+Ø˜f‘}Ð$Ü!Ð!à—‘Ó ˆØ—‘Ó!ˆØ—‘˜tŸ|™|¨bÑ0Ñ0°4·:±:ÀÑ3DÑDˆØ—‘ §¡°Ñ 2Ñ2°U·[±[À4Ñ5GÑGˆÜ˜™Ø™Ø×*Ñ*¨U×-?Ñ-?Ñ?óAˆð �<‰<˜5Ÿ=™=Ò(ØˆKØ—‘Ó ˆØ—‘Ó!ˆØ‹>ØˆKØ‰=˜E™MÜÐFÓGÐGØ‰|˜eÑ#Ð#r   c                 óü  • U R                   S:X  aá  U R                  (       a  U R                  SS9nOU nUR                  5       nUc-  [	        UR                  5       S   5      U l         U R                   $ [        U R                  U R                  U R                  5      nU R                  S-  U R                  S-  -   U R                  -   n[	        [        X4U R                  5      U-
  5      U l         U R                   $ )Nr   r   rN  r  r  )r  rþ   rš   r‘   rŠ  r†  r:   r$   r/   r8   rû   rü   rý   r   r�   )r   r­  r‡  r†   rr   s        r   r‹  Údatetime.__hash__Ç  sÇ   € Ø�>‰>˜RÓØ�y�yØ—L‘L a�LÐ(‘à�Ø—K‘K“MˆEØ‰}Ü!% a§k¡k£m°AÑ&6Ó!7�”ð
 �~‰~Ðô   §	¡	¨4¯:©:°t·x±xÓ@�ØŸ)™) dÑ*¨T¯[©[¸2Ñ-=Ñ=ÀÇÁÑK�Ü!%¤i°¸t×?OÑ?OÓ&PÐSXÑ&XÓ!Y�”Ø�~‰~Ðr   c                 ó|  • [        U R                  S5      u  p#[        U R                  S5      u  pE[        US5      u  pdU R                  nU R                  (       a  US:”  a  US-  n[        X#XpR                  U R                  U R                  U R                  XdU/
5      nU R                  c  U4$ X€R                  4$ r±  )rB   r   rK  r¡  rM  r¥  r¢  rH  rI  rJ  rL  )	r   r³  r  r  r´  rµ  r¶  rf   r·  s	            r   r†  Údatetime._getstateØ  s¥   € Ü˜$Ÿ*™* cÓ*‰ˆÜ˜$×+Ñ+¨SÓ1‰ˆÜ˜#˜sÓ#‰ˆØ�K‰KˆØ�:�:˜( Q›,Ø�‰HˆAÜ˜3 Q¯	©	ØŸ:™: t§|¡|°T·\±\Ø Sð*ó +ˆ	ð �<‰<ÑØ�<ÐàŸ|™|Ð,Ð,r   c           
      ó  • Ub   [        U[        5      (       d  [        S5      eUu
  p4oPl        U l        U l        U l        pgnUS:”  a  SU l        US-
  U l        OSU l        XPl        US-  U-   U l	        US-  U-  S-  U-  U l
        X l        g )Nrº  rP  r   r²  r   r  r¯   )ré   r»  rë   r¢  rH  rI  rJ  rM  r¡  r   rK  rL  )	r   r  r   r  r  rf   r¶  r´  rµ  s	            r   r  Údatetime.__setstateç  s“   € ØÑ¤j°¼×&GÑ&GÜÐ2Ó3Ð3à6<ñ	4ˆ�1”i ¤Ø	Œ�t”| S¨sØˆs‹7ØˆDŒJØ˜c™'ˆD�KàˆDŒJØŒKØ˜3‘Y ‘_ˆŒ
Ø" a™x¨3Ñ.°1Ñ4¸Ñ;ˆÔØ�r   c                 ó<   • U R                   U R                  U5      4$ rE  r“  r¾  s     r   r¿  Údatetime.__reduce_ex__ö  rÁ  r   c                 ó$   • U R                  S5      $ r?  rÃ  r6  s    r   r”  Údatetime.__reduce__ù  rÅ  r   )
r¢  rM  r  rH  rK  rI  r¡  rJ  rL  r   )NNr   r   r   r   NrE  )T)NNNNNNNT)r–  ru   rÇ  rÉ  )8r—  r   r+  r˜  r™  r   rš  r  r›  rû   rü   rý   r�   r   rþ   r  ré  r°  rô  r÷  rú  rÿ  r¾  rž   r  rì  r  r   r"  rš   r  r.  r3  rË  r×  r-  r3  rB  r‘   r•   rð   ru  ry  r|  r€  rƒ  r   rJ  rœ  rN  r‹  r†  rÌ  r¿  r”  rž  r   r   r   r   r   �  sû  † ñð
 —‘€IàJKØ&*ð!Ø45ö!ðH ñó ðð ñó ðð ñó ðð ñ!ó ð!ð ñó ðð ñó ðð ñ)ó ð)ðV óAó ðAð ñ	1ó ð	1ð ó(ó ð(ð
 ñ
1ó ð
1ð ó
+ó ð
+ð ñ9ó ð9ò<'ò -òF3ò:ò8ò[ò2ð
 =AØCGð:àö:ð2 €Kò9ô"ò6ôò6ò&'ð ñFó ðFò
òòò""ò"ò"ò"ò"ô#òJ3ð& €Hò$ò0ô"-òò:õ%r   r   c                 óP   • Sn[        U SS5      nUS-   S-  nX#-
  nX1:”  a  US-  nU$ )Nr?   r   rb   rc   )r:   )r$   ÚTHURSDAYÚfirstdayÚfirstweekdayr  s        r   rá   rá   	  sA   € à€HÜ˜˜a Ó#€HØ˜q‘L AÑ%€LØÑ)€KØÓØ�qÑˆØÐr   c                   ó¦   • \ rS rSrSr\" 5       r\4S jrS r\	SS j5       r
S rS rS	 rS
 rS rS rS rS rS r\" SSS9r\* r\S 5       rSrg)r   i	  )Ú_offsetÚ_namec                 óH  • [        U[        5      (       d  [        S5      eX R                  L a  U(       d  U R                  $ S nO [        U[
        5      (       d  [        S5      eU R                  Us=::  a  U R                  ::  d  O  [        S5      eU R                  X5      $ )Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).)
ré   r   rë   Ú_OmittedrÖ   rê   Ú
_minoffsetÚ
_maxoffsetry   Ú_create)r  rò   rí   s      r   r  Útimezone.__new__	  s‡   € Ü˜&¤)×,Ñ,ÜÐ8Ó9Ð9Ø—<‘<ÒÞØ—w‘w�Ø‰DÜ˜D¤#×&Ñ&ÜÐ3Ó4Ð4Ø�~‰~ Õ9¨3¯>©>Õ9Üð 4ó 5ð 5ð �{‰{˜6Ó(Ð(r   c                 ó   • [        S5      e)Nz7type 'datetime.timezone' is not an acceptable base type)rë   )r  s    r   Ú__init_subclass__Útimezone.__init_subclass__!	  s   € ÜÐQÓRÐRr   Nc                 óH   • [         R                  U 5      nXl        X#l        U$ rE  )r   r  rq  rr  )r  rò   rí   r   s       r   rw  Útimezone._create$	  s   € ä�~‰~˜cÓ"ˆØŒØŒ
Øˆr   c                 óf   • U R                   c  U R                  4$ U R                  U R                   4$ )zpickle support©rr  rq  r6  s    r   r0  Útimezone.__getinitargs__+	  s+   € à�:‰:ÑØ—L‘L�?Ð"Ø—‘˜dŸj™jÐ)Ð)r   c                 ój   • [        U[        5      (       a  U R                  UR                  :H  $ [        $ rE  )ré   r   rq  rG  rH  s     r   ru  Útimezone.__eq__1	  s(   € Ü�eœX×&Ñ&Ø—<‘< 5§=¡=Ñ0Ð0ÜÐr   c                 ó,   • [        U R                  5      $ rE  )rŠ  rq  r6  s    r   r‹  Útimezone.__hash__6	  s   € Ü�D—L‘LÓ!Ð!r   c                 ó*  • X R                   L a  gU R                  c5  [        U 5      < SU R                  R                  < SU R
                  < S3$ [        U 5      < SU R                  R                  < SU R
                  < SU R                  < S3$ )z×Convert to formal string, for repr().

>>> tz = timezone.utc
>>> repr(tz)
'datetime.timezone.utc'
>>> tz = timezone(timedelta(hours=-5), 'EST')
>>> repr(tz)
"datetime.timezone(datetime.timedelta(-1, 68400), 'EST')"
zdatetime.timezone.utcr'  r(  r*  r)  )rÖ   rr  r   r   r+  rq  r6  s    r   r-  Útimezone.__repr__9	  so   € ð —8‘8ÒØ*Ø�:‰:ÑÜ"3°DÖ"9Ø"&§.¡.×"=Ô"=Ø"&§,¤,ð0ð 0ô #4°DÖ"9Ø"&§.¡.×"=Ô"=Ø"&§,¤,°·
´
ð<ð 	<r   c                 ó$   • U R                  S 5      $ rE  )r•   r6  s    r   r3  Útimezone.__str__M	  s   € Ø�{‰{˜4Ó Ð r   c                 ó`   • [        U[        5      (       d  Uc  U R                  $ [        S5      e)Nz8utcoffset() argument must be a datetime instance or None)ré   r   rq  rë   r"  s     r   r‘   Útimezone.utcoffsetP	  s/   € Ü�bœ(×#Ñ# r¡zØ—<‘<ÐÜð #ó $ð 	$r   c                 ó°   • [        U[        5      (       d  Uc4  U R                  c  U R                  U R                  5      $ U R                  $ [        S5      e)Nz5tzname() argument must be a datetime instance or None)ré   r   rr  Ú_name_from_offsetrq  rë   r"  s     r   r•   Útimezone.tznameV	  sN   € Ü�bœ(×#Ñ# r¡zØ�z‰zÑ!Ø×-Ñ-¨d¯l©lÓ;Ð;Ø—:‘:ÐÜð #ó $ð 	$r   c                 óJ   • [        U[        5      (       d  Uc  g [        S5      e)Nz2dst() argument must be a datetime instance or None)ré   r   rë   r"  s     r   rð   Útimezone.dst^	  s(   € Ü�bœ(×#Ñ# r¡zØÜð #ó $ð 	$r   c                 ó’   • [        U[        5      (       a(  UR                  U La  [        S5      eXR                  -   $ [        S5      e)Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)ré   r   r   ry   rq  rë   r"  s     r   r-  Útimezone.fromutcd	  sL   € Ü�bœ(×#Ñ#Ø�y‰y Ò$Ü ð "/ó 0ð 0àŸ™Ñ$Ð$Üð #ó $ð 	$r   r@   r   )rp   rt   c           
      ó@  • U (       d  gU [        S5      :  a  SnU * n OSn[        U [        SS95      u  p#[        U[        SS95      u  pCUR                  nUR                  nU(       a  SU US S	US S	US S
US 3	$ U(       a  SU US S	US S	US 3$ SU US S	US 3$ )Nr
   r   r�   r‚   r   rƒ   r„   Ú02dr“   r'  Ú06d)r   rB   rr   rt   )r,  rŠ   rp   Úrestrq   rr   rt   s          r   rŒ  Útimezone._name_from_offsetp	  sÔ   € æØØ”9˜Q“<ÓØˆDØ�F‰EàˆDÜ˜U¤I°AÑ$6Ó7‰ˆÜ˜t¤Y°qÑ%9Ó:‰ˆØ—,‘,ˆØ×(Ñ(ˆÞØ˜$˜  c˜{¨!¨G°C¨=¸¸'À#¸Ø˜ SÐ)ð+ð ,æØ˜˜˜u S˜k¨¨7°3¨-°q¸À¸ÐFÐFØ�T�F˜5 ˜+ Q w¨s mÐ4Ð4r   r  rE  )r—  r   r+  r˜  rš  r�   rt  r  rz  r  rw  r0  ru  r‹  r-  r3  r‘   r•   rð   r-  r   rv  ru  ÚstaticmethodrŒ  rž  r   r   r   r   r   	  s†   † Ø"€Iñ ‹x€HØ"*ô )òSð óó ðò*òò
"ò<ò(!ò$ò$ò$ò$ñ  °"Ñ5€JØ�€Jàñ5ó ó5r   r   r†  r
  r1  rÈ  )r“   )Cr™  Ú__all__r   rd   Úmathr  rß  Úoperatorr   rõ   r   r   r   r	   rý  r-   r3   Údbmr9   r–   r%   r(   r0   r4   r:   rC   rD   rE   rM   rÉ  rÈ  rn   r~   r‹   r¨   r¬   r·   rÁ   rÆ   rÎ   rÞ   r¼   rî   ró   rö   rÿ   r  r	  r   rÞ  r  Ú
resolutionr   rý  r   rB  r5  r  r»  rþ  r   rá   r   rw  r
   rÖ   r  r   r   r   Ú<module>r�     s  ðñð(€ó Û Û 
Ý $ò/òð €Ø
€Ø€ò F€à�TÐ Ø€Ø˜!˜"Ó€CØ×Ñ˜cÔ"Øˆ3�J‚Cñ ð ˆòBò*ò
!òFò
ñ ˜CÓ
 €Ù
˜CÓ
 €Ù
˜AÓ
€ð �ÓÐ Ðð �!�g‘+ ‘/Ó!Ð !Ð!ð �"�u‘*˜q‘.Ó Ð  Ð ò<ò~?€âC€	òIô
*ô*ò&@0òFò6òr!"òH 6Ð ò-ò^,ò^òB1ò
)òò3ò"Pò÷(|2ñ |2ñ|	 ˜*Ó%€	„Ù˜y°¸BÈØ'-ñ/€	„á ¨aÑ0€	Ô ÷B2ñ B2ðH
 €á��1�a‹=€„Ù��b˜"Ó€„Ù Ñ#€„÷:;ñ :;ôzH�eô Hð6 #Ð ØØ€÷Z%ñ Z%ðx
 €á��1�a‹=€„Ù��B˜˜FÓ#€„Ù¨Ñ+€„ôk	%ˆtô k	%ñ\ ˜˜1˜aÓ €„Ù˜˜b " b¨"¨b°&Ó9€„Ù¨QÑ/€Ô òôu5ˆvô u5ðn ×%Ñ%¡i°£lÓ3Ð 3€€h„lð
 ×Ñ¡°¸RÑ!@Ð @ÓA€„Ø×Ñ¡	°¸BÑ ?Ó@€„Ù	�$˜˜1 X§\¡\Ñ	2�r   