Ë pv}Uïçí6ãó —ddlZddlmZddlmZddlmZmZm Z m Z m Z mZmZmZmZddlmZdZd„Zd „Zd „Zd „Zd „Zdd „Zd„Zd„Zd„Zd„Zd„Zd„Z dd„Z!d„Z"dd„Z#d„Z$ d d„Z%dd„Z&dd„Z' d!d„Z( d"d„Z)y)#éNé)Ú_)Úhex) ÚerrorÚmatchÚmergeÚ mergestateÚpathutilÚpycompatÚ requirementsÚscmutilÚutil)ÚhashutilFcóV—t|dd«rytj|jvS)NÚ _has_sparseFT)Úgetattrr ÚSPARSE_REQUIREMENT)Úrepos ú4usr/lib/python3.12/site-packages/mercurial/sparse.pyÚ use_sparser!s*€Üˆt�] EÔ*ð Ü × *Ñ *¨d×.?Ñ.?Ð ?Ð?ócó.—tjdt|«|«5t«}t«}t«}d}d}|j d«D�]$}|j «}|r|j d«rŒ(|j d«r(|ddj «}|sŒO|j|«Œa|dk(r/|r(||k7r#tjtd «d |iz«‚d }|}Œ•|d k(rd }|}ŒŸ|sŒ¢|€/tjtd «||dœztd«¬«‚|j «j d«r"|jtd«||dœz«�Œ|j|«�Œ'|||fcddd«S#1swYyxYw)z°Parse sparse config file content. action is the command which is trigerring this read, can be narrow, sparse Returns a tuple of includes, excludes, and profiles. z+sparse.parseconfig(ui, %d bytes, action=%s)NFó ó#s %include é s [include]s5%(action)s config cannot have includes after excludesóactionTs [exclude]s4%(action)s config entry outside of section: %(line)s)rslines<add an [include] or [exclude] line to declare the entry type)Úhintó/sPwarning: %(action)s profile cannot use paths starting with /, ignoring %(line)s ) rÚtimedcmÚlenÚsetÚsplitÚstripÚ startswithÚaddrÚAbortrÚwarn) ÚuiÚrawÚactionÚincludesÚexcludesÚprofilesÚcurrentÚ havesectionÚlines rÚ parseconfigr1+s«€ô �‰Ø5´s¸3³xÀõ ô“5ˆÜ“5ˆÜ“5ˆØˆØˆ à—I‘I˜e×$ˆDØ—:‘:“<ˆDÙ˜4Ÿ?™?¨4Ô0àØ—‘ Ô.ؘA˜B�x—~‘~Ó'�ÚØ—L‘L Õ&ؘÒ%Ù 7¨hÒ#6äŸ+™+Üð.óð% fÐ-ñ .óðð#� Ø"�ØØ˜Ò%Ø"� Ø"‘ÚØ�?ÜŸ+™+Üð1óð'-°tÑ<ñ =ô ð9óô ð ð—:‘:“<×*Ñ*¨4Ô0Ø—G‘GÜðKóð'-°tÑ<ñ =ôñØ— ‘ ˜DÖ!ða%ðd˜ 8Ð+÷w ÷ ò ús¡BF Â$AF Ã7B F Æ FcóD—|j||¬«j«S)z1Resolve the raw content of a sparse profile file.)Úchangeid)ÚfilectxÚdata)rÚprofiler3s rÚ readprofiler7qs €ð �<‰<˜¨(ˆ<Ó 3× 8Ñ 8Ó :Ð:rcóˆ—t|«st«t«t«fS|jjd«}|st«t«t«fS|€t j t d««‚t|j|d«\}}}||}|r“t«}|r…|j«}||vrŒ|j|« t|||«}t|j|d«\} } } |j!| «|j!| «|j!| «|rŒ…|}|r|jd«|||fS#tj$r^d||fz} |jjdd«r|jj| «n|jj| «Y�ŒwxYw)zŒObtain sparse checkout patterns for the given rev. Returns a tuple of iterables representing includes, excludes, and patterns. ósparses3cannot parse sparse patterns from working directorys?warning: sparse profile '%s' not found in rev %s - ignoring it smissingwarnings.hg*)rr!ÚvfsÚtryreadrr&rr1r(Úpopr%r7ÚManifestLookupErrorÚ configboolr'ÚdebugÚupdate) rÚrevr)r+r,r-ÚctxÚvisitedr6ÚmsgÚ pincludesÚ pexcludesÚsubprofss rÚpatternsforrevrHxs¢€ô �dÔ Ü‹u”c“eœS›UÐ"Ð"à �(‰(× Ñ ˜9Ó %€CÙ Ü‹u”c“eœS›UÐ"Ð"à €{Ü�k‰kÜ ÐDÓ Eó ð ô$/¨t¯w©w¸¸YÓ#GÑ €Hˆh˜Ø ˆs‰)€CáÜ“%ˆÙØ—l‘l“nˆGؘ'Ñ!Øà �K‰K˜Ô ð Ü! $¨°Ó5�ô.9Ø—‘˜˜ió.Ñ *ˆI�y (ð �O‰O˜IÔ &Ø �O‰O˜IÔ &Ø �O‰O˜HÔ %ò5ð8ˆáØ� ‰ �WÔà �X˜xÐ 'Ð'øô1×,Ñ,ò ð1Ø4;¸S°>ñBðð —7‘7×%Ñ% iÐ1BÔCØ—G‘G—L‘L Õ%à—G‘G—M‘M #Ô&Úð úsà EÅA-GÇGcó<—|jj«D�cgc],}||jk7r|jj |«‘Œ.}}t «}t «}t «}|D]!}t ||«\}}} ||z}||z}|| z}Œ#|||fScc}w)z½Determine the active sparse config rules. Rules are constructed by reading the current sparse config and bringing in referenced profiles from parents of the working directory. )ÚdirstateÚparentsÚnullidÚ changelogrAr!rH) rÚnodeÚrevsÚ allincludesÚ allexcludesÚ allprofilesrAr+r,r-s rÚ activeconfigrS´s²€ð—M‘M×)Ñ)Ô+ó á+ˆDØ �4—;‘;Ò ð �‰×ј4Õ Ø+ð ð ô “%€KÜ“%€KÜ“%€KãˆÜ'5°d¸CÓ'@Ñ$ˆ�(˜HØ�xш Ø�xш Ø�xщ ð ð ˜  [Ð 0Ð0ùò! s�1Bcó²—|j}|jd«}|r|jd«}nd}|�|rš|€˜ttj|j j d««j««}||d<|rL|j j d«}ttj|«j««}||d<d||fzS)zObtain the signature string for the current sparse configuration. This is used to construct a cache key for matchers. s signatures tempsignatureó0r9ó tempsparseó%s %s)Ú_sparsesignaturecacheÚgetrrÚsha1r:r;Údigest)rÚ includetempÚcacheÚ signatureÚ tempsignaturer)s rÚconfigsignaturer`ÍsÄ€ð × &Ñ &€Eà— ‘ ˜,Ó'€IáØŸ ™ Ð"2Ó3‰ àˆ àЙ[¨]Ð-BÜœŸ ™  d§h¡h×&6Ñ&6°yÓ&AÓB×IÑIÓKÓLˆ Ø'ˆˆlÑá Ø—(‘(×"Ñ" =Ó1ˆCܤ§ ¡ ¨cÓ 2× 9Ñ 9Ó ;Ó<ˆMØ&3ˆEÐ"Ñ #à �y -Ð0Ñ 0Ð0rcóâ—|jdd«5}t|«D]}|jd|z«Œ|rC|jd«t|«D]$}|j|«|jd«Œ&|rC|jd«t|«D]$}|j|«|jd«Œ&ddd«|jj «y#1swYŒ$xYw)z:Write the sparse config file given a sparse configuration.r9swbs %%include %s s [include] rs [exclude] N)r:ÚsortedÚwriterXÚclear)rr+r,r-ÚfhÚpÚiÚes rÚ writeconfigriçsÁ€à �‰�)˜UÔ # rܘÖ!ˆAØ �H‰HÐ&¨Ñ*Õ +ð"ñ Ø �H‰H�^Ô $ܘHÖ%�Ø—‘˜” Ø—‘˜•ð&ñ Ø �H‰H�^Ô $ܘHÖ%�Ø—‘˜” Ø—‘˜•ð&÷ $ð  ×Ñ×$Ñ$Õ&÷! $Ð #ús “B/C%Ã%C.có„—|jjd«}|s t«St|jd««S©NrVr)r:r;r!r")rr)s rÚreadtemporaryincludesrlüs4€Ø �(‰(× Ñ ˜=Ó )€CÙ Ü‹uˆ ä ˆs�y‰y˜ÓÓ Ð rcó —|jjddjt|«««|jj «yrk)r:rcÚjoinrbrXrd)rr+s rÚwritetemporaryincludesros4€Ø‡H�H‡N�N�= %§*¡*¬V°HÓ-=Ó">Ô?Ø×Ñ×$Ñ$Õ&rcób—t|«}|D]}|j|«Œt||«y©N)rlr%ro)rÚ additionalr+rgs rÚaddtemporaryincludesrs s+€Ü$ TÓ*€HÛ ˆØ� ‰ �Q�ðä˜4 Õ*rcó4—t|«r|jjd«sy|j«}|js$|j s|j s |jryt|d¬«}|j}tj«}g}t|«}|D]N}||vsŒ||«rŒtd«}|j|tj d|«|j#|«ŒPtj$|||d|ddd¬«|D]}|j'|dd¬«Œ|jj)d«|j*j-«td«} |j.j| t1|«z«y) NrVF©r\s*dropping temporarily included sparse filesó.©Ú wantfiledata©Ú p1_trackedÚ wc_trackedsAcleaned up %d temporarily added file(s) from the sparse checkout )rr:ÚexistsÚstatusÚmodifiedÚaddedÚremovedÚdeletedÚmatcherrJÚmergemodÚ mergeresultrlrÚaddfileÚ mergestatemodÚ ACTION_REMOVEÚappendÚ applyupdatesÚ update_fileÚunlinkrXrdr(r ) rÚsÚ sparsematchrJÚmresultÚdroppedÚ tempincludesÚfileÚmessagerDs rÚprunetemporaryincludesr“sR€Ü �dÔ  4§8¡8§?¡?°=Ô#AØà � ‰ ‹ €A؇z‚z�Q—W’W § ¢ ¨Q¯YªYàä˜$¨EÔ2€KØ�}‰}€HÜ×"Ñ"Ó$€GØ€GÜ(¨Ó.€LÛˆØ �8Ò ¡K°Õ$5ÜÐEÓFˆGØ �O‰O˜D¤-×"=Ñ"=¸tÀWÔ MØ �N‰N˜4Õ ð ô  ×ÑØ ˆg�t˜D‘z 4¨¡:¨uÀ5õó ˆØ×јT¨eÀÐÕFðð ‡H�H‡O�O�MÔ"Ø×Ñ×$Ñ$Ô&Ü ð ó €Cð ‡G�G‡N�N�3œ˜\Ó*Ñ*Õ+rcóŠ—|D�cgc]}d|df‘Œ }}tjd|«}tj||g«Scc}w)zqReturns a matcher that returns true for any of the forced includes before testing against the actual matcher.spathr)ÚmatchmodÚincludematcherÚ unionmatcher)r‚r+ÚincludeÚkindpatsr–s rÚforceincludematcherrš5sN€ñ8@Ó@±x¨G�˜' 3Ò'°x€HÐ@Ü×,Ñ,¨S°(Ó;€NÜ × Ñ  .°'Ð!:Ó ;Ð;ùòAs… Ac óF—t|«stj«S|r|dgk(rO|jj «D�cgc],}||j k7r|j j|«‘Œ.}}t||¬«}d|djttj|««fz}|jj|«}|r|Sg}|D]M} t||«\} } } | s| r6tj |j"dg| | d¬«} |j%| «ŒO|stj«}n)t)|«dk(r|d }ntj*|«}|rt-|«} t/|| «}||j|<|Scc}w#t&$rYŒÊwxYw) zèObtain a matcher for sparse working directories for the given revs. If multiple revisions are specified, the matcher is the union of all revs. ``includetemp`` indicates whether to use the temporary sparse profile. NrurWó rsrelpath)r˜ÚexcludeÚdefaultrr)rr•ÚalwaysrJrKrLrMrAr`rnÚmapr ÚbytestrÚ_sparsematchercacherYrHrÚrootrˆÚIOErrorr r—rlrš)rrOr\rNr^ÚkeyÚresultÚmatchersrAr+r,r-r‚r�s rr‚r‚=sœ€ô �dÔ Ü�‰Ó Ð á �4˜D˜6’>🠙 ×-Ñ-Ô/ó á/�Ø�t—{‘{Ò"ð �N‰N× Ñ ˜tÕ $Ø/ð ð ô   °+Ô>€Ià �i §¡¬3¬x×/?Ñ/?ÀÓ+FÓ!GÐHÑ H€Cà × %Ñ %× )Ñ )¨#Ó .€F٠؈ à€HÛˆð Ü+9¸$ÀÓ+DÑ (ˆH�h á™8Ü"Ÿ.™.Ø—I‘IØØØ$Ø$Ø&ô �ð—‘ Ô(øðñ" Ü—‘Ó"‰Ü ˆX‹˜!Ò Ø˜!‘‰ä×&Ñ& xÓ0ˆáÜ,¨TÓ2ˆ Ü$ V¨\Ó:ˆà$*€D×јSÑ!à €Mùò[ øô:ò Ù ð úsÁ1FÃA FÆ F ÆF c ó,—t|«sy|j«D�cgc]}|j«‘Œ}}t||«}|j «ryt «}i} |r*t||j «j«g«} nt||j«g«} g} |j«D]å\} } | \}}}|j| «| | «r| | | <n‚|tjk(r| j| «| | | <nX|r#|jsJ| j| «| | | <n3|tjk(r| | | <n| |vrtj||f| | <|sŒ°|tjk(sŒÄ|\}}}}}| |«rŒÕ| j|«Œçt| «dkD�r:|j j#t%d«t| «z«t'|| «t)j*«}d}|dj-«}| D]A} | |vsŒ|d| }|j/| tj0|j3«df|«ŒC|j4j7|«5t)j8|||d|ddd¬«|j4}|j;tj0g«D]\} }}|j=| dd¬ «Œ ddd«t?|«d }||z}|rs|sq|j-«}|D]\} || «}| | «} |s,| r*|j3| «}tj0|dfd f| | <ŒA|sŒD| rŒGtjgd f| | <Œ^|jA| «ycc}w#1swYŒ¨xYw) zAFilter updates to only lay out files that match the sparse rules.NrsCtemporarily included %d file(s) in the sparse checkout for merging s%temporarily adding to sparse checkoutFrvrwTryér)!rrKrAr‚rŸr!Úp1Úfilemapr%r†Ú ACTION_MERGErˆÚno_opÚ ACTION_FORGETr‡r r(r}rrsrƒr„Úmanifestr…Ú ACTION_GETÚflagsrJÚchanging_parentsr‰Ú getactionsrŠrSÚ setactions)!rÚwctxÚmctxÚ branchmergerŽÚpctxÚoldrevsÚoldsparsematchÚfilesÚ prunedactionsr�Útemporaryfilesr‘r*ÚtypeÚargsrDÚf1Úf2ÚfaÚmoveÚancÚtmresultr’Ú wctxmanifestÚfctxrJr±r-ÚchangedprofilesÚmfÚoldÚnews! rÚfilterupdatesactionsrÌzs€ä �dÔ Øà&*§l¡l¤nÓ5¡n˜dˆt�x‰x�z n€GÐ5ܘT 7Ó+€Nà×ÑÔØä ‹E€EØ€Máô˜d T§W¡W£Y§]¡]£_Ð$5Ó6‰ ô˜d T§X¡X£Z LÓ1ˆ à€NØŸ™Ö)‰ ˆˆfØ ‰ˆˆd�CØ � ‰ �$ŒÙ �tÔ Ø"(ˆM˜$Ò Ø ”]×/Ñ/Ò /Ø × !Ñ ! $Ô 'Ø"(ˆM˜$Ò Ù Ø—:’:Ø×%Ñ% dÔ+Ø&,� ˜dÒ#Ø ”]×0Ñ0Ò 0Ø"(ˆM˜$Ò Ø �T‰\Ü#0×#>Ñ#>ÀÀcÐ"JˆM˜$Ñ ò ˜4¤=×#=Ñ#=Ó=Ø$(Ñ !ˆB��B˜˜cÙ˜r•?Ø×%Ñ% bÕ)ð5*ô8 ˆ>Ó˜QÓØ �‰�‰Ü ð*ó ô�.Ó!ñ  "ô ô ˜T >Ô2ô×'Ñ'Ó)ˆØ:ˆØ˜D‘z×*Ñ*Ó,ˆ Û"ˆDØ�|Ò#ؘD‘z $Ñ'�Ø× Ñ ØÜ!×,Ñ,Ø—Z‘Z“\ 5Ð)Øõ ð#ð�]‰]× +Ñ +¨DÕ 1Ü × !Ñ !ØØØ�T‘ Ø�T‘ ØØ"õ  ð—}‘}ˆHØ$,×$7Ñ$7Ü×)Ñ)Ð*ö%Ñ ��e˜Sð×$Ñ$ T°dÀtÐ$ÕLñ%÷2ô ˜DÓ! !Ñ$€HØ Ñ&€Oñ™{Ø �]‰]‹_ˆÛˆDÙ  Ó&ˆCÙ˜dÓ#ˆCÙ™3ØŸ™ ›�ä!×,Ñ,ؘE�NØð'� ˜dÒ#ò šSÜ'4×'BÑ'BÀBÈÐ&L� ˜dÒ#ðð ×Ñ�}Õ%ùòW6÷N2Ð 1úsŸNÉ7A+N Î Ncó2—t«}|j|j«|j|j«|j|j«t |«}d}|D]5}||«rŒ |j jtd«|z«| }Œ7|rtjtd««‚|j}|d} g} g} g} | j«} t| «}tj«}|D]ü}||«}||«}|r|r|r�|r›||vr—| j|«}|j j#|«r5|j%|t&j(|fd«| j+|«Œ€|j%|t&j,|dfd«| j+|«Œ¶|r|r |rŒ½|rŒÀ||vsŒÅ| j+|«||vsŒÛ|j%|t&j.gd«Œþd}| D],}|j jtd«|z«| }Œ.|rtjtd««‚|j1«D]1\}}||vsŒ ||«}||«}|sŒ|rŒ!| j+|«Œ3tj2|||d|ddd¬«| D]}|j5|d d ¬ «Œ| D]}|j5|dd¬ «Œ| D]}|j5|d d d ¬ «Œ| | | fS) a Refreshes working directory by taking sparse config into account. The old status and sparse matcher is compared against the current sparse matcher. Will abort if a file with pending changes is being excluded or included unless ``force`` is True. Fspending changes to '%s' s2could not update sparseness due to pending changesrvrsjcannot change sparseness due to pending changes (delete the files or use --force to bring them back dirty)NrwTry)rzr{Úpossibly_dirty)r!r@r~rr€r‚r(r'rrr&rJr¯rƒr„r±Úwvfsr|r…r†Ú ACTION_EXECrˆr°r‡Úitemsr‰rŠ)rÚ origstatusÚorigsparsematchÚforceÚpendingr�ÚabortÚfrJrBrÚlookupr�rÉr»rŽr‘rÊrËÚflÚstates rÚ refreshwdirrÛísý€ô‹e€GØ ‡N�N�:×&Ñ&Ô'Ø ‡N�N�:×#Ñ#Ô$Ø ‡N�N�:×%Ñ%Ô&ܘ$“-€KØ €Eã ˆÙ˜1�~Ø �G‰G�L‰LœÐ7Ó8¸1Ñ<Ô =Ø�I‰Eðñ  Ü�k‰kÜ ÐCÓ Dó ð ð �}‰}€HØ ˆt‰*€CØ €EØ €FØ€GØ �‰‹€BÜ �‹G€EÜ×"Ñ"Ó$€GãˆÙ˜dÓ#ˆÙ˜$Óˆñ ™¡©°T¸XÑ5EØ—‘˜$“ˆBØ�y‰y×Ñ Ô%Ø—‘ ¤m×&?Ñ&?À"ÀÈÔLØ— ‘ ˜dÕ#à—‘Øœ-×2Ñ2°R¸°KÀôð— ‘ ˜TÕ"ñ™#¢s²3¸4À8Ò;KØ �N‰N˜4Ô Ø˜7Ò"Ø—‘ ¤m×&AÑ&AÀ2ÀsÕKð)ð. €EÛˆØ �‰� ‰ ”QÐ3Ó4°tÑ;Ô<Ø� ‰ðñ Ü�k‰kÜ ð5ó ó ð ð —~‘~Ö'‰ ˆˆeØ�uŠ}Ù! $Ó'ˆCÙ˜dÓ#ˆCÚš3Ø—‘˜tÕ$ð (ô ×ÑØ ˆg�t˜D‘z 4¨¡:¨uÀ5õó ˆØ×јT¨d¸tÐÕDðóˆØ×јT¨eÀÐÕFðóˆà×ÑØ ˜T¨dÀ4ð õ ðð �'˜6Ð !Ð!rcóê—||}t||j««d}|t|j««zr*|j «}t |«}t |||d¬«t|«y)z1Perform actions after a working directory commit.r©T©rÔN)rHrAr!r»r}r‚rÛr“)rrNrBr-rÒrÓs rÚ aftercommitrÞRsc€ð ˆt‰*€Cä˜d C§G¡G£IÓ.¨qÑ1€Hð”#�c—i‘i“kÓ"Ò"Ø—[‘[“]ˆ Ü! $›-ˆÜ�D˜* o¸TÕBä˜4Õ rcóz—|j«5|jjd«}t|j|d«\}}} |j «} t |«} t|j«} tj| vrA|r?|jjtj«tj|«nPtj| vr>|jjtj«tj|« t||||«t|| | |¬«cddd«S#t $rc|j| k7rD|jj#«|xj| zc_tj|«t|||| «‚wxYw#1swYyxYw)z5Update the sparse config and working directory state.r9rÝN)Úlockr:r;r1r(r}r‚r!r rÚdiscardr Úwritereporequirementsr%rirÛÚ Exceptionrd) rr+r,r-rÔÚremovingr)Ú oldincludesÚ oldexcludesÚ oldprofilesÚ oldstatusÚoldmatchÚ oldrequiress rÚ_updateconfigandrefreshwdirrëcsd€ð �‰�Ø�h‰h×јyÓ)ˆÜ0;Ø �G‰G�S˜)ó1 Ñ-ˆ �[ +ð—K‘K“Mˆ ܘ4“=ˆÜ˜$×+Ñ+Ó,ˆ ô × *Ñ *¨kÑ 9¹hØ × Ñ × %Ñ %¤l×&EÑ&EÔ FÜ × )Ñ )¨$Õ /Ü × ,Ñ ,°KÑ ?Ø × Ñ × !Ñ !¤,×"AÑ"AÔ BÜ × )Ñ )¨$Ô /ð Ü ˜˜h¨°(Ô ;ܘt Y°ÀÔF÷7 ‰øô8ò Ø× Ñ  KÒ/Ø×!Ñ!×'Ñ'Ô)Ø×!Ò! [Ñ0Õ!Ü×-Ñ-¨dÔ3Ü ˜˜k¨;¸ Ô DØ ð  ú÷9 ˆús‘D F1ÄEÅA,F.Æ.F1Æ1F:c ó†—|j«5|jj|«5|jj d«}t |j |d«\}}}|s|s ddd«ddd«yt|t«t«||¬«ddd«ddd«y#1swYŒxYw#1swYyxYw)z¬Clears include/exclude rules from the sparse config. The remaining sparse config only has profiles, if defined. The working directory is refreshed, as needed. r9NrÝ) ÚwlockrJr²r:r;r1r(rër!)rrÔr)r+r,r-s rÚ clearrulesrîŒs‡€ð �‰��t—}‘}×5Ñ5°dÕ;Ø�h‰h×јyÓ)ˆÜ'2°4·7±7¸CÀÓ'KÑ$ˆ�(˜Há¡Ø ÷ <�ˆô $ D¬#«%´³¸ÈÕN÷<�ˆ×;Ð;ú�ˆús.‘B7­z7updateconfig..normalize_pats..ísèø€Ð6±¨#”2—7‘7—=‘= ×%±ùs‚)+spaths cannot be absoluteó:r) Úanyrr&rr£Úgetcwdr•Ú _patsplitÚcwdrelativepatternkindsr Ú canonpathrˆ) Úpatsr£ÚcwdÚabspatsÚkindpatÚkindr ÚaprÚusereporootpathss €€rÚnormalize_patsz$updateconfig..normalize_patsìsÁø€ÜÑ6±Ó6Ô6Ü—k‘k¤!Ð$?Ó"@ÓAÐAáØ� 🠙  4§;¡;£=�#ˆD؈GÛ�Ü$×.Ñ.¨w¸Ó=‘ ��cØœ8×;Ñ;Ñ;¸t¸|Ù)-˜$ š+°3¼(×:LÑ:Lؘc 3ó;ñ�Bð—N‘N 2Õ&à—N‘N 7Õ+ð ðˆNr)rÔräN)ríràrJr²r:r;r1r(r!Údifference_updater@r r rërô)rrõr˜r�ÚresetÚdeleteÚ enableprofileÚdisableprofilerÔrr)Ú oldincludeÚ oldexcluderçÚ newincludeÚ newexcludeÚ newprofilesrrÿrrrs` ` rÚ updateconfigr%Ísïù€ð �‰��t—y‘y•{ D§M¡M×$BÑ$BÀ4Õ$HØ�h‰h×јyÓ)ˆÜ.9Ø �G‰G�S˜)ó/ Ñ+ˆ �J  ñ Ü›ˆJÜ›ˆJÜ›%‰Kä˜Z›ˆJܘZ›ˆJܘkÓ*ˆKõ ñ*! Ó)ˆÙ  Ó)ˆÙ Ó'ˆÙ'¨Ó7ˆÙ& }Ó5ˆ à×$Ñ$ VÔ,Ø×$Ñ$ VÔ,Ø×%Ñ% nÔ5Ø×ј'Ô"Ø×ј=Ô)Ø×ј'Ô"ä˜;¨Ñ4Ó5¼Ø ˜+Ñ %ó9 ñ ˆ ô˜:¨ Ñ2Ó3´cØ ˜Ñ #ó7 ñ ˆ ô˜:¨ Ñ2Ó3´cØ ˜Ñ #ó7 ñ ˆ ôÜ Ü 'ØØØØØØô  ó  ˆô Ø �G‰G�T˜<¨°|ð ØFMó ÷O%I—{�ˆ×$HÐ$Hú—{�{ú�ˆús;“H¤HÁFG6ÇHÇ%HÇ6G? Ç;HÈH ÈHÈHcóf—|jd|«5}|j«|j|jdt d«|«|j|jdt d«|«|j|jdt d«|«|j «su|j|jdt d «|«|j|jd t d «|«|j|jd t d «|«ddd«y#1swYyxYw)z/Print output summarizing sparse config changes.r9sprofiles_addedsProfiles changed: %d sinclude_rules_addedsInclude rules changed: %d sexclude_rules_addedsExclude rules changed: %d s files_addedsFiles added: %d s files_droppedsFiles dropped: %d sfiles_conflictingsFiles conflicting: %d N)Ú formatterÚ startitemÚ condwriteÚverboserÚisplain) r(rõrÿrrrr�Ú conflictingÚfms rrôrô)s€ð �‰�i Ô &¨"Ø � ‰ ŒØ � ‰ Ø �J‰JØ Ü Ð'Ó (Ø ô  ð � ‰ Ø �J‰JØ "Ü Ð,Ó -Ø ô  ð � ‰ Ø �J‰JØ "Ü Ð,Ó -Ø ô  ð�z‰zŒ|Ø �L‰LØ— ‘ ˜N¬AÐ.BÓ,CÀUô ð �L‰LØ— ‘ Ð,¬aÐ0FÓ.GÈô ð �L‰LØ— ‘ Ø$ÜÐ,Ó-Øô  ÷? '× &Ñ &ús “D D'Ä'D0)T)NT)F)FF)©r.Fr.r.r.FF)rrrrrr)*rÚi18nrrNrÚrrr•rrƒr r†r r r r rÚutilsrÚenabledrr1r7rHrSr`rirlrorsr“ršr‚rÌrÛrÞrërîrr%rôr.rrÚr3s×ðó åÝ÷ ÷ õ õð €ò@òB,òL;ò9(òx1ó21ò4'ò*!ò'ò +ò",òJ<ó:òzp&ófb"òJ!ð$?Dó&óR Oó . ðh Ø Ø Ø ØØØ ØóY ð~ØØØ Ø Øô/r