+
    öÙ†j}I  ã                   ó0  € R t RtRtRtRtRtRtRtRt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RI5 . R	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NtR3 tR4 tR5 tR6 tR7 tR8 t]P*                  P                   ]n         R9 t ^ R:IHt R< tR= tR> tR? tR@tRs Rs!RA t" ^ RBIH#t$ RD t%RERF/RG lt&]PN                  RH8H  t(RKRI lt)RJ t*R#   ] d    R; t LKi ; i  ] d    RC t$ L?i ; i)LaÙ  Common operations on Posix pathnames.

Instead of importing this module directly, import os and refer to
this module as os.path.  The "os.path" name is an alias for this
module on Posix systems; on other systems (e.g. Windows),
os.path provides the same operations in a manner specific to that
platform, and is an alias to another module (e.g. ntpath).

Some of this can actually be useful on non-Posix systems too, e.g.
for manipulation of the pathname component of URLs.
Ú.ú..Ú/Ú:z/bin:/usr/binNz	/dev/null)Ú*ÚnormcaseÚisabsÚjoinÚ
splitdriveÚ	splitrootÚsplitÚsplitextÚbasenameÚdirnameÚcommonprefixÚgetsizeÚgetmtimeÚgetatimeÚgetctimeÚislinkÚexistsÚlexistsÚisdirÚisfileÚismountÚ
expanduserÚ
expandvarsÚnormpathÚabspathÚsamefileÚsameopenfileÚsamestatÚcurdirÚpardirÚsepÚpathsepÚdefpathÚaltsepÚextsepÚdevnullÚrealpathÚsupports_unicode_filenamesÚrelpathÚ
commonpathÚ
isjunctionÚ
isdevdriveÚALLOW_MISSINGc                 ó6   € \        V \        4      '       d   R # R# )ó   /r   )Ú
isinstanceÚbytes©Úpaths   &Ú /usr/lib/python3.14/posixpath.pyÚ_get_sepr8   *   s   € Ü�$œ×ÒÙáó    c                ó.   € \         P                  ! V 4      # )z6Normalize case of pathname.  Has no effect under Posix©ÚosÚfspath)Úss   &r7   r   r   5   s   € ä�9Š9�Q‹<Ðr9   c                óf   € \         P                  ! V 4      p \        V 4      pV P                  V4      # )zTest whether a path is absolute)r<   r=   r8   Ú
startswith)r>   r$   s   & r7   r   r   =   s'   € ä
�	Š	�!‹€AÜ
�1‹+€CØ�<‰<˜ÓÐr9   c                óš  € \         P                  ! V 4      p \        V 4      pT p V Fl  p\         P                  ! V4      pVP                  V4      '       g	   V'       g   TpK<  VP	                  V4      '       d   W4,          pK]  W2V,           ,          pKn  	  V#   \
        \        \        3 d    \        P                  ! RT .TO5!   h i ; i)zÚJoin two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded.  An empty last part will result in a path that
ends with a separator.r	   )
r<   r=   r8   r@   ÚendswithÚ	TypeErrorÚAttributeErrorÚBytesWarningÚgenericpathÚ_check_arg_types)ÚaÚpr$   r6   Úbs   &*   r7   r	   r	   H   s©   € ô
 	�	Š	�!‹€AÜ
�1‹+€CØ€DðÛˆAÜ—	’	˜!“ˆAØ�|‰|˜C× Ò ¯Ø’Ø—‘˜s×#Ò#Ø•	’à˜a�•’ñ ð €Køô ”~¤|Ð4ô Ü×$Ò$ V¨QÐ3°Ô3Øðús   ¥9B ÁB Á:B Â1C
c                óè   € \         P                  ! V 4      p \        V 4      pV P                  V4      ^,           pV RV WR rCV'       d(   W1\	        V4      ,          8w  d   VP                  V4      pW43# )z|Split a pathname.  Returns tuple "(head, tail)" where "tail" is
everything after the final slash.  Either part may be empty.N©r<   r=   r8   ÚrfindÚlenÚrstrip)rI   r$   ÚiÚheadÚtails   &    r7   r   r   d   sc   € ô 	�	Š	�!‹€AÜ
�1‹+€CØ	�‰�‹�qÕ€AØ�2�A�˜˜"˜ˆ$ß�œC ›I�Ô%Ø�{‰{˜3ÓˆØˆ:Ðr9   c                 óœ   € \         P                  ! V 4      p \        V \        4      '       d   R pRpMRpRp\        P
                  ! WRV4      # )r2   ó   .r   r   N)r<   r=   r3   r4   rF   Ú	_splitext)rI   r$   r(   s   &  r7   r   r   u   sE   € Ü
