Ë 4M±õGãó0—ddlmZddlmZmZmZmZmZmZddl m Z m Z ejd«Zejd«Zej"Ze€ ej$Zn ej$ZdZdZdZd Zd ZGd „d «ZGd „de«Ze� Gd„de«Zyy)é)Ú_)ÚerrorÚpathutilÚpolicyÚtestingÚtxnutilÚutil)ÚdocketÚv2ÚparsersÚdirstateNiÿÿÿééécóŽ—eZdZdZdZdZd„Zd„Zd„Zd„Z d„Z dd„Z d „Z d „Z d „Zd „Zd „Zdd„Zed„«Zd„Zd„Zd„Zdd„Zy)Ú_dirstatemapcommonz… Methods that are identical for both implementations of the dirstatemap class, with and without Rust extensions enabled. Ncóh—||_||_||_||_||_d|_d|_d|_d|_d|_ |jdd«}|dk(rt|_ d|_y|dk(rt|_ d|_y|dk(rt|_ d|_yt|_ d|_y) NsdirstateéFsdevelsdirstate.v2.data_update_modesautos force-appends force-new)Ú_use_dirstate_v2Ú_nodeconstantsÚ_uiÚ_openerÚ_rootÚ _filenameÚ_nodelenÚ_parentsÚ _dirtyparentsÚ_docketÚconfigÚWRITE_MODE_AUTOÚ _write_modeÚWRITE_MODE_FORCE_APPENDÚWRITE_MODE_FORCE_NEWÚ _pendingmode)ÚselfÚuiÚopenerÚrootÚ nodeconstantsÚuse_dirstate_v2Ú write_modes ú9usr/lib/python3.12/site-packages/mercurial/dirstatemap.pyÚ__init__z_dirstatemapcommon.__init__6sÂ€Ø /ˆÔØ+ˆÔ؈ŒØˆŒ ؈Œ Ø$ˆŒØˆŒ ؈Œ Ø"ˆÔ؈Œ Ø—Y‘Y˜xÐ)HÓIˆ Ø ˜Ò Ü.ˆDÔ ð!ˆÕð˜?Ò *Ü6ˆDÔ ð!ˆÕð˜<Ò 'Ü3ˆDÔ ð !ˆÕô /ˆDÔ ð!ˆÕócó.—|j«|_y©N)Ú_get_current_identityÚidentity©r%s r,Ú _set_identityz _dirstatemapcommon._set_identityOs€Ø×2Ñ2Ó4ˆ� r.có’— tj|jj|j««S#t $rYywxYwr0)r Ú cachestatrÚjoinrÚFileNotFoundErrorr3s r,r1z(_dirstatemapcommon._get_current_identityRs;€ð Ü—>‘> $§,¡,×"3Ñ"3°D·N±NÓ"CÓDÐ DøÜ ò Ùð ús‚7:º AÁAcóÔ—dt|«vry|j€y|jj«sy|j«}|€y|j«sy||jk7S)Nr2T)Úvarsr2Ú cacheabler1)r%Úcurrent_identitys r,Úmay_need_refreshz#_dirstatemapcommon.may_need_refreshXsk€Ø œT $›ZÑ 'àØ �=‰=Ð ØØ�}‰}×&Ñ&Ô(ðØ×5Ñ5Ó7ÐØ Ð #ØØ×)Ñ)Ô+ðØ 4§=¡=Ñ0Ð0r.có—|jy)z5Loads the underlying data, if it's not already loadedN©Ú_mapr3s r,Úpreloadz_dirstatemapcommon.preloadks €à � ‹ r.có:—|jj||«Sr0)r@Úget)r%ÚkeyÚdefaults r,rCz_dirstatemapcommon.getos€Ø�y‰y�}‰}˜S 'Ó*Ð*r.có,—t|j«Sr0)Úlenr@r3s r,Ú__len__z_dirstatemapcommon.__len__rs€Ü�4—9‘9‹~Ðr.có,—t|j«Sr0©Úiterr@r3s r,Ú__iter__z_dirstatemapcommon.__iter__us€Ü�D—I‘I‹Ðr.có—||jvSr0r?)r%rDs r,Ú __contains__z_dirstatemapcommon.__contains__xs€Ø�d—i‘iÐÐr.có —|j|Sr0r?)r%Úitems r,Ú __getitem__z_dirstatemapcommon.__getitem__{s€Ø�y‰y˜‰Ðr.có—tj|j|j|j«\}}|j �=|j |k7r.|j «tjtd««‚||_|S)Ns1working directory state may be changed parallelly) rÚ trypendingrrrr$ÚcloserÚAbortr)r%ÚfpÚmodes r,Ú_opendirstatefilez$_dirstatemapcommon._opendirstatefile€sq€Ü×%Ñ% d§j¡j°$·,±,ÀÇÁÓO‰ˆˆDØ × Ñ Ð (¨T×->Ñ->À$Ò-FØ �H‰HŒJÜ—+‘+ÜÐFÓGóð ð!ˆÔ؈ r.có�— |j«5}|j|«cddd«S#1swYyxYw#t$rYywxYw)Nr.)rXÚreadr8)r%ÚsizerVs r,Ú_readdirstatefilez$_dirstatemapcommon._readdirstatefileŠs=€ð Ø×'Ñ'Ô)¨RØ—w‘w˜t“}÷*×)Ò)ûä ò áð ús#‚9’-£ 9­6²9¶9¹ AÁAcóœ—|jsµ|jstjd«‚|j «|j «}|dk(s|j tj«r;tjj||j«|_|jStjd«‚|jS)Ns'dirstate only has a docket in v2 formatr.sdirstate is not in v2 format) rrrÚProgrammingErrorr4r\Ú startswithÚ docketmodÚV2_FORMAT_MARKERÚDirstateDocketÚparserÚCorruptedDirstate)r%Údatas r,r z_dirstatemapcommon.docket’s©€à�|Š|Ø×(Ò(Ü×,Ñ,Ø>óðð × Ñ Ô Ø×)Ñ)Ó+ˆDØ�sŠ{˜dŸo™o¬i×.HÑ.HÔIÜ(×7Ñ7×=Ñ=ؘ$×-Ñ-ó �” ð �|‰|Ðô×-Ñ-Ð.MÓNÐNØ�|‰|Ðr.có†—d}d}|tkrC|dz } |jj|jj ««}|tkrŒC|€'|tk\sJ‚d}||z}tj|«‚|jj|jj ««S#t $r d|_YŒxwxYw)Nrrs-dirstate read race happened %d times in a row) ÚV2_MAX_READ_ATTEMPTSrrZr Ú data_filenamer8rrrU)r%reÚattemptsÚmsgs r,Ú _read_v2_dataz _dirstatemapcommon._read_v2_data£s¾€ØˆØˆØÔ-Ò-Ø ˜‰MˆHð $à—|‘|×(Ñ(¨¯©×)BÑ)BÓ)DÓE�ð Ô-Ó-ð ˆ<ØÔ3Ò3Ð 3Ð3ØBˆCØ �8‰OˆCÜ—+‘+˜cÓ"Ð "Ø�|‰|× Ñ  §¡×!:Ñ!:Ó!<Ó=Ð=øô%ò $ð $�– ð $ús”3B-Â-CÂ?Ccóð‡‡ — ‰j}tjj ‰j «t|«|«}|�.|j|jk(rtjd«‚|j«Š ‰jj‰ |«|�|j‰ d¬«|j|j««|j«|�j|jr^|j«Š |�|j‰ d¬«dˆ ˆfd„ }|r)d|jz}|j!||«|‰_y|«|‰_y#tj$rd}Y�ŒdwxYw)Nsdirstate docket name collisionóplain©Úlocationcó:•—‰jj‰«Sr0)rÚunlink)Ú_trrhr%s €€r,Úz7_dirstatemapcommon.write_v2_no_append..Ùsø€ d§l¡l×&9Ñ&9¸-Ô&Hr.sdirstate-v2-clean-r0)r rrdr`rbÚ with_new_uuidÚparentsrGÚuuidr^rhrÚwriteÚ addbackupÚ serializerTÚ addpostcloser) r%ÚtrÚstÚmetaÚpackedÚ old_docketÚ new_docketrqÚcategoryrhs ` @r,Úwrite_v2_no_appendz%_dirstatemapcommon.write_v2_no_append¶sEù€ð ØŸ™ˆJô×-Ñ-×;Ñ;Ø �L‰L‹NœC ›K¨ó ˆ ð Ð ! j§o¡o¸¿¹Ò&HÜ×(Ñ(Ð)JÓKÐ KØ"×0Ñ0Ó2ˆ Ø � ‰ ×ј=¨&Ô1à ˆ>Ø �L‰L˜°ˆLÔ :ð �‰�×%Ñ%Ó'Ô(Ø �‰Œ ð Ð ! j§o¢oØ&×4Ñ4Ó6ˆM؈~Ø— ‘ ˜]°X� Ô>ÝHˆFÙØ0°:·?±?ÑB�Ø—‘ ¨&Ô1ð"ˆ� ñ”Ø!ˆ� øôM×&Ñ&ò ð‹Jð ús„ EÅE5Å4E5cóJ—|jsP|jr4 |j|jj|_|jS|j «|jS#tj $r&}|j |«Yd}~|jSd}~wwxYwr0)rrr rurrdÚ _v1_parents)r%Úes r,ruz_dirstatemapcommon.parentsãsŠ€Ø�}Š}Ø×$Ò$ð8Ø—K’Kð %)§K¡K×$7Ñ$7�D”Mð�}‰}Ðð× Ñ Ô"à�}‰}Ðøô×.Ñ.ò(à×$Ñ$ Q×'Ð'ð �}‰}Ðûð(úsš A)Á)B"Á<BÂB"cóŽ—|jdz}|j|«}t|«}||k(r1|d|j||jd|jzf|_y|dk(r2|jj |jj f|_yd}|� t d«}tjt d«|«‚)Nrrs/falling back to dirstate-v1 from v2 also faileds(working directory state appears damaged!) rr\rGrrÚnullidrrrU)r%Úfrom_v2_exceptionÚread_lenr|ÚlÚhints r,r„z_dirstatemapcommon._v1_parentsòs€Ø—=‘= 1Ñ$ˆØ × #Ñ # HÓ -ˆÜ �‹GˆØ �Š=à�?�T—]‘]Ð#Ø�4—=‘= 1 t§}¡}Ñ#4Ð5ðˆD�Mð�!ŠVà×#Ñ#×*Ñ*Ø×#Ñ#×*Ñ*ðˆD�Mð ˆDØ Ð,ÜÐKÓL�Ü—+‘+ÜÐ=Ó>Àóð r.r0)éÿÿÿÿ)Ú__name__Ú __module__Ú __qualname__Ú__doc__r@Úcopymapr-r4r1r=rArCrHrLrNrQrXr\Úpropertyr rkr‚rur„©r.r,rr+sx„ñð €DØ€Gò!ò25òò 1ò&ó+òòò òò óðñóðò >ò&)"òZ ôr.rcó—eZdZdZed„«Zed„«Zd„Zd„ZeZ d„Z d„Z dd„Z d „Z d „Zed „«Zdd „Zdd„Zed„«Zed„«Zd„Zd„Zed„«Zed„«Z dd„Zd„Zd„Zd„Zd„Zd„Zd„Zy ) Ú dirstatemapa´Map encapsulating the dirstate's contents. The dirstate contains the following state: - `identity` is the identity of the dirstate file, which can be used to detect when changes have occurred to the dirstate file. - `parents` is a pair containing the parents of the working copy. The parents are updated by calling `setparents`. - the state map maps filenames to tuples of (state, mode, size, mtime), where state is a single character representing 'normal', 'added', 'removed', or 'merged'. It is read by treating the dirstate as a dict. File state is updated by calling various methods (see each documentation for details): - `reset_state`, - `set_tracked` - `set_untracked` - `set_clean` - `set_possibly_dirty` - `copymap` maps destination filenames to their source filename. The dirstate also provides the following views onto the state: - `filefoldmap` is a dict mapping normalized filenames to the denormalized form that they appear as in the dirstate. - `dirfoldmap` is a dict mapping normalized directory names to the denormalized form that they appear as in the dirstate. cóH—i|_|j«|jSr0)r@rZr3s r,r@zdirstatemap._map-s€àˆŒ Ø � ‰ Œ Ø�y‰yÐr.có@—i|_|j|jSr0)r‘r@r3s r,r‘zdirstatemap.copymap3s€àˆŒ Ø � Š Ø�|‰|Ðr.có�—|jj«|jj«|j|jj |jj «t j|d«t j|d«t j|d«t j|d«y)Nó_dirsó_alldirss filefoldmapó dirfoldmap)r@Úclearr‘Ú setparentsrr‡r Úclearcachedpropertyr3s r,rœzdirstatemap.clear9s†€Ø � ‰ �‰ÔØ � ‰ ×ÑÔØ �‰˜×+Ñ+×2Ñ2°D×4GÑ4G×4NÑ4NÔOÜ × Ñ   xÔ0Ü × Ñ   {Ô3Ü × Ñ   ~Ô6Ü × Ñ   }Õ5r.có6—|jj«Sr0©r@Úitemsr3s r,r¡zdirstatemap.itemsBs€Ø�y‰y�‰Ó Ð r.c#óžK—|j«D]6\}}||j|j|j|jf–—Œ8y­w)z… Return an iterator of (filename, state, mode, size, mtime) tuples `all` is unused when Rust is not enabled N)r¡ÚstaterWr[Úmtime)r%ÚallÚfilenamerPs r,Ú debug_iterzdirstatemap.debug_iterHs>èø€ð !%§ ¡ ¦ Ñ ˆX�tؘTŸZ™Z¨¯©°D·I±I¸t¿z¹zÐJÓ Jñ!-ùs‚A A có6—|jj«Sr0)r@Úkeysr3s r,r©zdirstatemap.keysQs€Ø�y‰y�~‰~ÓÐr.cóò—||f|_d|_i}|rb|jj«D]E\}}|jsŒ|j j |d«}|r|||<|j«ŒG|S©NT)rrr@r¡Úp2_infor‘ÚpopÚdrop_merge_data)r%Úp1Úp2Úfold_p2ÚcopiesÚfÚsÚsources r,r�zdirstatemap.setparentsVsr€Ø˜R˜ˆŒ Ø!ˆÔ؈٠؟ ™ Ÿ™Ö)‘��1à—9“9Ø!Ÿ\™\×-Ñ-¨a°Ó6�FÙØ$*˜˜q™ Ø×%Ñ%Õ'ð *ðˆ r.có^—tj|jd«|jrU |j|jj sytj|jd«|j «}n |j«|j«}|sytjtd«r&tjt|«dz«|_|jr| |j|jj"}|jj$}tj&t(j*«}||j |j,||«nAtj&tj*«}||j |j,|«}|j.s|j0|Ž|j j2|_|j j4|_|j j6|_y#tj$r$|j«|j«}Y�Œ¯wxYw#tj$rDtj&tj*«}||j |j,|«}YŒýwxYw)Nódirstate.pre-read-fileódirstate.post-docket-read-fileÚdict_new_presizedéG)rÚ wait_on_cfgrrr rvrkrrdr4r\r Ú safehasattrr r¹rGr@ruÚ tree_metadataÚnogcr Úparse_dirstater‘rr�rNrQrC)r%r|Úpr}r¿s r,rZzdirstatemap.readfsý€Ü×јDŸH™HÐ&?Ô@Ø × Ò ð *Ø— ’ ð —{‘{×'Ò'ØÜ×#Ñ# D§H¡HÐ.OÔPØ×'Ñ'Ó)‘à × Ñ Ô Ø×'Ñ'Ó)ˆBáØ ô × Ñ œGÐ%8Ô 9ô ×1Ñ1´#°b³'¸R±-Ó@ˆDŒIð × Ò ð BØ— ’ ð —K‘K×'Ñ'�Ø—{‘{×0Ñ0�Ü!%§¡¬2×+<Ñ+<Ó!=�Ù˜tŸy™y¨$¯,©,¸¸DÕAä!ŸY™Y¤w×'=Ñ'=Ó>ˆNÙ˜tŸy™y¨$¯,©,¸Ó;ˆAØ×!Ò!Ø ˆD�O‰O˜QÑ ð!ŸI™I×2Ñ2ˆÔØŸ9™9×0Ñ0ˆÔØ—9‘9—=‘=ˆ�øôw×*Ñ*ò .à×"Ñ"Ô$Ø×+Ñ+Ó-“ð .ûôR×*Ñ*ò @ä!%§¡¬7×+AÑ+AÓ!B�Ù" 4§9¡9¨d¯l©l¸BÓ?’ð @ús$® HÃ2 IÈ3IÉIÉAJ,Ê+J,cóp—|jrItj|j|j«\}}|j ||||«d|_ yt j|j|j|j««}|j|«|j«d|_ y©NF) rr Ú pack_dirstater@r‘r‚r rurwrTr)r%r{r|r~r}s r,rwzdirstatemap.write¨s�€Ø × Ò Ü×+Ñ+¨D¯I©I°t·|±|ÓD‰LˆF�DØ × #Ñ # B¨¨D°&Ô 9ð#ˆÕô ×*Ñ*Ø— ‘ ˜4Ÿ<™<¨¯©«óˆFð �H‰H�VÔ Ø �H‰HŒJØ"ˆÕr.có2—|j|jSr0©r@r2r3s r,r2zdirstatemap.identity´s€à � Š Ø�}‰}Ðr.NcóÌ—|� |jr)d|jvr|jj|«|€+d|jvr|jj|«yyy)z,increment the dirstate counter if applicableNÚ_dirsÚ_alldirs)ÚremovedÚ__dict__rÇÚaddpathrÈ)r%r¦Ú old_entrys r,Ú _dirs_incrzdirstatemap._dirs_incr¼s[€ð Ð  ×!2Ò!2ؘŸ™Ñ&Ø �J‰J× Ñ ˜xÔ (Ø Ð  ¨t¯}©}Ñ!<Ø �M‰M× !Ñ ! (Õ +ð"=Ð r.có —|�ad|jvr'|js|jj|«d|jvrI|sG|jj|«n+|r)d|jvr|jj |«d|jvr2t j|«}|jj|d«yy)z,decrement the dirstate counter if applicableNrÇrÈÚ filefoldmap) rÊrÉrÇÚdelpathrÈrËr ÚnormcaserÏr­)r%r¦rÌÚremove_variantÚnormeds r,Ú _dirs_decrzdirstatemap._dirs_decrÅs£€à Рؘ$Ÿ-™-Ñ'° ×0AÒ0AØ— ‘ ×"Ñ" 8Ô,ؘTŸ]™]Ñ*±>Ø— ‘ ×%Ñ% hÕ/Ù   ¨d¯m©mÑ ;Ø �M‰M× !Ñ ! (Ô +Ø ˜DŸM™MÑ )Ü—]‘] 8Ó,ˆFØ × Ñ × Ñ  ¨Õ .ð *r.cóH— tj}||jtjtj «S#t $rYnwxYwi}tj}|jj«D]\}}|jrŒ||||«<Œd|d<|S)zeReturns a dictionary mapping normalized case paths to their non-normalized versions. ó.) r Úmake_file_foldmapr@r Ú normcasespecÚnormcasefallbackÚAttributeErrorrÑr¡rÉ)r%Úmakefilefoldmapr³rÑÚnamer´s r,rÏzdirstatemap.filefoldmapÒsš€ð  Ü%×7Ñ7ˆOñ#Ø— ‘ œ4×,Ñ,¬d×.CÑ.Cóð øôò Ù ð úð ˆÜ—=‘=ˆØ—y‘y—‘Ö(‰GˆD�!Ø—9“9Ø$(�‘(˜4“.Ò!ð)ðˆˆ$‰Øˆs‚AÁ AÁ Acób—i}tj}|jD] }||||«<Œ|Sr0)r rÑrÇ©r%r³rÑrÜs r,Ú dirfoldmapzdirstatemap.dirfoldmapès1€à ˆÜ—=‘=ˆØ—J”JˆDØ $ˆA‰h�t‹nÒ ðàˆr.có—||jvS)zo Returns True if the dirstate contains a tracked (not removed) file in this directory. )rÇ©r%Úds r,Ú hastrackeddirzdirstatemap.hastrackeddirðs€ð �D—J‘JˆÐr.có—||jvS)zn Returns True if the dirstate contains a file (tracked or removed) in this directory. )rÈrás r,Úhasdirzdirstatemap.hasdir÷s€ð �D—M‘MÐ!Ð!r.cóD—tj|jd¬«S)NT)Ú only_tracked©rÚdirsr@r3s r,rÇzdirstatemap._dirsþs€ä�}‰}˜TŸY™Y°TÔ:Ð:r.có@—tj|j«Sr0rèr3s r,rÈzdirstatemap._alldirss€ä�}‰}˜TŸY™YÓ'Ð'r.có`—|jj|d«|sD|sB|s@|jj|«}|j |«|j ||¬«y|jj|«}|j ||«t|||||¬«}||j|<y)ahSet a entry to a given state, diregarding all previous state This is to be used by the part of the dirstate API dedicated to adjusting the dirstate after a update/merge. note: calling this might result to no entry existing at all if the dirstate map does not see any point at having one for this file anymore. N)rÌ)Ú wc_trackedÚ p1_trackedr¬Úhas_meaningful_mtimeÚparentfiledata)r‘r­r@rCÚ _drop_entryrÔrÍÚ DirstateItem) r%r¦rìrír¬rîrïrÌÚentrys r,Ú reset_statezdirstatemap.reset_states›€ð( � ‰ ×ј 4Ô(á™g©ØŸ ™ Ÿ ™  hÓ/ˆIØ × Ñ ˜XÔ &Ø �O‰O˜H° ˆOÔ :Ø à—I‘I—M‘M (Ó+ˆ Ø �‰˜ )Ô,ÜØ!Ø!ØØ!5Ø)ô  ˆð$ˆ� ‰ �(Òr.có\—d}|j|«}|€0|j|«td¬«}||j|<d}|S|js8|j||«|j «|j ||«d}|S|j«|j ||«|S)NFT)rì)rCrÍrñr@ÚtrackedÚ set_trackedÚ_refresh_entryÚset_possibly_dirty)r%r¦Únewròs r,rözdirstatemap.set_tracked/s±€ØˆØ—‘˜Ó"ˆØ ˆ=Ø �O‰O˜HÔ %Ü ØôˆEð#(ˆD�I‰I�hÑ ØˆCðˆ ð—’Ø �O‰O˜H eÔ ,Ø × Ñ Ô Ø × Ñ  ¨%Ô 0؈Cðˆ ð × $Ñ $Ô &Ø × Ñ  ¨%Ô 0؈ r.cóþ—|j|«}|€y|j|||j ¬«|js|jj |d«|j «|j||«y)z4Mark a file as no longer tracked in the dirstate mapNF)rÌrÒT)rCrÔÚaddedr¬r‘r­Ú set_untrackedr÷©r%r³ròs r,rüzdirstatemap.set_untrackedGsi€à—‘˜“ ˆØ ˆ=Øà �O‰O˜A¨À5Ç;Á;¸ˆOÔ OØ—=’=Ø— ‘ × Ñ   DÔ)Ø × Ñ Ô !Ø × Ñ   5Ô )Ør.có¢—||}|tz}|j|||«|j||«|jj |d«y)z$mark a file as back to a clean stateN)Ú rangemaskÚ set_cleanr÷r‘r­)r%r¦rWr[r¤ròs r,rzdirstatemap.set_cleanTsI€à�X‘ˆØ”iÑˆØ �‰˜˜d EÔ*Ø ×јH eÔ,Ø � ‰ ×ј 4Õ(r.cóR—||}|j«|j||«y)zÑ$>Ø Ø ŸK™K×1Ñ1Ø ŸK™K×5Ñ5Ø ŸK™K×,Ñ,Ø!ó %˜œ ð#Ÿk™k×1Ñ1‘GàŸ,™,›.�á˜t×1Ò1Ø�—‘ Ñ)à $§ ¡ × 6Ñ 6ˆDÔ Ø#Ÿy™y×4Ñ4ˆDÔ Ø—y‘y—}‘}ˆDŒHØ—9‘9Ð øôI×.Ñ.ò.à"Ÿl™l¨1›o•Gûð.ús¿ HÈIÈ)H?È?INcóJ—|j«|j�6|jj� |jjjnd} tj j |j«|«\|_}|S#t$r }|�||‚‚d}~wwxYwr0) r4r2r r rrÚnew_v1r\r@ÚOSError)r%rˆrrur…s r,rzdirstatemap._v1_map©s¡€Ø × Ñ Ô ð—=‘=Ð,°·±×1CÑ1CÐ1Oð— ‘ ×"Ñ"×)Ò)àð ð  Ü%,×%8Ñ%8×%?Ñ%?Ø×*Ñ*Ó,¨eó&Ñ"�” ˜7ðˆNøô ò Ø$Ð0ØÐ!2Ð2Øûð úsÁ6B B"ÂBÂB"có6—|jj«Sr0)r@r‘r3s r,r‘zdirstatemap.copymapºs€à—9‘9×$Ñ$Ó&Ð &r.có8—|jj|«S)zà Return an iterator of (filename, state, mode, size, mtime) tuples `all`: also include with `state == b' '` dirstate tree nodes that don't have an associated `DirstateItem`. )r@r§)r%r¥s r,r§zdirstatemap.debug_iter¾s€ð—9‘9×'Ñ'¨Ó,Ð ,r.có0—|jj«|j|jj|jj«t j |d«t j |d«t j |d«y)Nr™ršr›)r@rœr�rr‡r ržr3s r,rœzdirstatemap.clearÈsk€Ø �I‰I�O‰OÔ Ø �O‰OØ×#Ñ#×*Ñ*¨D×,?Ñ,?×,FÑ,Fô ô × $Ñ $ T¨8Ô 4Ü × $Ñ $ T¨;Ô 7Ü × $Ñ $ T¨=Õ 9r.có6—|jj«Sr0r r3s r,r¡zdirstatemap.itemsÑs€Ø—9‘9—?‘?Ó$Ð $r.có,—t|j«Sr0rJr3s r,r©zdirstatemap.keys×s€Ü˜Ÿ ™ “?Ð "r.cób—||f|_d|_i}|r|jj«}|Sr«)rrr@Úsetparents_fixup)r%r¯r°r±r²s r,r�zdirstatemap.setparentsÜs4€Ø ˜HˆDŒMØ!%ˆDÔ ØˆFÙØŸ™×3Ñ3Ó5�؈Mr.có2—|j|jSr0rÅr3s r,r2zdirstatemap.identityæs€à �IŠIØ—=‘=Ð r.cób—|jsX|j«\}}|jj||«}|j |«|j «d|_y|j} |j}|� |j€t}|jj|«\}}} | �r#|j}|j«} |�|j| d¬«|j!| d«5} | j#|j$«| j'«|j$k(sJ‚| j |«} | � | t)|«k(sJ| t)|«f«‚ddd«|xj$t)|«z c_|j«|_||_|j |j-««|j «n|j/||||«t1j2|d«d|_y#tj$rd}Y�Œ£wxYw#1swYŒÁxYw)NFrmrnsr+bs_map)rrur@Úwrite_v1rwrTrr!r rrdrvr#Úwrite_v2rhrxrÚseekrÚtellrGr½ryr‚r rž) r%r{r|r¯r°r~r+r r}ÚappendrhrVÚwrittens r,rwzdirstatemap.writeësÛ€Ø×(Ò(ØŸ™›‘��BØŸ™×+Ñ+¨B°Ó3�Ø—‘˜Ô Ø—‘” Ø%*�Ô"Øà×)Ñ)ˆJð ØŸ™�ð ˆ~ §¡Ð!4Ü1� Ø#'§9¡9×#5Ñ#5°jÓ#AÑ ˆF�D˜&ÚØŸ™�Ø &× 4Ñ 4Ó 6� ð�>Ø—L‘L ¸�LÔBØ—\‘\ -°Ô8¸BØ—G‘G˜F×,Ñ,Ô-ØŸ7™7›9¨×(8Ñ(8Ò8Ð8Ð8Ø Ÿh™h vÓ.�GØÐ*Ø&¬#¨f«+Ò5ÐM¸ÄÀVÃÐ7MÓMÐ5÷ 9ð × Ò ¤C¨£KÑ/Õ Ø!%§¡£�”Ø'+�Ô$Ø—‘˜×)Ñ)Ó+Ô,Ø—‘• à×'Ñ'¨¨B°°fÔ=ä × $Ñ $ T¨7Ô 3Ø!&ˆDÕ øôE×*Ñ*ò à“ð ú÷&9Ð8úsÁ2 H Ã7A.H%È H"È!H"È%H.có6—|jj«S)zmReturns a dictionary mapping normalized case paths to their non-normalized versions. )r@Úfilefoldmapasdictr3s r,rÏzdirstatemap.filefoldmaps€ð —9‘9×.Ñ.Ó0Ð 0r.có8—|jj|«Sr0)r@rãrás r,rãzdirstatemap.hastrackeddir%󀨗9‘9×*Ñ*¨1Ó-Ð -r.có8—|jj|«Sr0)r@rårás r,råzdirstatemap.hasdir(s€Ø—9‘9×#Ñ# AÓ&Ð &r.có~—i}tj}|jj«D] }||||«<Œ|Sr0)r rÑr@Ú tracked_dirsrÞs r,rßzdirstatemap.dirfoldmap+s:€àˆAÜ—}‘}ˆHØŸ ™ ×.Ñ.Ö0�Ø$(�‘(˜4“.Ò!ð1àˆHr.có8—|jj|«Sr0)r@rörs r,rözdirstatemap.set_tracked5s€Ø—9‘9×(Ñ(¨Ó+Ð +r.có8—|jj|«Sr0)r@rürs r,rüzdirstatemap.set_untracked8r*r.có@—|jj||||«yr0)r@r)r%r¦rWr[r¤s r,rzdirstatemap.set_clean;s€Ø �I‰I× Ñ  ¨$°°eÕ s€Ø �I‰I× (Ñ (¨Õ +r.cóB—|jj||||||«Sr0)r@ró)r%r¦rìrír¬rîrïs r,rózdirstatemap.reset_stateAs-€ð—9‘9×(Ñ(ØØØØØ$Øó ð r.r0rr)r�rŽr�rr@rr’r‘r§rœr¡r r©r�r2rwrÏrãrårßrörürrørór“r.r,r•r•ssÆ„ð ñ/ ó ð/ ób ð" ñ 'ó ð 'ò -ò :ò %ðˆ ò #ó  ð ñ !ó ð !ò. 'ðf ñ 1ó ð 1ò  .ò 'ð ñ ó ð ò ,ò .ò =ò ,ð ØØØ!%Øô r.)Úi18nrÚrrrrrr Ú dirstateutilsr r`r Ú importmodr Ú importrustrrrñrÿr r#r"rgrr•r“r.r,Úr8s¼ðõ÷÷÷ð ˆ&× Ñ ˜9Ó %€Ø ˆ&× Ñ ˜JÓ '€à×"Ñ"€ à €?Ø×'Ñ'�Là×'Ñ'€Là € à€ØÐØÐðÐ÷[ñ[ô|e"Ð$ôe"ðP  Ðô^Ð(õ^ðr.