D,bi]SSKrSSKrSSjrSSjrSrSrSr\RR\RRSS55SSr \ 4S jr C S r "S S \ 5rS q\"SS9 g)NcJUnUb[U[[45(a[SS[ U5SU<3-5eUVs/sHn[ R "U5PM nn[SU55(d [S5e[[[ RRU55(d[[U55eUnOD[ RRSS5nUc[R "S5n[#XQ5n[%U5qgs snf)Nz!tzpaths must be a list or tuple, znot z: c3B# UHn[U[5v M g7fN) isinstancestr).0ps 7/opt/alt/python313/lib64/python3.13/zoneinfo/_tzpath.py _reset_tzpath..s7w!:a%%wszbAll elements of a tzpath sequence must be strings or os.PathLike objects which convert to strings. PYTHONTZPATHTZPATH)rrbytes TypeErrortypeosfspathallmappathisabs ValueError_get_invalid_paths_messageenvironget sysconfigget_config_var_parse_python_tzpathtupler)to stackleveltzpathsr base_tzpathenv_vars r _reset_tzpathr%sG gU| , ,3gr'56  *11A299Q<17w777@  3rww}}g.//7@A A **..6 ?..x8G*7? ; F!2s D c[U5 g)zReset global TZPATH.N)r%)r s r reset_tzpathr'#s "c,U(dgUR[R5n[[ [R R U55n[U5[U5:wa'SSKn[U5nURSU-[US9 U$)Nrz>Invalid paths specified in PYTHONTZPATH environment variable. r!) splitrpathseprfilterrrlenwarningsrwarnInvalidTZPathWarning)r$r! raw_tzpath new_tzpathr0msgs r rr+s| rzz*JvbggmmZ89J :#j/)(4 L  !   r(cHSU5nSnX"RU5-nSU-$)Nc3r# UH-n[RRU5(aM)Uv M/ g7fr)rrr)rrs r r -_get_invalid_paths_message..Cs!IgdRWW]]45HTTgs(7 7z z@Paths should be absolute but found the following relative paths:)join)r" invalid_pathsprefix indented_strs r rrBs5IgIM FKK 66L K  r(c[U5 [HJn[RR X5n[RR U5(dMHUs $ g)z,Retrieve the path to a TZif file from a key.N)_validate_tzfile_pathrrrr9isfile)key search_pathfilepaths r find_tzfilerCNsC# 77<< 1 77>>( # #O r(_c[RRU5(a[SU35e[RR U5n[ U5[ U5:wa[SU35e[RR [RR X55nURU5(d[SU35eg)Nz.ZoneInfo keys may not be absolute paths, got: z6ZoneInfo keys must be normalized relative paths, got: z;ZoneInfo keys must refer to subdirectories of TZPATH, got: )rrrrnormpathr/r9 startswith)r_basenew_pathresolveds r r>r>\s ww}}TH   u % %I$ P   &r(cSSKJn [5nURS5R S5nUR SSS9nUH-nUR 5nU(dMURU5 M/ SSS5 S n[GH$n[RRU5(dM*[R"U5Hupxn Xv:Xa.S U;aURS 5 S U;aURS 5 U Hn [RR!Xz5n [RR#XS 9n [R$S :wa U R'[R$S 5n U (aX;aMU"U 5(dMURU 5 M M GM' SU;aURS5 U$!,(df  GNZ=f![[4a GNpf=f)aReturns a set containing all available time zones. .. caution:: This may attempt to open a large number of files, since the best way to determine if a given file on the time zone search path is to open it and check for the "magic string" at the beginning. r) resourcestzdatazonesrzutf-8)encodingNc[US5nURS5S:HsSSS5 $!,(df  g=f![a gf=f)NrbsTZifF)openread Exception)fpathfs r valid_key&available_timezones..valid_keys@ eT"avvayG+#""  s# =, = :== A  A rightposix)start/ posixrules) importlibrMsetfilesjoinpathrUstripadd ImportErrorFileNotFoundErrorrrrexistswalkremover9relpathsepreplace) rM valid_zones zones_filerYzonerZtz_rootrootdirnamesrcfilerXr@s r available_timezonesrvvs$%K __X.77@ __S7_ 3qzz|4OOD)46ww~~g&& %'WWW%5 !DEh&OOG,h&OOG, T0ggooeo;66S=++bffc2Cc0U##OOC(&6 4{" <( ]4 3 * +   s50GG !G 6G GGGG/.G/c\rSrSrSrSrg)r2z?Warning raised if an invalid path is specified in PYTHONTZPATH.r*N)__name__ __module__ __qualname____firstlineno____doc____static_attributes__r*r(r r2r2sIr(r2r*r+)NrTr)rrr%r'rrrCrrGr9 _TEST_PATHr>rvRuntimeWarningr2rr*r(r rs  <. WW  bggll34 5cr : '1 .?DJ>J  r(