�	Š	�!‹€AÜ�!”U×ÒØˆØ‰àˆØˆÜ× Ò  ¨¨vÓ6Ð6r9   c                óD   € \         P                  ! V 4      p V R,          V 3# )zFSplit a pathname into drive and path. On Posix, drive is always
empty.ºNé    Nr;   )rI   s   &r7   r
   r
   ƒ   s   € ô 	�	Š	�!‹€AØˆR�5�!ˆ8€Or9   )Ú_path_splitroot_exc                ó  € \         P                  ! V 4      p \        V \        4      '       d   RpRpMRpRpV R,          V8w  d   W"V 3# V R,          V8w  g   V R,          V8X  d   W!V R,          3# W R	,          V R
,          3# )zWSplit a pathname into drive, root and tail.

The tail contains anything after the root.r2   r9   r   Ú :Né   N:r\   é   N:r]   é   N:r\   NN:Nr]   N:r]   NN)r<   r=   r3   r4   )rI   r$   Úemptys   &  r7   r   r   �   s€   € ô �IŠI�a‹LˆÜ�aœ×ÒØˆCØ‰EàˆCØˆEØˆR�5�CŒ<à �?Ð"Øˆs�V�sŒ]˜a �f¨œmà˜q �uÐ$Ð$ð ˜B�%  2¥Ð&Ð&r9   c                ó|   € \         P                  ! V 4      p \        V 4      pV P                  V4      ^,           pWR # )z)Returns the final component of a pathnameN)r<   r=   r8   rM   )rI   r$   rP   s   &  r7   r   r   ¦   s3   € ä
�	Š	�!‹€AÜ
�1‹+€CØ	�‰�‹�qÕ€AØˆRˆ5€Lr9   c                óà   € \         P                  ! V 4      p \        V 4      pV P                  V4      ^,           pV RV pV'       d(   W1\	        V4      ,          8w  d   VP                  V4      pV# )z-Returns the directory component of a pathnameNrL   )rI   r$   rP   rQ   s   &   r7   r   r   °   sX   € ä
�	Š	�!‹€AÜ
�1‹+€CØ	�‰�‹�qÕ€AØˆRˆaˆ5€Dß�œC ›I�Ô%Ø�{‰{˜3ÓˆØ€Kr9   c                ój  €  \         P                  ! V 4      p\        P                  ! VP                  4      '       d   R#  \         P                  ! T 4      p \        T \        4      '       d   \        T R4      pM\        T R4      p \         P                  ! T4      pTP                  TP                  8g  ;'       g    TP                  TP                  8H  #   \
        \        3 d     R# i ; i  \
         d9    \        T4      p \         P                  ! T4      p L�  \
         d      R# i ; ii ; i)z$Test whether a path is a mount pointFó   ..r   )r<   ÚlstatÚstatÚS_ISLNKÚst_modeÚOSErrorÚ
ValueErrorr=   r3   r4   r	   r*   Úst_devÚst_ino)r6   Ús1ÚparentÚs2s   &   r7   r   r   ¾   sú   € ðÜ�XŠX�d‹^ˆô �<Š<˜Ÿ
™
×#Ò#Ùð $ô �9Š9�T‹?€DÜ�$œ×ÒÜ�d˜EÓ"‰ä�d˜DÓ!ˆðÜ�XŠX�fÓˆð �9‰9˜Ÿ	™	Ñ!×;Ð; R§Y¡Y°"·)±)Ñ%;Ð;øô/ ”ZÐ ô âðûô ô Ü˜&Ó!ˆð	Ü—’˜&Ó!ŠBøÜô 	Ûð	úð	ús;   ‚C ÂC/ ÃC,Ã+C,Ã/D2ÄDÄD.Ä)D2Ä-D.Ä.D2c                óà  € \         P                  ! V 4      p \        V \        4      '       d   RpMRpV P	                  V4      '       g   V # \        V 4      pV P                  V^4      pV^ 8  d   \        V 4      pV^8X  dc   R\         P                  9  d6    ^ RI	p TP                  \         P                  ! 4       4      P                  pMl\         P                  R,          pMT ^ RI	pT ^T p\        T\        4      '       d   \         P                  ! T4      p TP!                  T4      pTP                  pVf   \"        P$                  R8X  d   V # \        V \        4      '       d   \         P&                  ! V4      pVP)                  V4      pWPVR ,           ;'       g    T#   \         d    T u # i ; i  \         d    T u # i ; i  \         d    T u # i ; i  \         d    T u # i ; i)zKExpand ~ and ~user constructions.  If user or $HOME is unknown,
do nothing.ó   ~Ú~ÚHOMENÚvxworks)r<   r=   r3   r4   r@   r8   ÚfindrN   ÚenvironÚpwdÚImportErrorÚgetpwuidÚgetuidÚpw_dirÚKeyErrorÚfsdecodeÚgetpwnamÚsysÚplatformÚfsencoderO   )r6   Útilder$   rP   rv   ÚuserhomeÚnameÚpwents   &       r7   r   r   å   s­  € ô �9Š9�T‹?€DÜ�$œ×ÒØ‰àˆØ�?‰?˜5×!Ò!ØˆÜ
�4‹.€CØ�	‰	�#�qÓ€AØˆ1„uÜ�‹IˆØˆA„vØœŸ™Ô#ðÛðØŸ<™<¬¯	ª	«Ó4×;Ñ;‘ô —z‘z &Õ)‰Hð	Ûð �A�aˆyˆÜ�dœE×"Ò"Ü—;’;˜tÓ$ˆDð	Ø—L‘L Ó&ˆEð
 —<‘<ˆàÒœCŸL™L¨IÔ5ØˆÜ�$œ×ÒÜ—;’;˜xÓ(ˆØ�‰˜sÓ#€HØ˜A˜B�xÕ×'Ð' CÐ'øôC ô à’ðûô
 ô ð ’ðûô ô 	àŠKð	ûô ô 	ð ŠKð	úsH   ÂF$ Â.F7 Ã$G
 ÄG Æ$F4Æ3F4Æ7GÇGÇ
GÇGÇG-Ç,G-z\$(\w+|\{[^}]*\}?)c                ó  aaa€ \         P                  ! V 4      p \        V \        4      '       dn   RV 9  d   V # \        '       g=   ^ RIpVP                  \        P                  4       VP                  4      P                  s\        pRoRo\        \         RR4      oM]RV 9  d   V # \        '       g/   ^ RIpVP                  \        VP                  4      P                  s\        pRoRo\         P                  oVVV3R	 lpV! W04      # )
zVExpand shell variables of form $var and ${var}.  Unknown variables
are left unchanged.ó   $Nó   {ó   }ÚenvironbÚ$Ú{Ú}c                 óf  <€ V ^,          pVP                  S4      '       d&   VP                  S4      '       g
   V ^ ,          # V^R p SfB   \        P                  ! \        P                  \        P
                  ! V4      ,          4      pV# SV,          p V#   \         d    T ^ ,          u # i ; i)r\   éÿÿÿÿ)r@   rB   r<   r€   ru   r|   r{   )Úmrƒ   ÚvalueÚendru   Ústarts   &  €€€r7   ÚreplÚexpandvars.<locals>.repl=  s›   ø€ Ø��tˆØ�?‰?˜5×!Ò!Ø—=‘= ×%Ò%Ø˜•t�Ø˜˜"�:ˆDð	ØŠÜŸš¤B§J¡J¬r¯{ª{¸4Ó/@Õ$AÓB�ð ˆLð	   �‘ð ˆLøô ô 	Ø�Q•4ŠKð	ús   ÁAB Â	B ÂB0Â/B0)r<   r=   r3   r4   Ú_varsubbÚreÚcompileÚ_varpatternÚencodeÚASCIIÚsubÚgetattrÚ_varsubru   )r6   r–   r›   r“   r‘   ru   r’   s   &   @@@r7   r   r   #  sË   ú€ ô �9Š9�T‹?€Dä�$œ×ÒØ�tÔØˆKß‹xÛØ—z‘z¤+×"4Ñ"4Ó"6¸¿¹ÓA×EÑEˆHÜˆØˆØˆÜœ"˜j¨$Ó/‰à�dŒ?ØˆKß‹wÛØ—j‘j¤¨b¯h©hÓ7×;Ñ;ˆGÜˆØˆØˆÜ—*‘*ˆ÷ñ  ˆt‹?Ðr9   )Ú_path_normpathc                óø  € \         P                  ! V 4      p \        V \        4      '       d   RpRpRpMRpRpRpV '       g   V# \	        V 4      w  rEp V P                  V4      p. pV Fl  pV'       d   W‚8X  d   K  Wƒ8w  g'   V'       g	   V'       d   V'       d"   VR,          V8X  d   VP                  V4       KR  V'       g   K\  VP                  4        Kn  	  TpWQP                  V4      ,           p T ;'       g    T# )z0Normalize path, eliminating double slashes, etc.r2   rT   rc   r   r   r   rŽ   )	r<   r=   r3   r4   r   r   ÚappendÚpopr	   )	r6   r$   ÚdotÚdotdotÚ_Úinitial_slashesÚcompsÚ	new_compsÚcomps	   &        r7   r   r   X  sÌ   € ä�yŠy˜‹ˆÜ�dœE×"Ò"ØˆCØˆCØ‰FàˆCØˆCØˆFßØˆJÜ#,¨T£?Ñ ˆ˜DØ—
