a ` =@sdZdZdZdZdZdZdZdZddlZddl Z ddl Z ddl Z ddl Tgd Z d d Z d d ZddZddZddZddZe jje_ddZddZddZddZddZd d!Zd"d#Zdadad$d%Zd&d'Zd(d)Z d*d+Z!d,d-Z"e j#d.kZ$d3d/d0Z%d1d2Z&dS)4.../:z /bin:/usr/binNz /dev/null)*)&normcaseisabsjoin splitdrivesplitsplitextbasenamedirname commonprefixZgetsizeZgetmtimeZgetatimeZgetctimeislinkexistslexistsisdirisfileismount expanduser expandvarsnormpathabspathZsamefileZ sameopenfilesamestatcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpath commonpathcCst|trdSdSdS)N/r) isinstancebytespathr,,/usr/local/src/Python-3.9.6/Lib/posixpath.py_get_sep)s r.cCs t|SNosfspath)sr,r,r-r4srcCst|}t|}||Sr/)r1r2r. startswith)r3rr,r,r-r<s rc Gst|}t|}|}z^|s,|dd|ttj|D]8}||rL|}q8|rZ||rd||7}q8|||7}q8Wn.tttfyt j d|g|RYn0|S)Nrr ) r1r2r.mapr4endswith TypeErrorAttributeError BytesWarning genericpath_check_arg_types)aprr+br,r,r-r Gs    r cCs`t|}t|}||d}|d|||d}}|rX||t|krX||}||fSNr1r2r.rfindlenrstrip)r=riheadtailr,r,r-r ds  r cCs6t|}t|trd}d}nd}d}t||d|S)Nr'.rr)r1r2r(r)r: _splitext)r=rr!r,r,r-r us  r cCst|}|dd|fSNrr0)r=r,r,r-r s r cCs,t|}t|}||d}||dSr?)r1r2r.rB)r=rrEr,r,r-r s r cCsNt|}t|}||d}|d|}|rJ||t|krJ||}|Sr?rA)r=rrErFr,r,r-rs   rc Cs6zt|}Wntttfy(YdS0t|jS)NF)r1lstatOSError ValueErrorr8statS_ISLNKst_mode)r+str,r,r-rs rc Cs,zt|Wnttfy&YdS0dS)NFT)r1rKrLrMr*r,r,r-rs rc Cszt|}Wnttfy&YdS0t|jr8dSt|trNt |d}n t |d}t |}zt|}WnttfyYdS0|j }|j }||krdS|j }|j }||krdSdS)NF..rT) r1rKrLrMrNrOrPr(r)r r#st_devst_ino)r+s1parents2Zdev1Zdev2Zino1Zino2r,r,r-rs.    rc Cs8t|}t|trd}nd}||s,|St|}||d}|dkrPt|}|dkrdtjvrddl }z| t j }Wqt y|YS0n tjd}nTddl }|d|}t|trt|d}z||}Wnt y|YS0|j }t|trt|}d}nd}||}|||dp6|S) N~~r@rZHOMEASCIIr'r)r1r2r(r)r4r.findrCenvironpwdZgetpwuidgetuidZpw_dirKeyErrorstrZgetpwnamfsencoderD) r+ZtilderrEr]ZuserhomenameZpwentZrootr,r,r-rsB                rc CsXt|}t|trVd|vr |Sts:ddl}|d|jatj}d}d}t tdd}n:d|vrb|St s|ddl}|d|ja t j}d }d }tj }d}|||}|sqT| d\}}| d } | |r| |r| d d } z.|durttj t| } n|| } Wnty$|}Yq0||d} |d|| }t|}|| 7}q|S) N$rs\$(\w+|\{[^}]*\}){}environb$z\$(\w+|\{[^}]*\}){}r@)r1r2r(r) _varprogbrecompilerZsearchgetattr_varprogr\ZspanZgroupr4r6rafsdecoder_rC) r+rlrnstartendr\rEmjrbvaluerGr,r,r-rsN          rc Cst|}t|tr&d}d}d}d}nd}d}d}d}||krB|S||}|rp||d rp||d spd }||}g}|D]J}|||fvrq||ks|s|r|r|d |kr||q|r|q|}||}|r|||}|p|S) Nr'rHrRrrrrj) r1r2r(r)r4r appendpopr ) r+rZemptydotZdotdotZinitial_slashesZcompsZ new_compsZcompr,r,r-rNsJ            rcCs@t|}t|s8t|tr&t}nt}t||}t|Sr/) r1r2rr(r)getcwdbgetcwdr r)r+Zcwdr,r,r-rts    rcCs*t|}t|dd|i\}}t|SrJ)r1r2 _joinrealpathr)filenamer+okr,r,r-r#s r#c Cst|trd}d}d}n d}d}d}t|r<|dd}|}|r||\}}}|r<||kr`q<||kr|rt|\}}||krt|||}q<|}qrwzrelpath..cSsg|] }|r|qSr,r,rr,r,r-rrwr%)rMr1r2r(r)rr rCrr r7r8r9DeprecationWarningr:r;) r+rrrrrZ start_list path_listrEZrel_listr,r,r-r%s0    r%c s2|s tdtttj|}t|dtr4ddnddzćfdd|D}ztfd d |D\}Wntytd dYn0fd d|D}t|}t |}|}t |D]$\}}|||kr|d|}qq|rn dd}| |WSt t fy,tjd g|RYn0dS)Nz%commonpath() arg is an empty sequencerr'rHrrcsg|]}|qSr,)r )rr+rr,r-rrwzcommonpath..c3s|]}|ddkVqdSr?r,)rr=rr,r- rwzcommonpath..z%Can't mix absolute and relative pathscsg|]}fdd|DqS)csg|]}|r|kr|qSr,r,)rcrr,r-rrwz)commonpath...r,)rr3rr,r-rrwr&)rMtupler5r1r2r(r)setminmax enumerater r7r8r:r;) pathsZ split_pathsrrUrWZcommonrErprefixr,)rrr-r&s6   r&)N)'rrr!rrrr r"r1sysrNr:__all__r.rrr r r rI__doc__r r rrrrrrprkrrrr#rplatformr$r%r&r,r,r,r-sJ        *25& 3  )