
    4bhD~                        	 d Z dZd ZdZdZdZdZdZddlZddl	Z	ddl
Z
ddlZdd	l g d
Zd Z	 ddlmZmZmZ d Zd Zd Zd Zd Zd Zd Zej:                  j<                  e_        d Zd Z  e!ejD                  d      rd Z#nd Z#d Z$	 ddl%m&Z& d Z'd Z(d Z)	 ddl%m*Z+ 	 dd!l%m,Z, d" Z-	 dd$l%m.Z.m/Z0 e1fd%Z2e1fd&Z3d'd(d)Z4d+Z5d5d,Z6d- Z7	 dd.l%m8Z9 dd/l%m:Z; dd0l%m<Z= dd1l%m>Z? 	 dd2l%m@Z@ d3 ZAy# e$ r d ZY w xY w# e$ r dZ&Y ww xY w# e$ r d  Z+Y uw xY w# e$ r d# Z-Y yw xY w# e$ r	 d'd(d*Z4Y qw xY w# e$ r Y Zw xY w# e$ r d4 ZAY yw xY w)6...\;/z.;C:\binnul    N)*))normcaseisabsjoin
splitdrive	splitrootsplitsplitextbasenamedirnamecommonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount
expanduser
expandvarsnormpathabspathcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpathsamefilesameopenfilesamestat
commonpath
isjunctionALLOW_MISSINGc                 &    t        | t              ryy)N   \/\/)
isinstancebytespaths    0/opt/python-3.12.12/usr/lib/python3.12/ntpath.py_get_bothsepsr;   $   s    $    )LCMapStringExLOCALE_NAME_INVARIANTLCMAP_LOWERCASEc                 Z   	 t        j                  |       } | s| S t        | t              r]t	        j
                         }| j                  |d      j                  dd      } t        t        t        |       } | j                  |d      S t        t        t        | j                  dd            S )Nsurrogateescaper   r   )osfspathr6   r7   sysgetfilesystemencodingdecodereplace_LCMapStringEx_LOCALE_NAME_INVARIANT_LCMAP_LOWERCASEencode)sencodings     r:   r
   r
   4   s    	 IIaLHa002H#45==c4HA5/4A88H&788!"8"2"#))C"68 8r<   c                    	 t        j                  |       } t        | t              rFt        j                  t        j
                  |       j                  dd      j                               S | j                  dd      j                         S )Nr   r   )rB   rC   r6   r7   fsencodefsdecoderG   lower)rL   s    r:   r
   r
   G   sg    	 IIaLa;;r{{1~55c4@FFHIIyyd#))++r<   c                     	 t        j                  |       } t        | t              rd}d}d}nd}d}d}| d d j	                  ||      } | j                  |      s| j                  |d      ry	y
)N   \   /s   :\r   r   z:\      TF)rB   rC   r6   r7   rG   
startswith)rL   r$   r'   	colon_seps       r:   r   r   X   sq    )
		!A!U			"1fc"A 	||CALLA6r<   c                 8   t        j                  |       } t        | t              rd}d}d}nd}d}d}	 |s| d d |z    t	        |       \  }}}t        t         j                  |      D ]b  }t	        |      \  }	}
}|
r|	s|s|	}|
}|}|	r/|	|k7  r*|	j                         |j                         k7  r|	}|
}|}N|	}|r|d   |vr||z   }||z   }d |r|s|r|dd  ||z   vr||z   |z   S ||z   |z   S # t        t        t        f$ r t        j                  d	| g|   w xY w)
NrS   r4      :r   r5   :r   r   )rB   rC   r6   r7   r   maprQ   	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)r9   pathsr$   sepscolonresult_driveresult_rootresult_pathpp_drivep_rootp_paths               r:   r   r   l   s_   99T?D$!!HsN1:4.k;RYY&A&/l#GVV,#*L$$W4==?l&8&8&::#*L"(K"(K&{2d:)C/%.K+ '. \"#.edlB#%33k)K77~|4 $$VT:E:s   B/C, $C, ,-Dc                 0    	 t        |       \  }}}|||z   fS N)r   )ri   driveroottails       r:   r   r      s(    $ "!E4$+r<   c                     	 t        j                  |       } t        | t              rd}d}d}d}d}n
d}d}d}d	}d
}| j	                  ||      }|d d |k(  r||dd |k(  ri|d d j                         |k(  rdnd}|j                  ||      }|dk(  r| ||fS |j                  ||dz         }	|	dk(  r| ||fS | d |	 | |	|	dz    | |	dz   d  fS || d d | dd  fS |dd |k(  r!|dd |k(  r| d d | dd | dd  fS | d d || dd  fS ||| fS )NrS   rT   rZ      \\?\UNC\r<   r   r   r[   \\?\UNC\ rV         r\   rU   )rB   rC   r6   r7   rG   upperfind)
ri   r$   r'   re   
unc_prefixemptynormpstartindexindex2s
             r:   r   r      s   	 			!A!U$
#
IIfc"ERayC1: r*j8AaEJJsE*E{%&ZZUQY/F|%&Wf:q
3Qvz{^CC !BQ%12&&	qu	1:Ra5!Aa&!AB%'' Ra5%12&& eQr<   c                     	 t        j                  |       } t        |       }t        |       \  }}} t	        |       }|r| |dz
     |vr|dz  }|r| |dz
     |vr| d | | |d  }}||z   |j                  |      z   |fS NrV   )rB   rC   r;   r   lenrstrip)ri   rd   driheadrq   s          r:   r   r      s    ! 			!ADlGAq!AA