‘
˜3“ˆØˆ	ÛˆDß˜4œ;ÙØ”§¿yß 	¨"¥°Ô 7Ø× Ñ  Ö&ß‘Ø—‘–ñ ð ˆØ§¡¨%£Õ0ˆØ�{ˆ{�sÐr9   c                óJ  € \         P                  ! V 4      p \        V \        4      '       d8   V P	                  R4      '       g    \        \         P                  ! 4       V 4      p M6V P	                  R4      '       g    \        \         P                  ! 4       V 4      p \        V 4      # )zReturn an absolute path.r2   r   )	r<   r=   r3   r4   r@   r	   ÚgetcwdbÚgetcwdr   r5   s   &r7   r   r   u  si   € ä�9Š9�T‹?€DÜ�$œ×ÒØ�‰˜t×$Ò$ÜœŸ
š
› dÓ+ˆDøà�‰˜s×#Ò#ÜœŸ	š	› TÓ*ˆDÜ�D‹>Ðr9   ÚstrictFc               óê  € \         P                  ! V 4      p \        V \        4      '       d   RpRpRp\         P                  pMRpRpRp\         P
                  pV\        J d
   \        pRpMV'       d   R	pM\        p\         P                  p\         P                  pRp	V P                  V4      RRR
1,          p
\        V
4      pV P                  V4      '       d   TMV! 4       p/ p^ pV'       Edo   V
P                  4       pVf   WÍV
P                  4       &   K1  V^,          pV'       d   Wó8X  d   KJ  Wô8X  d!   VRVP                  V4       ;'       g    TpKp  WÂ8X  d
   WÏ,           pMWÂ,           V,           p V! V4      P                   p\"        P$                  ! V4      '       go   V'       db   V'       dZ   \"        P&                  ! V4      '       g>   \        \(        P*                  \         P,                  ! \(        P*                  4      V4      hTpEK+  V	e[   V^,          pWé8”  dK   V'       d>   \        \(        P.                  \         P,                  ! \(        P.                  4      V4      hTpEKˆ  MaVV9   d[   VV,          pVe   EK   V'       d>   \        \(        P.                  \         P,                  ! \(        P.                  4      V4      hTpEKê  V! V4      pVP                  V4      '       d   TpV	f(   RVV&   V
