U e5d =&@sZdZdZdZdZdZdZdZdZddlZddl Z ddl Z ddl Z ddl Td d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.g&Z d/d0Z d1d Zd2d Zd3d Zd4d Zd5dZe jje_d6d Zd7dZd8dZd9dZd:dZd;dZddZd?dZ d@d+Z!dAdBZ"e j#dCkZ$dFdDd-Z%dEd.Z&dS)G.../:z /bin:/usr/binNz /dev/null)*normcaseisabsjoin splitdrivesplitsplitextbasenamedirname commonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount expanduser expandvarsnormpathabspathsamefile sameopenfilesamestatcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpath commonpathcCst|trdSdSdS)N/r) isinstancebytespathr2!/usr/lib64/python3.8/posixpath.py_get_sep)s r4cCs t|SNosfspath)sr2r2r3r4scCst|}t|}||Sr5)r7r8r4 startswith)r9r#r2r2r3r<s c Gst|}t|}|}z^|s,|dd|ttj|D]8}||rL|}q8|rZ||rd||7}q8|||7}q8Wn.tttfk rt j d|f|YnX|S)Nrr ) r7r8r4mapr:endswith TypeErrorAttributeError BytesWarning genericpath_check_arg_types)apr#r1br2r2r3r Gs    cCs`t|}t|}||d}|d|||d}}|rX||t|krX||}||fSNr7r8r4rfindlenrstrip)rCr#iheadtailr2r2r3r ds  cCs6t|}t|trd}d}nd}d}t||d|S)Nr-.rr)r7r8r.r/r@ _splitext)rCr#r'r2r2r3r us  cCst|}|dd|fSNrr6)rCr2r2r3r s cCs,t|}t|}||d}||dSrE)r7r8r4rH)rCr#rKr2r2r3r s cCsNt|}t|}||d}|d|}|rJ||t|krJ||}|SrErG)rCr#rKrLr2r2r3rs   c Cs8zt|}Wntttfk r*YdSXt|jS)NF)r7lstatOSError ValueErrorr>statS_ISLNKst_mode)r1str2r2r3rs c Cs.zt|Wnttfk r(YdSXdS)NFT)r7rQrRrSr0r2r2r3rs c Cszt|}Wnttfk r(YdSXt|jr:dSt|trPt |d}n t |d}t |}zt|}Wnttfk rYdSX|j }|j }||krdS|j }|j }||krdSdS)NF..rT) r7rQrRrSrTrUrVr.r/r r)st_devst_ino)r1s1parents2dev1dev2ino1ino2r2r2r3rs.    c Cs<t|}t|trd}nd}||s,|St|}||d}|dkrPt|}|dkrdtjkrddl }z| t j }Wqt k r|YSXn tjd}nVddl }|d|}t|trt|d}z||}Wnt k r|YSX|j }t|trt|}d}nd}||}|||dp:|S) N~~rFrHOMEASCIIr-r)r7r8r.r/r:r4findrIenvironpwdgetpwuidgetuidpw_dirKeyErrorstrgetpwnamfsencoderJ) r1tilder#rKrhuserhomenamepwentrootr2r2r3rsB              c CsZt|}t|trVd|kr |Sts:ddl}|d|jatj}d}d}t tdd}n:d|krb|St s|ddl}|d|ja t j}d }d }tj }d}|||}|sqV| d\}}| d } | |r| |r| d d } z.|dkrttj t| } n|| } Wntk r&|}YqX||d} |d|| }t|}|| 7}q|S) N$rs\$(\w+|\{[^}]*\}){}environb$z\$(\w+|\{[^}]*\}){}rF)r7r8r.r/ _varprogbrecompileresearchgetattr_varprogrgspangroupr:r<rofsdecoderlrI) r1r~rstartendrgrKmjrrvaluerMr2r2r3rsN          c Cst|}t|tr&d}d}d}d}nd}d}d}d}||krB|S||}|rp||d rp||d spd }||}g}|D]J}|||fkrq||ks|s|r|r|d |kr||q|r|q|}||}|r|||}|p|S) Nr-rNrXrrrr|) r7r8r.r/r:r appendpopr ) r1r#emptydotdotdotinitial_slashescomps new_compscompr2r2r3rNsJ            cCs@t|}t|s8t|tr&t}nt}t||}t|Sr5) r7r8rr.r/getcwdbgetcwdr r)r1cwdr2r2r3rts    cCs*t|}t|dd|i\}}t|SrP)r7r8 _joinrealpathr)filenamer1okr2r2r3r)s c Cst|trd}d}d}n d}d}d}t|r<|dd}|}|r||\}}}|r<||kr`q<||kr|rt|\}}||krt|||}q<|}qszrelpath..cSsg|] }|r|qSr2r2rr2r2r3rsr+)rSr7r8r.r/rr rIrr r=r>r?DeprecationWarningr@rA) r1rr!r#r" start_list path_listrKrel_listr2r2r3r+s0    c s2|s tdtttj|}t|dtr4ddnddzƇfdd|D}ztfd d |D\}Wntk rtd dYnXfd d|D}t|}t |}|}t |D]$\}}|||kr|d|}qq|rn dd}| |WSt t fk r,tjd|YnXdS)Nz%commonpath() arg is an empty sequencerr-rNrrcsg|]}|qSr2)r )rr1r#r2r3rszcommonpath..c3s|]}|ddkVqdSrEr2)rrCrr2r3 szcommonpath..z%Can't mix absolute and relative pathscsg|]}fdd|DqS)csg|]}|r|kr|qSr2r2)rcr!r2r3rsz)commonpath...r2)rr9rr2r3rsr,)r,)rStupler;r7r8r.r/setminmax enumerater r=r>r@rA) paths split_pathsrr[r]commonrKrprefixr2)r!r#r3r,s6  )N)'r!r"r'r#r$r%r&r(r7sysrTr@__all__r4rrr r r rO__doc__r r rrrrrrr}rrrr)rplatformr*r+r,r2r2r2r3s         *25& 3  )