!A#d"	Q !A#d"2A!"$Dq54;;t$$d**r<   c                     t        j                  |       } t        | t              rt	        j
                  | ddd      S t	        j
                  | ddd      S )NrS   rT      .r   r   r   )rB   rC   r6   r7   ra   	_splitextri   s    r:   r   r     sG    
		!A!U$$QtT::$$Qc377r<   c                      	 t        |       d   S r   r   r   s    r:   r   r     s    38A;r<   c                      	 t        |       d   S )Nr   r   r   s    r:   r   r     s    78A;r<   st_reparse_tagc                     	 	 t        j                  |       }t        |j                  t        j                  k(        S # t        t        t        f$ r Y yw xY wNF)	rB   lstatOSError
ValueErrorr_   boolr   statIO_REPARSE_TAG_MOUNT_POINTr9   sts     r:   r1   r1     sP    /	$B B%%)H)HHII ^4 		s   > AAc                 0    	 t        j                  |        yr   )rB   rC   r8   s    r:   r1   r1   $  s    /
		$r<   c                 \    	 	 t        j                  |       }y# t        t        f$ r Y yw xY w)NFT)rB   r   r   r   r   s     r:   r   r   ,  s5    MXXd^  Z  s    ++)_getvolumepathnamec                 @   	 t        j                  |       } t        |       }t        |       } t	        |       \  }}}|r
|d   |v r| S |r|syt
        rL| j                  |      }t        |       j                  |      }|j                         |j                         k(  S y)Nr   TF)rB   rC   r;   r!   r   r   r   casefold)r9   rd   ro   rp   restxys          r:   r   r   B  s    #99T?DD4=D!$E4qT!xDKKd#**40zz|qzz|++r<   c                 :   	 t        j                  |       } t        | t              rd}nd}| j	                  |      s| S dt        |       }}||k  r+| |   t        |       vr|dz  }||k  r| |   t        |       vrdt         j                  v rt         j                  d   }nEdt         j                  vr| S 	 t         j                  d   }t        |t         j                  d         }|dk7  rs| d| }t        |t              rt        j                  |      }t         j                  j                  d      }||k7  r%|t        |      k7  r| S t        t        |      |      }t        | t              rt        j                  |      }|| |d  z   S # t        $ r d}Y w xY w)	N   ~~rV   USERPROFILEHOMEPATH	HOMEDRIVEru   USERNAME)rB   rC   r6   r7   rW   r   r;   environKeyErrorr   rP   getr   r   rO   )r9   tilder   nuserhomero   target_usercurrent_users           r:   r   r   _  s   0 99T?D$??5!c$iqA
a%DG=#66	Q a%DG=#66 