P1                  V4       V
P1                  R4       VP                  V4      RRR
1,          pV
P3                  V4       V\        V4      ,          pEKw  V#   T d     Mi ; iTpEK‹  )zlReturn the canonical path of the specified filename, eliminating any
symbolic links encountered in the path.r2   rT   rc   r   r   r   TN© rŽ   )r<   r=   r3   r4   rª   r«   r0   ÚFileNotFoundErrorrh   rd   Úreadlinkr   rN   r@   r¡   Úrindexrg   re   rf   ÚS_ISDIRÚerrnoÚENOTDIRÚstrerrorÚELOOPr    Úextend)Úfilenamer¬   r$   r"   r#   r«   Úignored_errorrd   r°   ÚmaxlinksÚrestÚ
part_countr6   ÚseenÚ
link_countrƒ   Únewpathrg   ÚtargetÚtarget_partss   &$                  r7   r*   r*   „  sã  € ô �yŠy˜Ó"€HÜ�(œE×"Ò"ØˆØˆØˆÜ—‘‰àˆØˆØˆÜ—‘ˆØ”ÓÜ)ˆØ‰ß	Ø‰äˆä�H‰H€EÜ�{‰{€HØ€Hð �>‰>˜#Ó™t ˜tÕ$€Dô �T“€Jð ×%Ñ% c×*Ò*‰3±³€Dð €Dð €Jç
ˆ*Ø�x‰x‹zˆØŠ<à#�—‘“ÑÙØ�a�ˆ
ß�t”~áØŒ>àÐ)˜Ÿ™ SÓ)Ð*×1Ð1¨cˆDÙØŒ;Ø•k‰Gà•j 4Õ'ˆGð0	Ù˜G“n×,Ñ,ˆGÜ—<’< ×(Ò(ßŸj´·²¸g×1FÒ1FÜ!¤%§-¡-´·²¼U¿]¹]Ó1KØ")ó+ð +à�ÚØÒ%Ø˜a•�
ØÔ(ßÜ%¤e§k¡k´2·;²;¼u¿{¹{Ó3KØ&-ó/ð /à"�DÚð )ð ˜D”à˜G•}�ØÒ#âçÜ!¤%§+¡+¬r¯{ª{¼5¿;¹;Ó/GØ")ó+ð +à�ÚÙ˜gÓ&ˆFð
 × Ñ  ×%Ò%à�ØÒà $��W‘ð —‘˜GÔ$Ø—‘˜DÔ!à!Ÿ<™<¨Ó,©T¨r¨TÕ2ˆLØ�K‰K˜Ô%Øœ#˜lÓ+Õ+ˆJÚð €Køð/ ô 	Ùð	úð* ‹sN   Å9-M# Æ'M# Æ/M# Æ7M# Ç?M# ÈM# È0?M# É2M# Ê
M# Ê?M# ËM# Í#M-Í,M-Údarwinc                ó¾  € \         P                  ! V 4      p V '       g   \        R4      h\        V \        4      '       d   RpRpRpMRpRpRpVf   TpM\         P                  ! V4      p \        V4      P                  V4      p\        V 4      P                  V4      pV'       d   VP                  V4      M. pV'       d   VP                  V4      M. p\        \        Wx.4      4      p	V.\        V4      V	,
          ,          W‰R ,           p
V
'       g   V# VP                  V
4      #   \        \        \        \        3 d    \        P                   ! R	Y4       h i ; i)
z#Return a relative version of a pathzno path specifiedrT   r2   rc   r   r   r   Nr,   )r<   r=   ri   r3   r4   r   Úlstripr   rN   r   r	   rC   rD   rE   ÚDeprecationWarningrF   rG   )r6   r’   r"   r$   r#   Ú
start_tailÚ	path_tailÚ
start_listÚ	path_listrP   Úrel_lists   &&         r7   r,   r,     s)  € ô �9Š9�T‹?€DßÜÐ,Ó-Ð-ä�$œ×ÒØˆØˆØ‰àˆØˆØˆà‚}Ø‰ä—	’	˜%Ó ˆðÜ˜U“^×*Ñ*¨3Ó/ˆ
Ü˜D“M×(Ñ(¨Ó-ˆ	ß.8�Z×%Ñ% cÔ*¸bˆ
ß,5�I—O‘O CÔ(¸2ˆ	ä”˜jÐ4Ó5Ó6ˆà�8œs :›¨qÕ0Õ1°I¸b°MÕAˆßØˆMØ�x‰x˜Ó!Ð!øÜ”~¤|Ô5GÐHô Ü×$Ò$ Y°Ô<Øðús   Á+AD( ÃAD( ÄD( Ä(4Ec           	     ó6  € \        \        \        P                  V 4      4      p V '       g   \	        R4      h\        V ^ ,          \        4      '       d   RpRpMRpRp V  Uu. uF  q3P                  V4      NK  	  pp V  Uu0 uF  qUP                  V4      kK  	  upw  pT UUu. uF%  qw Uu. uF  qˆ'       g   K  Y‚8w  g   K  TNK  	  upNK'  	  ppp\        T4      p	\        T4      p
T	p\        T	4       F  w  rÈYŠT,          8w  g   K  T	RT p M	  T'       d   TMTR,          pYÑP                  T4      ,           # u upi u upi   \         d    \	        R4      Rhi ; iu upi u uppi   \        \        3 d    \        P                   ! R	.T O5!   h i ; i)
zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencer2   rT   r   r   z%Can't mix absolute and relative pathsNrW   r-   )ÚtupleÚmapr<   r=   ri   r3   r4   r   r@   ÚminÚmaxÚ	enumerater	   rC   rD   rF   rG   )Úpathsr$   r"   r6   Úsplit_pathsrI   r   r>   Úcrl   rn   ÚcommonrP   Úprefixs   &             r7   r-   r-   ,  s}  € ô ”#”b—i‘i Ó'Ó(€EçÜÐ@ÓAÐAä�%˜•(œE×"Ò"ØˆØ‰àˆØˆðÙ38Ó9±5¨4—z‘z #–±5ˆÐ9ð	PÙ16Ó7±¨A—l‘l 3Ö'±Ñ7‰FˆEñ EPÔPÁK¸q 1Ó:¡1˜a«œ¨a©kŸ˜¡1Ô:ÁKˆÑPÜ�ÓˆÜ�ÓˆØˆÜ˜b–M‰DˆAØ�q•EŽzØ˜B˜Q˜�Ùñ "÷
 ‘ 3 r¥7ˆØŸ™ Ó(Õ(Ð(ùò# :ùò 8øÜô 	PÜÐDÓEÈ4ÐOð	Püò ;ùÓPøô ”~Ð&ô Ü×$Ò$ \Ð:°EÔ:Øðús„   ÁE- Á"D=Á;E- Á>E ÂEÂE Â E- Â%E'Â-	E"Â;E"ÃE"Ã	E'Ã5E- Ä
E- Ä!E- Ä=E- ÅE ÅEÅE- Å"E'Å'E- Å-+F)N)+Ú__doc__r"   r#   r(   r$   r%   r&   r'   r)   r³   r<   r~   re   rF   Ú__all__r8   r   r   r	   r   r   rU   r
   ÚposixrY   r   rw   r   r   r   r   r˜   r�   r•   r   rž   r   r   r*   r   r+   r,   r-   r®   r9   r7   Ú<module>rÙ      sÉ  ðñ
ð 
€Ø	€Ø	€Ø	€Ø
€Ø
€Ø	€Ø
€ã Û 	Û 
Û Û Ü ðDˆ:ð D�gð D˜fð D \ð D°+ð D¸gð DÀjð DØðDØðDØ .ðDØ/8ðDØ9CðDàðDà ðDà!)ðDà*2ðDà3<ðDà=DðDàEMðDð ðDð #ðDð $0ðDð 1;ðDð <EðDð ð	Dð %ð	Dð &0ð	Dð
 ðDð
 ðDð
 #ðDð
 $-ðDð
 .7ðDð
 8@ðDð
 AIðDð ðDð  ðDð !=ðDð >GðDð ðDð &ðDð '3ðDð 4CðD€òòòòò8	ò"7ð ×(Ñ(×0Ñ0€Ô ò
ð'Ý5ò6òò<òN3(ðt $€Ø
€Ø€ò*ðbÝ0ò@	ðx ô xðv "Ÿl™l¨hÑ6Ð ô#ôV$øðA ô 'ô'ð'ûðV ô ôðús$   Â3C8 ÃD Ã8
DÄDÄ
DÄD