Ë fu]Ir‘ã ó0—UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZmZddlmZmZm Z mZe jBd«Z"ejFjHZ$ejFjJZ%ejFjLZ& ejNZ(ejVZ+ejXZ,ejZZ-ej\Z.e j^rd e*d e1fd,„Z?d e*d ee*fd-„Z@d.e*d ee*fd/„ZAd.e*d ee*fd0„ZBd e*fd1„ZCdhd2„ZDd e*d e*fd3„ZEd e*d e*fd4„ZFd5e*d6e*d e1fd7„ZGd5e*d6e*d e1fd8„ZHd e*d e*fd9„ZIej”j–ZLe4e2d:<eIZMejœr&d e*d e*fd;„ZIej”j–ZLd e*d e*fd<„ZMejžd=k(r<ePgd>¢d?¬@«ZQd e*d e*fdA„ZIej”j¤ZLeIZMd e*d e1fdB„Z>d e*d e1fdC„Z?daSeee*e2dD<dEe*d e*fdF„ZTdEe*d ee*fdG„ZUdHe4d e1fdI„ZVdJej®d e1fdK„ZXdLe*d ee*fdM„ZYdhdN„ZZej¶ej¸hZ]dOee*d eeej®fdP„Z^d e*fdQ„Z_didRee4d ee*fdS„Z`didTee4d ee*fdU„Zade*d ee*fdV„ZbdWee*d e4fdX„ZcdY„Zdd e*dZe1d dfd[„Ze djd\e*dee*d]eee4ee4fd ee*fd^„Zfdhd_„ZgGd`„da«ZhdJeej®d e1fdb„ZidJeej®d e1fdc„Zjdd„Zkd e*fde„Zld e*d dfdf„Zmy#e)$rde*d e*d efd „Z(Y�ŒIwxYw)kéN) ÚAnyÚAnyStrÚIterableÚIteratorÚListÚMatchÚNoReturnÚOptionalÚSequenceÚTupleÚUnioné)Ú_)ÚgetattrÚopen)ÚencodingÚerrorÚpolicyÚpycompatÚosutilÚsrcÚdstÚreturncó@—ttjd||fz«‚)Ns!hardlinks not supported: %s to %s)ÚOSErrorÚerrnoÚEINVAL©rrs ú3usr/lib/python3.12/site-packages/mercurial/posix.pyÚoslinkr >s"€ÜÜ �L‰LÐ>À#ÀsÀÑKó ð óÚpathcó—t‚©N©ÚNotImplementedError©r"s rÚnormpathr(Ró€Ü!Ð!r!có—t‚r$r%r's rÚabspathr+Ur)r!có—t‚r$r%rs rr r Xr)r!có—t‚r$r%r's rÚreadlinkr.[r)r!có—t‚r$r%r's rÚunlinkr0^r)r!có—t‚r$r%rs rÚrenamer2ar)r!Únamecó—t‚r$r%©r3s rÚ removedirsr6dr)r!FÚ expandglobsÚumaskÚpcóž—|jdd«}t|«dk(rd|fS|djd«}|r||dfS|ddz|dfS)aÄSame as posixpath.split, but faster >>> import posixpath >>> for f in [b'/absolute/path/to/file', ... b'relative/path/to/file', ... b'file_alone', ... b'path/to/directory/', ... b'/multiple/path//separators', ... b'/file_at_root', ... b'///multiple_leading_separators_at_root', ... b'']: ... assert split(f) == posixpath.split(f), f ó/rr!r)ÚrsplitÚlenÚrstrip)r9ÚhtÚnhs rÚsplitrApsb€ð �‰�$˜Ó €BÜ ˆ2ƒw�!‚|Ø�Aˆvˆ Ø ˆA‰�‰�dÓ €BÙ Ø�2�a‘5ˆyÐØ ˆa‰5�4‰<˜˜A™Ð Ðr!có—y)z@return true if it is safe to hold open file handles to hardlinksT©rCr!rÚ openhardlinksrD‡s€à r!có@—tj|«jS)z-return number of hardlinks for the given file)ÚosÚlstatÚst_nlinkr5s rÚnlinksrIŒs€ä �8‰8�D‹>× "Ñ "Ð"r!Ú output_linecóª—|dd}tjdk(r|ddk(r|dd}|S|jd«r|jd«r d |vr|dd}|S) zÇHÇG2Ç(HÇ2G< Ç7HÇ<HÈH ÈHÈH%ÚmodeÚenforcewritablecóâ— tj|«jdz}|}|r|t j z}tj||«y#t$r|}|€t}|dz}YŒIwxYw)z�Copy the file mode from the file at path src to dst. If src doesn't exist, we're using mode instead. If mode is None, we're using umask.éÿNri)rFrGrdÚFileNotFoundErrorr8rkÚS_IWUSRrq)rrrxryrdÚnew_modes rÚcopymoderÝsq€ðÜ—(‘(˜3“-×'Ñ'¨%Ñ/ˆð€HáØ”D—L‘LÑ ˆä‡H�HˆS�(Õøô òØˆØ ˆ?Ü�fˆGØ�5ÑŠð ús‚"AÁA.Á-A.cól— tjtjztjz}tj j |d«}tj j |d«}tj j |d«}tj j|«sN t j|«tj j|«r t||«n t||«tj j|«rªtj j |d«}tj j |d«} t j|«j}||zdk7r4 t j|«j}||zdk(ryt#|«t#|«|}n|}d }t%j&|d ¬ «\} } t j | «t j| «j}||zdk(rkt j(| |d z|z«t j| «j|zdk7r*|�t j*| |«d } | � t#| «yy| � t#| «y y #ttf$rY�Œ°wxYw#t$r=t|d«j!«t j|«j}Y�ŒRwxYw#t$rY�ŒCwxYw#| � t#| «wwxYw#ttf$rYy wxYw)z} Check whether the given path is on a filesystem with UNIX-like exec flags Requires a directory (like /foo/.hg) ó.hgówcachesstores checkisexecs checknoexecrówTNs hg-checkexec-©ÚdirÚprefixr{F)rkÚS_IXUSRÚS_IXGRPÚS_IXOTHrFr"ÚjoinÚexistsÚmkdirrÚIOErrorrÚisdirrdr|rÚcloser0rÚmkstemprqr2) r"Ú EXECFLAGSÚbasedirÚcachedirÚstoredirÚ checkisexecÚ checknoexecÚmÚcheckdirÚfhÚfns rÚ checkexecr›ös˜€ðBÜ—L‘L¤4§<¡<Ñ/´$·,±,Ñ>ˆ Ü—'‘'—,‘,˜t VÓ,ˆÜ—7‘7—<‘< ¨Ó3ˆÜ—7‘7—<‘< ¨Ó2ˆÜ�w‰w�~‰~˜hÔ'ð ô—‘˜Ô"Ü—7‘7—>‘> (Ô+ܘX xÕ0ä˜W hÔ/ô �7‰7�=‰=˜Ô "ÜŸ'™'Ÿ,™, x°Ó@ˆKÜŸ'™'Ÿ,™, x°Ó@ˆKð $Ü—G‘G˜KÓ(×0Ñ0�ð �y‘= AÒ%ð9ÜŸG™G KÓ0×8Ñ8˜ð˜9‘}¨Ò)à#ä˜;Ô'ä�{Ô#ð ‰HðˆH؈KÜ×!Ñ! hÐ7GÔH‰ˆˆBð Ü �H‰H�RŒLÜ—‘˜“ ×#Ñ#ˆAØ�9‰} Ò!Ü—‘˜˜Q ™Y¨Ñ2Ô3Ü—7‘7˜2“;×&Ñ&¨Ñ2°aÒ7Ø"Ð.ÜŸ ™  " kÔ2Ø!˜Øàˆ~Ü�r• ðˆrˆ~Ü�r• ðøô_œWÐ%ò âð ûô$-ò9ܘ[¨$Ó/×5Ñ5Ô7ÜŸG™G KÓ0×8Ñ8›ð9ûô%ò âð ûðLˆ~Ü�r• ðûä ”WÐ òáðús¦‚B1L!Â4A JÄAL!Å!K>ÆL!Æ J5Æ(L!Æ17L!Ç)BLÊ L!Ê L!ÊJ2Ê.L!Ê1J2Ê2L!Ê5AK;Ë7L!Ë:K;Ë;L!Ë> L ÌL!Ì L Ì L!ÌLÌL!Ì!L3Ì2L3cóÌ— tjj|dd«}tjj|d«}tjj|«rytjj |«r|}n|}d}t j tj|«d¬«}tj|«} d}|€Atj|d¬«}tjj|j«}n=d } tjj||«}t|d «j« tj ||«|€ t#|«n tj$||« |�|j«yy#t$rYy wxYw#t&$rt#|«YŒ:wxYw#t($rY|�|j«�ŒâwxYw#|�|j«wwxYw#t*$rYy t&$rQ}|j,t,j.k(r*tjj1|«r t#|«Yd}~y d}~wwxYw) z?check whether the given path is on a symlink-capable filesystemTr�r‚s checklinkNz checklink-r„s hg-checklink-schecklink-targetrƒF)rFr"rŠÚislinkrŽÚtempfileÚmktemprÚfsdecodeÚfsencodeÚ namedtempfileÚbasenamer3rr�ÚPermissionErrorrnr0r2rÚFileExistsErrorÚAttributeErrorrÚEIOr‹) r"r“Ú checklinkr˜r3ÚfdÚtargetÚfullpathÚinsts rr¨r¨Fsû€ð Ü—7‘7—<‘<  f¨iÓ8ˆÜ—G‘G—L‘L ¨<Ó8ˆ ä �7‰7�>‰>˜)Ô $ØÜ �7‰7�=‰=˜Ô "؉HàˆH؈HÜ�‰Ü×!Ñ! (Ó+°Mô ˆô× Ñ  Ó&ˆð+ ؈BØÐÜ×+Ñ+Ø Ð)9ô�ôŸ™×)Ñ)¨"¯'©'Ó2‘ð-�ð !Ü!Ÿw™wŸ|™|¨H°fÓ=�Hܘ 4Ó(×.Ñ.Ô0ð Ü— ‘ ˜6 4Ô(ØÐ#ܘ4•Lð%ÜŸ ™  $¨ Ô2ðð �>Ø—H‘H•Jð"øô+'ò!ñ !ð !ûô#ò%ܘtž ð%ûô#ò àà�>Ø—H‘H”Jùð  ûð�>Ø—H‘H•Jð"ûäò ÙÜò à�z‰zœUŸY™YÒ&¬2¯7©7¯>©>¸$Ô+?Ü�t” Üûð  ús’à AG?Ä:FÅ $GÅ1F+ÆG?Æ F(Æ%G?Æ'F(Æ(G?Æ+GÆ?GÇGÇGÇ G$ÇG'ÇG?Ç#G$Ç$G'Ç'G<Ç<G?Ç? I#È I#ÈAIÉI#có—y)z’Check that the base-relative path is a valid filename on this platform. Returns None if the path is ok, or a UI string describing the problem.NrCr's rÚcheckosfilenamer®‡s€ð r!Údirpathcó2—ttdd„«|«S)zŒGet the filesystem mount point from a directory (best-effort) Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc. Úgetfsmountpointcó—yr$rC©rgs rÚz!getfsmountpoint..’s€¸r!©rr©r¯s rr±r±�s€ð >Œ7”6Ð,©nÓ =¸gÓ FÐFr!có2—ttdd„«|«S)zŠGet the filesystem type name from a directory (best-effort) Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc. Ú getfstypecó—yr$rCr³s rr´zgetfstype..šs€°$r!rµr¶s rr¸r¸•s€ð 8Œ7”6˜;©Ó 7¸Ó @Ð@r!cóR—tjtjd««S)NÚ)rÚ strtolocalÚgetpassrCr!rÚ get_passwordr¾�s€Ü × Ñ œwŸ™¨rÓ2Ó 3Ð3r!có—yr$rC)r©s rÚ setbinaryrÀ¡ó€Ør!có—|Sr$rCr's rÚpconvertrÃ¥ó€Ø €Kr!có—|Sr$rCr's rÚ localpathrÆ©rÄr!Úfpath1Úfpath2cóB—tjj||«S)zwReturns whether path1 and path2 refer to the same file. This is only guaranteed to work for files, not directories.)rFr"Úsamefile)rÇrÈs rrÊrÊ­s€ô �7‰7× Ñ ˜F FÓ +Ð+r!cóˆ—tj|«}tj|«}|j|jk(S)zyReturns whether fpath1 and fpath2 are on the same device. This is only guaranteed to work for files, not directories.)rFrGÚst_dev)rÇrÈÚst1Úst2s rÚ samedevicerϳs3€ô �(‰(�6Ó €CÜ �(‰(�6Ó €CØ �:‰:˜Ÿ™Ñ #Ð#r!có"—|j«Sr$)Úlowerr's rÚnormcaserÒ¼s€Ø �:‰:‹<Ðr!Ú normcasespeccób— tj|«S#t$rt|«cYSwxYw)að Normalize a filename for OS X-compatible comparison: - escape-encode invalid characters - decompose to NFD - lowercase - omit ignored characters [200c-200f, 202a-202e, 206a-206f,feff] >>> normcase(b'UPPER') 'upper' >>> normcase(b'Caf\xc3\xa9') 'cafe\xcc\x81' >>> normcase(b'\xc3\x89') 'e\xcc\x81' >>> normcase(b'\xb8\xca\xc3\xca\xbe\xc8.JPG') # issue3918 '%b8%ca%c3\xca\xbe%c8.jpg' )rÚ asciilowerÚUnicodeDecodeErrorÚnormcasefallbackr's rrÒrÒÇs2€ð$ *Ü×&Ñ& tÓ,Ð ,øÜ!ò *Ü# DÓ)Ò )ð *ús ‚—.­.c óЗ |jd«}tjd|«j«jd«}tj|«S#t$r�d}d}t|«}||krY tj||«}|t|«z }n(#t $rdt |||dz«z}|dz }YnwxYw||z }||krŒY|jd«}YŒÑwxYw)Nzutf-8r!rs%%%02XrÚNFD) ÚdecoderÖr=rÚ getutf8charÚ ValueErrorÚordÚ unicodedataÚ normalizerÑÚencodeÚhfsignoreclean)r"ÚursÚposrfÚcÚencs rr×r×àsó€ð "Ø— ‘ ˜GÓ$ˆAô$×#Ñ# E¨1Ó-×3Ñ3Ó5×<Ñ<¸WÓEˆä×&Ñ& sÓ+Ð+øô'"ò "àˆA؈CÜ�D“ ˆAؘ’'ðÜ ×,Ñ,¨T°3Ó7�AØœ3˜q›6‘M‘CøÜ!òØ!¤C¨¨S°3¸±7Ð(;Ó$<Ñ<�Aؘ1‘H’Cðúð�Q‘�ð˜“'𗑘Ó!ŠAð "ús;‚AÁC%Á9$BÂC%Â"CÃC%ÃCà C%ÃC%Ã$C%scygwin)s/usr/bins/usr/libs /cygdriveT)Úreversecój—t|«}|dk(s|dtjk7rtj|«St D][}|j |«sŒt|«}||k(r|cS||tjk(sŒ@|tj||d«zcStj|«S)Nr)r=rÚosseprÚupperÚcygwinmountpointsrS)r"ÚpathlenÚmpÚmplens rrÒrÒ sœ€Ü�d“)ˆØ �qŠL˜d 1™g¬¯©Ò7ä—>‘> $Ó'Ð '÷$ˆBØ—?‘? 2Ô&Øä˜“GˆEØ˜ÒØ’ Ø�E‰{œhŸn™nÓ,ØœHŸN™N¨4°°¨<Ó8Ñ8Ò8ð$ô�~‰~˜dÓ#Ð#r!có—y©NFrCr's rr›r›#ó€Ør!có—yrïrCr's rr¨r¨)rðr!Ú_needsshellquoterscóÄ—tjdk(rd|zSt€tjd«j a|r t|«s|Sd|j dd«zS)NrMs"%s"s[^a-zA-Z0-9._/+-]s'%s'rPs'\'')rrRròÚreÚcompileÚsearchÚreplace©rss rr^r^0s\€Ü×јzÒ)ؘ‰{ÐäÐÜŸ:™:Ð&;Ó<×CÑCÐÙÔ! !Ô$àˆà˜Ÿ™ 4¨Ó2Ñ2Ð2r!có0—tj|d¬«S)z7Parse a command string in POSIX shell way (best-effort)T)Úposix)rÚ shlexsplitrøs rÚ shellsplitrü=s€ä × Ñ ˜q¨Ô -Ð-r!ÚpidcóÀ—tjdk(ry tj|d«y#t$r'}|j t j k7cYd}~Sd}~wwxYw)z5return False if pid dead, True if running or not surerMTrN)rrRrFÚkillrrÚESRCH)rýr¬s rÚtestpidrBsK€ä×јzÒ)Øð)Ü �‰��QŒØøÜ ò)Ø�z‰zœUŸ[™[Ñ(Õ(ûð)ús–-­ A¶AÁAÁArrcóD—|jtj«k(S)z;Return True if the stat object st is from the current user.)Úst_uidrFÚgetuid©rrs rÚisownerrMs€à �9‰9œŸ ™ › Ñ #Ð#r!ÚcommandcóÞ—tjdk(r|Sdtdttfd„}tj|vr||«Stjdk(r&|t j jd|««Stjjdd«jtj«D].}|t j j||««}|€Œ,|cSy ) zçFind executable for command searching like which does. If command is a basename then PATH is searched for command. PATH isn't searched if command is an absolute or relative path. If command isn't found None is returned.rMÚ executablercó�— tjj|«r&tj|tj«r|Syr$)rFr"ÚisfileÚaccessÚX_OK)r s rÚ findexistingzfindexe..findexistingZs/€Ø2Ü �7‰7�>‰>˜*Ô %¬"¯)©)°JÄÇÁÔ*HØÐ Ør!splan9s/binsPATHr!N) rrRÚbytesr rèrFr"rŠrÚenvironÚgetrAÚ ospathsep)rrr"r s rÚfindexerRsÈ€ô ×јzÒ)؈ð¤ð¬8´E©?óô ‡~�~˜Ñ Ù˜GÓ$Ð$ä×јxÒ'ÙœBŸG™GŸL™L¨°'Ó:Ó;Ð;ä× Ñ ×$Ñ$ W¨cÓ2×8Ñ8¼×9KÑ9KÖLˆÙ!¤"§'¡'§,¡,¨t°WÓ"=Ó>ˆ Ø Ñ !ØÒ ðMð r!có—yr$rCrCr!rÚsetsignalhandlerrmrÁr!Úfilesc#óÖK—tj}tj}|D])} ||«}||j«t vrd}|–—Œ+y#t tf$rd}YŒwxYw­w)zqStat each file in files. Yield each stat, or None if a file does not exist or has a type we don't care about.N)rFrGrkÚS_IFMTrdÚ _wantedkindsr|ÚNotADirectoryError)rrGÚgetkindÚnfrrs rÚ statfilesrtsjèø€ô �H‰H€EÜ�k‰k€GÛˆð Ù�r“ˆBÙ�r—z‘zÓ"¬,Ñ6Ø�ð‹ñøô "Ô#5Ð6ò ØŠBð üs(‚&A)©"AÁ A)ÁA&Á#A)Á%A&Á&A)cóP—tjtj««S)zreturn name of current user)rr¡r½ÚgetuserrCr!rrrƒs€ä × Ñ œWŸ_™_Ó.Ó /Ð/r!Úuidcó®—|€tj«} tjt j |«d«S#t $rd|zcYSwxYw)ziReturn the name of the user with the given uid. If uid is None, return the name of the current user.rs%d)rFrrr¡ÚpwdÚgetpwuidÚKeyError)r s rÚusernamer%ˆsQ€ð  €{Ü�i‰i‹kˆðÜ× Ñ ¤§¡¨cÓ!2°1Ñ!5Ó6Ð6øÜ òØ�s‰{Òðús˜*AÁAÁAÚgidcóΗ|€tj«} tjt j |«d«S#t $rtj|«cYSwxYw)zkReturn the name of the group with the given gid. If gid is None, return the name of the current group.r)rFÚgetgidrr¡ÚgrpÚgetgrgidr$Úbytestr)r&s rÚ groupnamer,•sX€ð  €{Ü�i‰i‹kˆð%Ü× Ñ ¤§¡¨cÓ!2°1Ñ!5Ó6Ð6øÜ ò%Ü×Ñ Ó$Ò$ð%ús˜*AÁA$Á#A$cóÀ—tj|«}tjtjt t j |«j««S)zkReturn the list of members of the group with the given name, KeyError if the group does not exist. )rr Úrapplyr¡Úlistr)ÚgetgrnamÚgr_memr5s rÚ groupmembersr2¢s?€ô × Ñ ˜TÓ "€DÜ �?‰?œ8×,Ñ,¬d´3·<±<ÀÓ3E×3LÑ3LÓ.MÓ NÐNr!r_cóv—tjtjttdd«z|d|«S)NÚP_DETACHr)rFÚspawnvpÚP_NOWAITr)r_s rÚ spawndetachedr7ªs+€Ü �:‰:”b—k‘k¤G¬B° ¸AÓ$>Ñ>ÀÀQÁÈÓ NÐNr!có(—tjddS)Nr)ÚsysÚargvrCr!rÚgethgcmdr;®s€Ü �8‰8�B�Qˆ<Ðr!Ú notindexedcó.—tj|«yr$)rFrŒ)r"r<s rÚmakedirr>²s €Ü‡H�HˆT…Nr!ÚkeyÚscopecó—yr$rC)r?r3r@s rÚ lookupregrB¶s€ð r!có—y)zšHide current shell window. Used to hide the window opened when starting asynchronous child process under Windows, unneeded on other systems. NrCrCr!rÚ hidewindowrD¾s€ð  r!có`—eZdZdeddfd„Zdefd„ZejZde defd„Z de defd„Z y) Ú cachestatr"rNcó8—tj|«|_yr$)rFrk)Úselfr"s rÚ__init__zcachestat.__init__Ès€Ü—G‘G˜D“Mˆ� r!có@—t|jj«Sr$)rprkÚst_ino)rHs rÚ cacheablezcachestat.cacheableËs€Ü�D—I‘I×$Ñ$Ó%Ð%r!Úothercó¬— |jj|jjk(x�r•|jj|jjk(x�re|jj|jjk(x�r5|jj|jjk(x�r|jj |jj k(xrÖ|jj |jj k(xr§|jj|jjk(xrx|jtj|jtjk(xr;|jtj|jtjk(S#t$rYywxYwrï) rkrdrKrÌrHrÚst_gidÚst_sizeÚST_MTIMEÚST_CTIMEr¦©rHrMs rÚ__eq__zcachestat.__eq__Ðsf€ð ð— ‘ ×!Ñ! U§Z¡Z×%7Ñ%7Ñ7óJØ—I‘I×$Ñ$¨¯ © ×(9Ñ(9Ñ9óJà—I‘I×$Ñ$¨¯ © ×(9Ñ(9Ñ9óJð—I‘I×&Ñ&¨%¯*©*×*=Ñ*=Ñ=óJð—I‘I×$Ñ$¨¯ © ×(9Ñ(9Ñ9ò Jð —I‘I×$Ñ$¨¯ © ×(9Ñ(9Ñ9ò Jð —I‘I×%Ñ%¨¯©×);Ñ);Ñ;ò Jð—I‘IœdŸm™mÑ,°· ± ¼4¿=¹=Ñ0IÑIòJð—I‘IœdŸm™mÑ,°· ± ¼4¿=¹=Ñ0IÑIð øôò Ùð ús‚GGÇ GÇGcó—||k( Sr$rCrSs rÚ__ne__zcachestat.__ne__ås€Ø˜5‘=Ð Ð r!) Ú__name__Ú __module__Ú __qualname__rrIrprLÚobjectÚ__hash__rrTrVrCr!rrFrFÇsR„ð"˜Uð" tó"ð&˜4ó&ð�‰€Hð˜Cð Dóð*!˜Cð! Dô!r!rFcóH—|rtj|j«SdS)z(check whether a stat result is a symlinkF)rkrlrdrs rÚ statislinkr]és€á')Œ4�<‰<˜Ÿ ™ Ó #Ð4¨uÐ4r!có.—|r|jdzdk7SdS)z1check whether a stat result is an executable filercrF)rdrs rÚ statisexecr_îs€á(*ˆB�J‰J˜Ñ  !Ñ #Ð5°Ð5r!c ó®— tj|||«}tt t t |g««««S#t$r t«‚wxYw)zöblock until something happens on any file descriptor This is a generic helper that will check for any activity (read, write. exception) and return the list of touched files. In unsupported cases, it will raise a NotImplementedError)ÚselectrÜr&Úsortedr/ÚsetÚsum)ÚfdsÚress rÚpollrgósP€ð$Ü�m‰m˜C  cÓ*ˆô ”$”sœ3˜s B›<Ó(Ó)Ó *Ð*øô ò$Ü!Ó#Ð#ð$ús ‚AÁAcóì—tj|tj«}|tjz}tj|tj|«} g} |j «}|sn|j |«Œ&dj|«tj|tj|«S#t$rYŒAwxYw#tj|tj|«wxYw)z$Read all available data from a pipe.r!) ÚfcntlÚF_GETFLrFÚ O_NONBLOCKÚF_SETFLrmÚappendr�rŠ)ÚpipeÚflagsÚoldflagsÚchunksrss rÚreadpiperrs½€ô �K‰K˜œeŸm™mÓ ,€EØ ŒR�]‰]Ñ€EÜ�{‰{˜4¤§¡°Ó6€Hð 3؈Øð Ø—I‘I“K�ÙØØ— ‘ ˜aÔ ð ð�x‰x˜Óä � ‰ �Dœ%Ÿ-™-¨Õ2øô ò Ùð ûô � ‰ �Dœ%Ÿ-™-¨Õ2ús<ÁC Á"B=Á4C Á5B=ÂC Â= C ÃC ÃC à C à 'C3có~—tjj|«\}}d} |r9tjdtj«}tj |«|j |«|rtj|«|rtj|«yy#|rtj|«wwxYw)z1Bind the UNIX domain socket to the specified pathNó.) rFr"rArÚ O_DIRECTORYÚchdirÚbindÚfchdirr�)Úsockr"Údirnamer£Úbakwdfds rÚbindunixsocketr|sŒ€ô Ÿ™Ÿ ™  dÓ+Ñ€GˆXØ€Gð Ù Ü—g‘g˜d¤B§N¡NÓ3ˆGÜ �H‰H�WÔ Ø � ‰ �(ÔÙ Ü �I‰I�gÔ á Ü �H‰H�WÕ ð ø‰7Ü �H‰H�WÕ ð ús ¦A#B"Â"B<rï)rNr$)NN)nrrir½r)rFr"rôrarkr9ržÚtypingrÞrrrrrrr r r r r Úi18nrrrrr»rrrÚ importmodrr"r(Úsamestatr+Úlinkr r¦rr.r0r2r6Ú TYPE_CHECKINGr7rpÚ__annotations__r8ÚintÚ posixfilerArDrIrVr`rerwrr›r¨r®r±r¸r¾rÀrÃrÆrÊrÏrÒÚ normcasespecsrÑrÓr×ÚisdarwinrRrbrêrMròr^rürÚ stat_resultrrrÚS_IFREGÚS_IFLNKrrrr%r,r2r7r;r>rBrDrFr]r_rgrrr|rCr!rÚr‹s“ðô Û ÛÛ Û Û Û Û Û Û ÛÛ Û÷ ÷ ÷ ñ õ÷÷óð ˆ× Ñ ˜(Ó #€à �7‰7× Ñ €Ø �7‰7× Ñ €Ø �'‰'�/‰/€ð  Ø �W‰W€Fð �;‰;€Ø �‰€Ø �‰€Ø �]‰]€ à ×Òð"�uð" ó"ð"�fð" ó"ð"�Eð" ð"¨$ó"ð"�uð" ó"ð"�Uð"˜tó"ð"�Eð" ð"¨$ó"ð"˜ð" 4ó"ð€ ˆTÓà ˆR�X‰X�a‹[€€sÓØ€‡�ˆ„à € ðˆUð�u˜U E˜\Ñ*óð.�tóð #�ð#˜3ó#ð  %ð ¨Eó ð Ø ð Øð Ø&.¨u¡oð Ø=EÀe¹_ð à ó ð,ˆeð,˜ó,ð )�ð)˜$ð) 4ð)¨Dó)ð^!Ø!ñ Ø ðà ðð �5‰/ððð ð  ó ð2M�EðM˜dóMð`>�Eð>˜dó>ðB˜%ð H¨U¡Oóð G˜UðG x°¡óGðA�uðA ¨%¡óAð4�eó4ó ð�5ð˜Uóð�Eð˜eóð,�Uð, Eð,¨dó,ð $�uð$ eð$°ó$ð�5ð˜Uóð ×*Ñ*×0Ñ0€ ˆcÓ0àÐà ×Òð*�uð* ó*ð.×)Ñ)×/Ñ/€Lð,˜uð,¨ó,ð2 ×ј9Ò$ñ ò ð ô Ðð$�uð$ ó$ð&×)Ñ)×/Ñ/€LØÐð ˜ð $óð ˜ð $óð,0Ð�(˜5 ™<Ñ(Ó/ð 3�%ð 3˜Eó 3ð.�%ð.˜D ™Kó.ð )�ð)˜ó)ð$�—‘ð$ 4ó$ð �Uð˜x¨™óó6 ð— ‘ ˜dŸl™lÐ+€ ð �X˜e‘_ð ¨°(¸2¿>¹>Ñ2JÑ)Kó ð0�ó0ñ �(˜3‘-ð ¨8°E©?ó ñ %�8˜C‘=ð %¨H°U©Oó %ðO�uðO  e¡óOðO˜˜U™ ðO¨óOòð�%ð Tð¨dóð !Ø15ñØ ðà �5‰/ðð �E˜#˜x¨™}Ð,Ñ-Ñ .ððˆe�_ó ó ÷!ñ!ðD5�8˜BŸN™NÑ+ð5°ó5ð 6�8˜BŸN™NÑ+ð6°ó6ò +ð3�eó3ð2˜uð¨ôøðCò ð  �Eð  ð ¨(ö ð  úsÂ? PÐPÐP