"::m,2::%	JJ{+E rzz*56Av1Qik5)++k2Kzz~~j1,& x11GH-{;H$;;x(d12h/  	E	s   7F FFc                    	 t        j                  |       } t        | t              rPd| vrd| vr| S dd l}t        |j
                  |j                  z   dz   d      }d}d}d}d}d}t        t         d	d       }nDd
| vrd| vr| S dd l}|j
                  |j                  z   dz   }d}d}d}d}d
}t         j                  }| d d }	d}
t        |       }|
|k  r| |
|
dz    }||k(  r5| |
dz   d  } t        |       }	 | j                  |      }
|	|| d |
dz    z   z  }	n||k(  r| |
dz   |
dz    |k(  r|	|z  }	|
dz  }
n| |
dz   d  } t        |       }	 | j                  |      }
| d |
 }	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	n%||k(  r| |
dz   |
dz    |k(  r|	|z  }	|
dz  }
n| |
dz   |
dz    |k(  rr| |
dz   d  } t        |       }	 | j                  |      }
| d |
 }	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	n| d d }|
dz  }
| |
|
dz    }|r||v r||z  }|
dz  }
| |
|
dz    }|r||v r	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	|r|
dz  }
n|	|z  }	|
dz  }
|
|k  r|	S # t        $ r |	|| z   z  }	|dz
  }
Y &w xY w# t        $ r ||z   |z   }Y jw xY w# t        $ r |	|| z   z  }	|dz
  }
Y Zw xY w# t        $ r ||z   |z   |z   }Y w xY w# t        $ r |	||z   | z   z  }	|dz
  }
Y w xY w# t        $ r ||z   }Y w xY w)N   $   %r   z_-ascii   '   {   }environb$%'{}rV   rv   )rB   rC   r6   r7   stringascii_lettersdigitsgetattrr   r   r~   r   rO   rP   r   )r9   r   varcharsquotepercentbracerbracedollarr   resr~   pathlencvarvalues                  r:   r   r     sM   - 99T?D$tD 0K--=DgN"j$/d?s$K''&--7$>**
r(CE$iG
'/uQw:	
#D$iG$

1q4
+++ '\EAIeai(G3q
E!GH~d)! JJw/E
 v,C8"?$&KK

2;;s;K0L$ME$+CLE 5LC&[EAIeai(F2q
eai	*e3E!GH~d)! JJv.E
 v,C>"?$&KK

2;;s;K0L$ME$+CLE 5LC2Ah
uqy)AM1HCQJEU519-A AM) "BJJr{{37G,H I ' uQJE1HC
W '/X JI  $q4x!$, $ 8 '# 78 " (7T>)C#aKE(@ $ > & 4v => " (6E>D00C#aKE(4   )"SLE)so   4K L AK6 )M  AL* 9AM# K32K36L
LL'&L'*M MM M #M43M4)_path_normpathc                    	 t        j                  |       } t        | t              r	d}d}d}d}nd}d}d}d}| j	                  ||      } t        |       \  }}} ||z   }| j                  |      }d	}	|	t        |      k  r_||	   r||	   |k(  r||	= n?||	   |k(  r2|	d	kD  r||	d
z
     |k7  r||	d
z
  |	d
z   = |	d
z  }	n|	d	k(  r|r||	= n|	d
z  }	n|	d
z  }	|	t        |      k  r_|s|s|j                  |       ||j                  |      z   S )NrS   rT   r      ..r   r   r   r   r   rV   )
rB   rC   r6   r7   rG   r   r   r   appendr   )
r9   r$   r'   r"   r#   ro   rp   prefixcompsr   s
             r:   r    r      s6   >yydE"CFFFCFFF||FC(%dOtT

3#e*n8uQx61!HqV#q5U1Q3Z61ac!A#gFA!VaFAQ #e*n eLL ''r<   )_getfullpathnamec                    	 	 t        t        |             S # t        t        f$ r Y nw xY wt	        j
                  |       } t        |       st        | t              rd}t        j                  }nd}t        j                  }t        |       \  }}} |s|rK	 t        t        ||z         |       } t        |       S # t        t        f$ r ||z   | z   } Y t        |       S w xY wt         |       |       } t        |       S )NrS   r   )r   r    r   r   rB   rC   r   r6   r7   getcwdbgetcwdr   r   )r9   r$   r   ro   rp   s        r:   r!   r!   F  s    4	#HTN33$ 		 yyT{$& )$E4. 0 >ED ~  , . 3;-D ~. FHd+~s    ))B8 8CCc                     	 t        j                  |       } t        |       sEt        | t              rt        j
                         }nt        j                         }t        ||       } t        |       S rn   )	rB   rC   r   r6   r7   r   r   r   r    )r9   cwds     r:   r!   r!   :  sN    4yyT{$&jjliikT?D~r<   )_getfinalpathnamereadlinkc                 p   d}t               }t        |       |vro|j                  t        |              	 | }t        |       } t	        |       s.t        |      s|} 	 | S t        t        t        |      |             } t        |       |vro| S # |$ r}|j                  |v rY d }~| S  d }~wt        $ r Y | S w xY w)N)rV   rv   rU             2   C   W   i&  i(  i)  )setr
   add_nt_readlinkr   r   r    r   r   winerrorr   )r9   ignored_errorallowed_winerrorseenold_pathexs         r:   _readlink_deepr   h  s     LutnD(HHXd^$#D) T{ "(+'  $D):D$ABD tnD(,  ! ;;"22
 	  s)   %B B B5B%$B%%B54B5c                 Z   d}| d d }| r	 t        |       } |rt        | |      S | S |S # |$ ry}|j                  |vr 	 t        | |      }|| k7  r|rt        ||      n|cY d }~S n# |$ r Y nw xY wt	        |       \  } }| r|s
| |z   cY d }~S |rt        ||      n|}Y d }~nd }~ww xY w| r)N)rV   rv   rU   r   r   r   r   5   A   r   r   {      i  i  r   r   )r   r   r   r   r   )r9   r   r   rq   r   new_pathnames          r:   _getfinalpathname_nonstrictr     s    $ X BQx:(.+/tD$'9T9, + ! :;;&66
  .d<I KH4'7;tHd3I ($  #4[
d $;&+/tD$'T):	 sM   ( ( B&B!!A%B&$B!%A-*B!,A--B!B&B!!B&F)strictc                   t        |       } t        | t              rId}d}d}t        j                         }t        |       t        t        j                  t                    k(  r7yd}d}d}t        j                         }t        |       t        t              k(  ry| j                  |      }|t        u r	t        }d	}n|rd
}nt        }|st        |       st        ||       } 	 t        |       } d}|sU| j                  |      rD| j                  |      r|| t)        |      d  z   }
n| t)        |      d  }
	 t        |
      | k(  r|
} | S | S # t         $ r,}	|rt        t#        |	            d t        |       } Y d }	~	d }	~	w|$ r#}	|	j$                  }t'        | |      } Y d }	~	d }	~	ww xY w# t         $ r}	Y d }	~	| S d }	~	wt        $ r}	|	j$                  k(  r|
} Y d }	~	| S d }	~	ww xY w)Ns   \\?\rs   s   \\s   \\.\NULz\\?\rt   z\\z\\.\NULT r   r   )r    r6   r7   rB   r   r
   rO   r)   r   rW   r2   FileNotFoundErrorr   r   r   r   r   strr   r   r   )r9   r   r   rz   new_unc_prefixr   
had_prefixr   initial_winerrorr   spaths              r:   r*   r*     s   ~dE"F(J$N**,C~"++g*>!??$F'J#N))+C~'!22#__V,
]"-MFM#M%+T?D	L$T*D   doof5 z*&c*o.>)??S[\*!$U+t3 D tG  	"
 c"g&D0D>D 	L!{{.t=JLD	L$      ! ;;"22 D!sB   "E 4F& 	F#"E88F# FF#&	G5GGGc                    t        |       S rn   )r!   )r9   r   s     r:   r*   r*   e  s    t}r<   Tc                 N   	 t        j                  |       } t        | t              rd}d}d}nd}d}d}||}| st	        d      t        j                  |      }	 t        t        |            }t        t        |             }t        |      \  }}}	t        |      \  }
}}t        |      t        |
      k7  rt	        d|
d	|      |	j                  |      D cg c]  }|s|	 }}|j                  |      D cg c]  }|s|	 }}d
}t        ||      D ]#  \  }}t        |      t        |      k7  r n|dz  }% |gt        |      |z
  z  ||d  z   }|s|S t        | S c c}w c c}w # t        t        t        t        t         f$ r t#        j$                  d| |        w xY w)NrS   r   r   r   r   r   zno path specifiedzpath is on mount z, start on mount r   rV   r,   )rB   rC   r6   r7   r   r!   r    r   r
   r   zipr   r   r^   r_   r`   DeprecationWarningra   rb   )r9   r}   r$   r"   r#   	start_abspath_absstart_drive_
start_rest
path_drive	path_restr   
start_list	path_listr   e1e2rel_lists                      r:   r,   r,     s   -99T?D$},--IIeEHUO,	8D>*%.y%9"Q
#,X#6 
AyK HZ$88K) * * ",!1!1#!6<!6A!a!6
< ) 4: 41Q 4	:*i0FB|x|+FA 1
 8s:q01IabMAMX =: z><AST $$Ye<s>   BE- E#$E#(E- =E(E(	AE- E- #
E- -7F$c           
      b   	 | st        d      t        t        t        j                  |             } t        | d   t              rd}d}d}nd}d}d}	 | D cg c]+  }t        |j                  ||      j                               - }}|D cg c]  \  }}}|j                  |       }}}}t        |D ch c]  \  }}}|
 c}}}      d	k7  rt        d
      t        |D ch c]  \  }}}|
 c}}}      d	k7  rt        d      t        | d   j                  ||            \  }	}
}|j                  |      }|D cg c]  }|s||k7  s| }}|D cg c]  }|D cg c]  }|s||k7  s| c} }}}t        |      }t        |      }t        |      D ]  \  }}|||   k7  s|d | } n |d t        |       }|	|
z   |j                  |      z   S c c}w c c}}}w c c}}}w c c}}}w c c}w c c}w c c}}w # t         t"        f$ r t%        j&                  dg|    w xY w)Nz%commonpath() arg is an empty sequencer   rS   rT   r   r   r   r   rV   z%Can't mix absolute and relative pathszPaths don't have the same driver0   )r   tupler]   rB   rC   r6   r7   r   rG   rQ   r   r   minmax	enumerater   r^   r_   ra   rb   )rc   r$   r'   r"   ri   drivesplitsr   r   split_pathsro   rp   r9   commonr   rL   s1s2r   s                     r:   r0   r0   F  s.   N@AA#bii'(E%(E"JOP%Qy63!7!=!=!?@%P3>?;1aqwws|;?-gaA-.!3DEE
 -gaA-.!3>??%eAh&6&6vs&CDtTC#9VqQ&[!V9DOPKq1:1aa6k1:KPbMDAqBqEz "
 HSW%Ft|chhv...5 Q?- .
 ::P ~& $$\:E:s   H 0GH G"+H :G)"H )G06AH G7G7G7H 	H&G<.G<4G<8H=2H 0,H H <HH 'H.)_path_isdir)_path_isfile)_path_islink)_path_exists)_path_isdevdrivec                 L    	 	 t        t        |             S # t        $ r Y yw xY wr   )r  r!   r   r8   s    r:   
isdevdriver    s+    N	#GDM22 		s    	##c                      	 yr   r   r8   s    r:   r  r    s    Nr<   rn   )Br"   r#   r(   r$   r%   r'   r&   r)   rB   rD   r   ra   __all__r;   _winapir=   rH   r>   rI   r?   rJ   r
   ImportErrorr   r   r   r   r   r   r   __doc__r   r   hasattrstat_resultr1   r   ntr   r   r   r   r   r    r   r!   r   r   r   r   r   r   r*   r+   r,   r0   r  r   r  r   r  r   r  r   r  r  r   r<   r:   <module>r'     s   
		

	

 	 
   !,- -
8H(+b.1r+*8 ((00 
 2>>+,J$%:-zj`&(-R)#6g> ,3 (T 9@ 0d "' DP " +p.b
	 ()))#M  	,,	,t  ^  #("(#(T  
	
T  !& x  		  s}   C3 D D $D .D* D; )E 3C>=C>D
DDDD'&D'*D87D8;EEEE