403Webshell
Server IP : 74.208.236.16  /  Your IP : 216.73.217.15
Web Server : Apache
System : Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User : u102440577 ( 7172810)
PHP Version : 8.4.26
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/python3/dist-packages/mercurial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/python3/dist-packages/mercurial/__pycache__/scmutil.cpython-313.pyc
�

6�hiK��(�%SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSK	JrJrJ
r
JrJrJrJrJr SSKJr SSKJrJrJrJrJr SSKJr \	R:(aSSKrSSKJr J!r!J"r"J#r$J%r%J&r&J'r'J(r(J)r)J*r*J+r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3 SS	K4J5r6 SS
K7J8r8J9r9J:r: \*Rv(aSSKJ<r= OSSKJ>r= \	R:(aSS
KJ?r@ \)R�"S5rB\)R�"SSS9rD\=R�rE\R�"SSS9"SS\6R�55r5SrHS|S}SjjrIS~SjrJSSjrKS�SjrLS�SjrMS�SjrN"SS5rOS�S�S!jjrPS"rQS#rRS�S$jrSS�S�S%jjrTS�S&jrUS�S'jrVS�S(jrWS�S)jrXS�S*jrYS�S+jrZS�S�S,jjr[S�S-jr\S�S.jr]S�S/jr^S�S0jr_S�S1jr`S2raS|S3jrbS�S�S4jjrcS5rdS6reS�S�S7jjrfS�S8jrgS�S9jrhS�S;jriS�S�S<jjrjS�S�S=jjr#S>rkS|S�S?jjrlS�S@jrmS�SAjrnS�SBjro"SCSD5rpS�S�SEjjrqS�S�SFjjrrS�S�SGjjrsS�SHjrtS�SIjruS�SJjrvS|SKjrwS|SLjrxS�S�SMjjryS|S�SNjjrzSOr{S�SPjr|S�S�SQjjr}SRr~S�S�SSjjr"STSU5r�"SVSW5r�"SXSY5r�S�SZjr�"S[S\5r�S�S]jr�S�S^jr�"S_S`5r�/SaQr�S:\�Sb'ScSd/r�S:\�Se'S�Sfjr�\2GR"5r�Sr�S \�Sg'S�S�Shjjr�S�Sijr�S�S�Sjjjr�S�Skjr�Slr�S�Smjr�S�Snjr�S�Sojr�S�Spjr�S�Sqjr�Srr�S\�Ss'Str�S\�Su'Sr�S\�Sv'\�\�\�Sw.r�Sx\�Sy'\�r�S\�Sz'S|S�S{jjr�g)��)�annotationsN)�Callable�Dict�Iterable�Iterator�List�Optional�Set�Tuple���_)�bin�hex�nullrev�short�wdirrev)�attr)�copies�encoding�error�match�obsolete�obsutil�pathutil�phases�policy�pycompat�requirements�
revsetlang�similar�smartset�typelib�url�util�vfs)�status)�hashutil�procutil�
stringutil)�
scmwindows)�scmposix��ui�parsers�revlogT)�pyo3F)�slots�reprc�$�\rSrSrSr\R"\R"\5\	\
S9r\R"\R"\5\	\
S9r\R"\R"\5\	\
S9r
\R"\R"\5\	\
S9r\R"\R"\5\	\
S9r\R"\R"\5\	\
S9r\R"\R"\5\	\
S9rSSjrS	SjrSrg)
r'�[z�Struct with a list of files per status.

The 'deleted', 'unknown' and 'ignored' properties are only
relevant to the working copy.
)�default�typec#��# �URv� URv� URv� URv� URv� UR
v� URv� g7f�N)�modified�added�removed�deleted�unknown�ignored�clean��selfs �3/usr/lib/python3/dist-packages/mercurial/scmutil.py�__iter__�status.__iter__ksK����m�m���j�j���l�l���l�l���l�l���l�l���j�j��s�A$A&c�,�S[SU55-$)NzX<status modified=%s, added=%s, removed=%s, deleted=%s, unknown=%s, ignored=%s, clean=%s>c3�v# �UH/n[R"[R"U55v� M1 g7fr9)r�sysstrr*�pprint)�.0�vs  rC�	<genexpr>�"status.__repr__.<locals>.<genexpr>xs'���F��A�(�/�/�*�"3�"3�A�"6�7�7��s�79)�tuplerAs rC�__repr__�status.__repr__ts!��
1��F��F�F�G�	G��N)�returnzIterator[List[bytes]])rS�str)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r�ib�Factory�listr�bytesr:r;r<r=r>r?r@rDrO�__static_attributes__rRrQrCr'r'[s�����w�w�t�|�|�D�1��U��D�H��G�G�D�L�L��.�T�%�[�A�E��g�g�d�l�l�4�0�t�E�{�C�G��g�g�d�l�l�4�0�t�E�{�C�G��g�g�d�l�l�4�0�t�E�{�C�G��g�g�d�l�l�4�0�t�E�{�C�G��G�G�D�L�L��.�T�%�[�A�E��GrQr'c#��# �[RURU5nUR[RURU55 [	5nURH'nX@R;dMX$	URU5 M) [
UR55HupEXERU54v� M UHnXARX@54v� M g7f)zfind subrepos in ctx1 or ctx2N)
�dict�fromkeys�substate�update�set�add�sorted�items�sub�nullsub)�ctx1�ctx2�subpaths�missing�subpath�ctxs      rC�itersubreposrp{s����
�}�}�T�]�]�D�1�H��O�O�D�M�M�$�-�-��6�7��e�G��=�=���-�-�'��!��K�K�� �!�
�x�~�~�/�0����w�w�w�'�'�'�1����|�|�G�2�2�2��s
�A6C'�<A+C'c�X�/nU(aYUHSnXnUR5[R:�dM+UR5(aMBUR	U5 MU U(a'UR[
S5[U5-5 gUR[
S55 g)zbReport no changes for push/pull, excluded is None or a list of
nodes excluded from the push/pull.
s0no changes found (ignored %d secret changesets)
sno changes found
N)�phaser�secret�extinct�appendr'r�len)r.�repo�excluded�
secretlist�nros      rC�nochangesfoundr{�s����J���A��'�C��y�y�{�f�m�m�+�C�K�K�M�M��!�!�!�$��
�
�	�	�
�B�C��*�o�
�	
�
	�	�	�!�)�*�+rQ�intc	��SnSnU"5$! UR5 e=f![Ra�nSnUR[R:Xa-[S5[R"UR5-nO[S5UR-nUR[S5UR=(d  [R"UR5U4-5 UR(dUR[S55 SnAGO�SnAf[Ra{nSnUR[S5UR=(d  [R"UR5[R"UR 54-5 SnAGOSnAf[R"a�n[%U[R&5(aS	nUR[S
5U-5 UR((a'UR[S5UR(-5 SnAGO}SnAf[R*GanUR[S5UR,S
-5 UR,Sn[%U[.5(a[R0"U5nUcURS5 SnAGO�[%U[25(dURSU4-5 SnAGO�U(d UR[S55 SnAGO�URS[R"[R4"U55-5 SnAGONSnAf[R6a(nUR[S5U-5 SnAGOSnAf[R8a UR[S55 GO�[R:a\nUR<bUR<nUR>bUR>nURURA55 SnAGOvSnAf[RBanURDsSnA$SnAf[Fa�nUR[S
5[R"U5-5 [R"U5RI5SnUSRI5;a UR[S55 SnAGO�USRI5;aUR[S55 SnAGO�SnAf[JRLRNa>nSnUR[S
5[R"U5-5 SnAGO'SnAf[JRLRPa�nSnURRR,SnO"![T[V4a URRnOf=f[%U[.5(a[RX"U5nUR[S5[R"U5-5 SnAGOeSnAf[ZGan[]US5(a8UR,(a'UR,S
[R^:XaSnAGO[aUSS5(a�[aUSS5b`UR[S5[R"UR 5[R"UR54-5 SnAO�UR[S
5[R"UR 5-5 SnAONeSnAf[ba UR[S55 O$[danS nURfnSnAOSnAff=fURiS!S"5(aU$U$)#z�call func() with global exception handling

return func() if no exception happens. otherwise do some error handling
and return an exit code accordingly. does not handle all exceptions.
����s%timed out waiting for lock held by %rslock held by %rsabort: %s: %s
s(lock might be very busy)
Nsabort: could not lock %s: %s
�
s
abort: %s
s(%s)
s	abort: %srr�
s %r
s empty string
s
%r
sabort: file censored %s
s6abort: working directory revision cannot be specified
smpatch bdiffs((did you forget to compile extensions?)
szlibs"(is your Python install correct?)
�dsabort: error: %s
�args�strerror�filenamesabort: %s: '%s'
sabort: out of memory
��uisdetailed-exit-code)5�	tracebackr�LockHeld�errno�	ETIMEDOUTrr�bytestr�locker�descr*�forcebytestrr��LockUnavailabler�
strtolocalr��	RepoError�
isinstance�RepoLookupError�hint�
ResponseErrorr�rT�sysbytesr]�ellipsis�CensoredNodeError�WdirUnsupported�Error�detailed_exit_code�coarse_exit_code�format�WorkerError�status_code�ImportError�splitr%�urlerr�	httperror�urlerror�reason�AttributeError�
IndexError�
unitolocal�OSError�hasattr�EPIPE�getattr�MemoryError�
SystemExit�code�
configbool)r.�funcr�r��instr��msg�ms        rC�	callcatchr��s�������j%�	��6�M��	��L�L�N����>�>�
8����:�:����(��?�@�� � ����-��F��)�*�T�[�[�8�F�
���
� �!��y�y�B�J�3�3�D�M�M�B�F�K�
L�	
��{�{��H�H�Q�5�6�7���� � �
���
���
�/�0��	�	�C�Z�4�4�T�]�]�C��#�#�D�M�M�2��
�	
�	
���?�?�/��d�E�1�1�2�2�!#��
����>�"�T�)�*��9�9��H�H�Q�y�\�D�I�I�-�.������M�
����<��4�9�9�Q�<�/�0��i�i��l���c�3����#�#�C�(�C��;��H�H�U�O�O��C��'�'��H�H�X���&�'�'���H�H�Q�)�*�+�+��H�H�Y��!1�!1�*�2E�2E�c�2J�!K�K�L�L���"�"�9�
����/�0�4�7�8�8��� � �P�
����M�N�O��;�;� ��"�"�.�!%�!8�!8��� � �,�#�4�4��
������������� �������@�
����>�"�Z�%<�%<�T�%B�B�C��#�#�D�)�/�/�1�"�5����%�%�'�'��H�H�Q�C�D�E�E�
�'�-�-�/�
!��H�H�Q�=�>�?����;�;� � �D� ��
����>�"�Z�%<�%<�T�%B�B�C�C���;�;���
M� ��	!��[�[�%�%�a�(�F���
�+�	!��[�[�F�	!���f�c�"�"��(�(��0�F�
����(�)�J�,C�,C�F�,K�K�L�L�����4�� � �T�Y�Y�4�9�9�Q�<�5�;�;�3N��
�T�:�t�
,�
,��t�Z��.�:�����*�+� �+�+�D�M�M�:�"�/�/��
�
�>���������>�*�X�-@�-@����-O�O�P�P����/�
����,�-�.��%�!���9�9���	%��
�}�}�U�1�2�2�!�!��s	��!�$�^8�C D�^8�5A0F+�+^8�A6H>�>^8�A8M-�*M-�!M-�+<M-�-^8�N'�'1^8�^8�.AQ�^8�Q-�'^8�-
^8�:BT:�.T:�:!^8�3V�!^8�5Y�8W�Y�W1�.Y�0W1�1AY�^8�$A].�-A;].�-;].�-].�.'^8�	^8� ^3�3^8c���US;a"[R"[S5U-5eSH>nX1;dM
[R"[S5[R"U5-5e [U5 SU;a[e[R"[S55e![a Of=fUR5U:wa"[R"[S5U-5eg)N)�tip�.�nullsthe name '%s' is reserved)�:�r��
s%r cannot be used in a name�_scannot use an integer as a names)leading or trailing whitespace in name %r)r�
InputErrorrrr�r|�
ValueError�strip)rw�lbl�kind�cs    rC�
checknewlabelr�#s����%�%����q�!=�>��D�E�E�
(���8��"�"��0�1�H�4D�4D�Q�4G�G��
�)�
	
��C���3�;������q�!C�D�E�E���
��
��
�y�y�{�c�����
�:�;�c�A�
�	
�s�.6B$�$
B1�0B1c��SU;dSU;a6[R"[S5[R"U5-5eg)zFCheck that the filename f is an acceptable filename for a tracked filer�r�s)'\n' and '\r' disallowed in filenames: %rN)rr�rrr���fs rC�
checkfilenamer�=sC����z�U�a�Z����
�<�=����q�!�
"�
�	
� rQc�8�[U5 [U5up#U(dU(at[R"U5nU(aVSU[R
"U54-nU(a[R"U5eUR[S5U-5 ggg)zECheck if filename f is portable and warn or abort depending on configs%s: %s�warning: %s
N)
r��checkportabilityalertr%�checkwinfilenamer)�
shellquoterr��warnr)r.r��abortr�r�s     rC�
checkportabler�Fs}���!��'��+�K�E����#�#�A�&����s�H�$7�$7��$:�;�;�C���&�&�s�+�+��G�G�A�&�'�#�-�.�	�rQc�>�URSS5nUR5n[R"U5n[R
=(d US:HnU=(d US:HnUc6U(d/U(d(US:Xd"[R"[S5U-5eXE4$)z[check if the user's config requests nothing, a warning, or abort for
non-portable filenamesr�sportablefilenamessabort�warnsignores,ui.portablefilenames value is invalid ('%s'))	�config�lowerr*�	parseboolr�	iswindowsr�ConfigErrorr)r.�val�lval�bvalr�r�s      rCr�r�Ss���
�)�)�E�/�
0�C��9�9�;�D�����$�D����2�$�(�"2�E��"�4�7�?�D��|�T�U�d�i�.?����
�=�>��D�
�	
��;�rQc�(�\rSrSrSSjrSSjrSrg)�casecollisionauditoribc���XlX lSRU5n[[R
"U5R
S55UlX0l[5Ul	g)Nr�)
�_ui�_abort�joinrdrr�r��
_loweredfiles�	_dirstate�	_newfiles)rBr.r��dirstate�allfiless     rC�__init__�casecollisionauditor.__init__csK�������:�:�h�'�� �����!9�!?�!?��!F�G���!�����rQc��XR;ag[R"U5nX R;akXR;a\[S5U-nUR(a[R"U5eURR[S5U-5 URRU5 URRU5 g)Ns&possible case-folding collision for %sr�)r�rr�r�r�rr�r�
StateErrorr�r�re)rBr��flr�s    rC�__call__�casecollisionauditor.__call__ns��������
�^�^�A�
��
�#�#�#����(?��=�>��B�C��{�{��&�&�s�+�+��H�H�M�M�!�,�-��3�4������r�"������1�rQ)r�r�r�r�r�N)r.�uimod.uir��boolrS�None�r�r]rSr�)rUrVrWrXr�r�r^rRrQrCr�r�bs��	�
rQr�r�c���URnU(aR[R"US5nUR(dU(dgU[	UR5[	U54nOUR(dgUn[5nURRU5nU(dC[X5upxU(aXx-n[U5nU(a[U5nXcRU'U$)a�build hash of filtered revisions in the current repoview.

Multiple caches perform up-to-date validation by checking that the
tiprev and tipnode stored in the cache file match the current repository.
However, this is not sufficient for validating repoviews because the set
of revisions in the view may change without the repository tiprev and
tipnode changing.

This function hashes all the revs filtered from the view (and, optionally,
all obsolete revs) up to maxrev and returns that SHA-1 digest.
�obsoleteN)�	changelogr�getrevs�filteredrevs�hash�	frozenset�_filteredrevs_hashcache�get�_filtered_and_obs_revsrf�
_hash_revs)	rw�maxrev�needobsolete�cl�obsrevs�key�result�revs�obs_revss	         rC�#combined_filtered_and_obsolete_hashr{s���
���B���"�"�4��5�����w���t�B�O�O�,�d�7�m�<���������+��
�
'�
'�
+�
+�C�
0�F��/��=�����?�D��d�|�����%�F�.4�&�&�s�+��MrQc�V�URn[R"US5nU[UR5[U54nUR
R
U5nUcFSnSn[X5up�U(a[U5nU	(a[U	5nXg4nXRR
U'U$)abuild hashs of filtered and obsolete revisions in the current repoview.

Multiple caches perform up-to-date validation by checking that the
tiprev and tipnode stored in the cache file match the current repository.
However, this is not sufficient for validating repoviews because the set
of revisions in the view may change without the repository tiprev and
tipnode changing.

This function hashes all the revs filtered from the view up to maxrev and
returns that SHA-1 digest. The obsolete revisions hashed are only the
non-filtered one.
r�N)	r�rr�r�r�r�r�r�r�)
rwr�r��obs_setrr�
filtered_hash�obs_hash�
filtered_revsrs
          rC�filtered_and_obsolete_hashr�s���
���B����t�[�1�G��4����(�$�w�-�
8�C�
�
'�
'�
+�
+�C�
0�F�
�~��
���"8��"F��
��&�}�5�M��!�(�+�H��*��*0�"�"�3�'��MrQc�@�URn[R"US5nURnUR(aX2R-
nU[	U5S-
:a2UVs1sHoUU::dM
UiM nnUVs1sHoUU::dM
UiM nnXC4$s snfs snf)z=return the set of filtered and non-filtered obsolete revisionr�r)r�rr�r�rv)rw�max_revr�r�filtered_set�rs      rCr�r��s���	
���B����t�[�1�G��?�?�L�	����O�O�+���#�b�'�A�+��#/�@�<�a��<��<��@�%�6�g��g��1�g��6��"�"��A��6s�%	B�2B�>	B�Bc��[R"5nUHnURSU-5 M UR5$)z-return a hash from a list of revision numberss%d;)r(�sha1rc�digest)r�s�revs   rCr�r��s3���
�
��A���	����#�����8�8�:�rQc#�R^^
# �U4Sjn[[RSS5m
U(a
T
bU
4SjnOSnUcU(a/nW"UT5 [R"TSUS9GH;upgnUR	5 SU;a�Uv� [RRUSS	5n	[RR
[RRU	S55(aU	v� U(aURS5 M�/USS&M�U(dM�/n
UH}n[RRXk5nW"X,5(dM1[RRU5(a[USU5Shv�N MlU
RU5 M X�SS&GM> gN%7f)
z}yield every hg repository under path, always recursively.
The recurse flag will only control recursion into repo working dirsc�*>�URT:XaUegr9)r�)�err�paths �rC�
errhandler�walkrepos.<locals>.errhandler�s����<�<�4���I� rQ�samestatNc�>^�[R"U5m[UU4SjU55nU(dURT5 U(+$)Nc3�6># �UHnT"TU5v� M g7fr9rR)rJ�
lstdirstat�dirstatrs  ��rCrL�,walkrepos.<locals>.adddir.<locals>.<genexpr>�s����O��*���*�5�5��s�)�os�stat�anyru)�dirlst�dirnamerrrs   @�rC�adddir�walkrepos.<locals>.adddir�s8����g�g�g�&�G��O��O�O�E���
�
�g�&��9�rQFT)�topdown�onerrors.hgspatches)r�r!r�walk�sortr��isdir�remove�islink�	walkreposru)r�	followsym�	seen_dirs�recurserr&�root�dirs�files�qroot�newdirs�d�fnamers`            @rCr/r/�sB������r�w�w�
�D�1�H��X�)�	��	���y��	��y�$���W�W�T�4��L���E��	�	���T�>��J��G�G�L�L��v�z�:�E��w�w�}�}�R�W�W�\�\�%��8�9�9�������F�#���Q��
�Y��G��������T�-���)�+�+��w�w�~�~�e�,�,�#,�U�D�)�#D�D�D����q�)�
���G�+M�$E�s�DF'�1F'�4F'�?F%�&F'c�t�UR5nUc$UR5RR$U$)z)Return binary node id for a given basectx)�noderw�
nodeconstants�wdirid)ror;s  rC�binnoder>s/���8�8�:�D��|��x�x�z�'�'�.�.�.��KrQc�8�UR5nUc[$U$)zYReturn integer for a given basectx that can be used in comparison or
arithmetic operation)rr)rors  rC�intrevr@s���'�'�)�C�
�{����JrQc�t�UR5n[UR[U5[	U55$)zvFormat changectx as '{rev}:{node|formatnode}', which is the default
template provided by logcmdutil.changesettemplater)rw�
formatrevnoder.r@r>)rorws  rC�formatchangeidrCs*���8�8�:�D�����&��+�w�s�|�<�<rQc�V�UR(a[nO[nSX"U54-$)zAFormat given revision and node depending on the current verbositys%d:%s)�	debugflagrr)r.rr;�hexfuncs    rCrBrB#s'��	�|�|������s�G�D�M�*�*�*rQc���URS5(aUSSnUR5RRU5nUcgURRU5 U$![R
a� URRSS5nU(a�SS0nURRU5 URU/SS9n/nUHPnURRU5n[U5RU5(dM?URU5 MR [U5S:XaUSsSSS5 s$SSS5 e!,(df   e=fef=f)	N�xr�experimental�revisions.disambiguatewithin)rIrJT��userr)�
startswith�
unfilteredr��
_partialmatchr�AmbiguousPrefixLookupErrorr.r��configoverride�anyrevsr;rrurvr)rw�prefixr;�revset�configoverridesr�matchesrs        rC�resolvehexnodeidprefixrW,sN��
��������������� �*�*�8�8��@��(�|���N�N���t���K��-�+�+��������<�
���C�D��O����'�'��8��|�|�V�H�4�|�8�����C��>�>�.�.�s�3�D��4�y�+�+�F�3�3����t�,� ��w�<�1�$�"�1�:�9�8�%�9�	�9�8�	���%�s1�)A'�'AE#�=AE�(E�:
E#�	E#�
E	�	E#c�z�[U5nUS:wa	USSS:XdU[U5:�agg![a gf=f)z@Checks if the given prefix may be mistaken for a revision number�0rrFT)r|rvr�)rwrS�is   rC�mayberevnumr[LsH��
���K��

�d�N�v�a��{�d�2�q�C��I�~��������s�)-�
:�:c�^^�[US5nSUU4SjjnTR5RnTRR	SS5nU(Ga�SnUbURS5nUcTR
U/SS9nUbXsS'URT5U;Ga�[T5nSn	UbURS	5n	[U	S
S5n
U
"5(aSn	U	(dj[[S5(aT[UR[R5(a+URn[RU[U55n	O;[URS
S5(a[ R#UR5n	U	bIUHnU	R%U5 M UbX�S	'[U	R'T5U5n
USU
nU"U5$[)U[U5S-5H[n
/nUSU
nUH2nTUR5nUUSU
:XdM!UR+U5 M4 [U5S:XdMSU"U5s $ U"UR'TU55$![,R.a [,R0"5ef=f)z�Find the shortest unambiguous prefix that matches hexnode.

If "cache" is not None, it must be a dictionary that can be used for
caching between calls to this method.
rc�>�TRRSS5(a[TU5(aSU-$U$[T5n[	[U5[U5S-5HnUSUn[TU5(aMUs $ g)zDisambiguate against revnums.rIsrevisions.prefixhexnoderHrN)r.r�r[r�rangerv)rS�hexnode�lengthr;rws   ��rC�disambiguate�-shortesthexnodeidprefix.<locals>.disambiguategs|����7�7���o�/I�J�J��4��(�(��f�}�$��
��d�)���C��K��W���)9�:�F��W�f�%�F��t�V�,�,��
�;rQrIrJNsdisambiguationrevsetTrKsdisambiguationnodetree�is_invalidatedc��g�NFrRrRrQrC�<lambda>�)shortesthexnodeidprefix.<locals>.<lambda>�s��rQ�nodetree�is_rustF�rSr])�maxrNr�r.r�r�rRrrr�r�r/r��indexrhrv�
rustrevlog�NodeTree�insert�shortestr^rur�LookupErrorr�)rwr;�	minlength�cacherar�rTrr_rhrcrlrr`rSrVr�otherhexnodes``                rC�shortesthexnodeidprefixru[s[����I�q�!�I���
���	�	$�	$�B�
�W�W�^�^�O�-L�
M�F�
������9�9�4�5�D��<��<�<���t�<�4�D�� �15�-�.�
�6�6�$�<�4���$�i�G��H�� � �9�9�%>�?��$�X�/?��O�N��������7�J�/�/�J��H�H�g�m�m�5�5��H�H�E�&�/�/��s�4�y�A�H������9�e�4�4�%�.�.�r�x�x�8���#��A��O�O�A�&���$�7?�3�4��X�.�.�t�4�i�@�� ��&�)��#�F�+�+��	�3�w�<�!�+;�<���� ��&�)���C�#'��9�=�=�?�L���g�v�!6�6����|�4� ��w�<�1�$�'��/�/�=�&��B�K�K��i�8�9�9�����&��#�#�%�%�&�s�
I"�"*Jc�P�[X5 g![Ra gf=f)z�Checks if a symbol exists in the repo.

See revsymbol() for details. Raises error.AmbiguousPrefixLookupError if the
symbol is an ambiguous nodeid prefix.
TF)�	revsymbolrr�)rw�symbols  rC�isrevsymbolry�s*����$����� � ����s��%�%c��[U[5(d&SU[U54-n[R"U5eUS;aX$[U5nSU-U:wa[e[UR5nUS:aX4-
nUS:dX4:�aU[:wa[eX$![Ra e[[[4a Of=f[U5SURR-:Xa_[U5nURR!U5nX$![R"a e[$R&[(4a Of=fUR*R-X5nURR!U5nX$![.a Of=f[1X5nUbURR!U5nX$[R2"[5S5U-5e![R6a USs$[R[R"[R84a [;X5ef=f)z�Returns a context given a single revision symbol (as string).

This is similar to revsingle(), but accepts only a single revision symbol,
i.e. things like ".", "tip", "1234", "deadbeef", "my-bookmark" work, but
not "max(public())".
sCsymbol (%s of type %s) was not a string, did you mean repo[symbol]?)r�r�r��%dr�Nsunknown revision '%s')r�r]r7r�ProgrammingErrorr|r�rvr�r�FilteredIndexError�
OverflowErrorr�r<�nodelenrr�FilteredLookupError�binasciir�rq�names�
singlenode�KeyErrorrWr�rr��FilteredRepoLookupError�_filterederror)rwrxr�r�lr;rs       rCrwrw�s0���f�e�$�$�
� &��V��5�
6�	��$�$�S�)�)�3+��,�,��<��
	��F��A��q�y�F�"� � ��D�N�N�#�A��1�u�����1�u���1��<� � ��7�N���'�'�	���M�:�6�	��	���v�;�!�d�0�0�8�8�8�8�
��6�{���n�n�(�(��.���y� ���,�,�
���N�N�K�0�
��
��	��:�:�(�(��6�D��.�.�$�$�T�*�C��9����	��	��&�d�3�����.�.�$�$�T�*�C��9���#�#�A�&>�$?�&�$H�I�I��� � ���D�z��
� � �
�!�!�
�%�%��+�
�T�*�*�+�sr�	G.�AB � )C�	G.�C�)G.�6)D � .E�G.�E�G.�9F�
F�G.�F�/G.�"G.�.I�	>Ic��URRS5(auUR5n[X!5nUR	5(a[
R"XU5nO[S5U-n[S5n[R"XES9$[S5nXAUR4-n[R"U5$)z�build an exception to be raised about a filtered changeid

This is extracted in a function to help extensions (eg: evolve) to
experiment with various message variants.�visibleshidden revision '%s's'use --hidden to access hidden revisions�r�s+filtered revision '%s' (not in '%s' subset))
�
filternamerMrNrwrr�_getfilteredreasonrrr�)rw�changeid�unfilteredreporor�r�s      rCr�r��s���
���!�!�*�-�-����*����1���<�<�>�>��,�,�T�S�A�C��+�,�x�7�C��;�<���,�,�S�<�<�
�:�
;�C��d�o�o�&�&�C��(�(��-�-rQc��U(d
US:waX$[X/US9nU(d[R"[S55eXR	5$)Nr)�
localaliassempty revision set)�revrangerr�r�last)rw�revspecr6r�r�s     rC�	revsingler�sI���w�!�|��}����y�Z�8�A�����q�!6�7�8�8�����>�rQc�P�[R"U5nU=(a USS;$)Nr)srangesrangepres	rangepostsrangeall)r �parse)r��trees  rC�	_pairspecr�s/�����G�$�D���D��G� ��rQc��^�U(d
TSTS4$[TU5nU(d[R"[S55eUR	5nUR5nX4:XaH[
U5S:�a9[U4SjU55(d[R"[S55eX4:Xa,[
U5S:Xa[US5(d
TUTS4$TUTU4$)Nr�sempty revision ranger|c3�>># �UHn[TU/5v� M g7fr9)r�)rJrrws  �rCrL�revpair.<locals>.<genexpr>4s����6��A�H�T�A�3�'�'��s�s#empty revision on one side of rangerr)	r�rr�r�firstr�rv�allr�)rwrr�r��seconds`    rC�revpairr�%s������D�z�4��:�%�%���t��A�����q�!8�9�:�:�
�G�G�I�E�
�V�V�X�F�	����I��N��6��6�6�6����q�!G�H�I�I�
��3�t�9��>�)�D��G�2D�2D��E�{�D��J�&�&���;��V��$�$rQc��/nUH@n[U[5(a[R"SU5nUR	U5 MB URUSUS9$)a�Execute 1 to many revsets and return the union.

This is the preferred mechanism for executing revsets using user-specified
config options, such as revset aliases.

The revsets specified by ``specs`` will be executed via a chained ``OR``
expression. If ``specs`` is empty, an empty result is returned.

``specs`` can contain integers, in which case they are assumed to be
revision numbers.

It is assumed the revsets are already formatted. If you have arguments
that need to be expanded in the revset, call ``revsetlang.formatspec()``
and pass the result as an element of ``specs``.

Specifying a single revset is allowed.

Returns a ``smartset.abstractsmartset`` which is a list-like interface over
integer revisions.
r{T)rLr�)r�r|r �
formatspecrurR)rw�specsr��allspecs�specs     rCr�r�?sU��*�H����d�C� � ��(�(���5�D��������<�<��t�
�<�C�CrQc#�,# �Uv� X:aUS-nM7f)Nr|rR)�
windowsize�	sizelimits  rC�increasingwindowsr�\s$�������!��!�O�J��s�c�T^^^^�T(d/$URmUUUU4SjnU"5$)aTIterate over files and the revs in a "windowed" way.

Callers most commonly need to iterate backwards over the history
in which they are interested. Doing so has awful (quadratic-looking)
performance, so we use iterators in a "windowed" way.

We walk a window of revisions in the desired order.  Within the
window, we first walk forwards to gather data, then in the desired
order (usually backwards) to display it.

This function returns an iterator yielding contexts. Before
yielding each context, the iterator will first call the prepare
function on each context in the window in forward order.c3�D># �[T
5nSn[5H�n/n[U5H'n[US5nUcSn OUR	U5 M) [U5HnT"U5nT	"UT"U55 M UH
nT"U5v� M U(dM� g g7f)NFT)�iterr�r^�nextrurf)�it�
stopiterationr��nrevsrZrro�change�makefilematcher�preparers       ����rC�iterate�walkchangerevs.<locals>.iteratexs�����
�$�Z���
�+�-�J��E��:�&���2�t�n���;�$(�M�����S�!�'��e�}���S�k����_�S�1�2�%����S�k�!���}��.�s�BB �B )�__getitem__)rwrr�r�r�r�s ``` @rC�walkchangerevsr�es,�����	�
�
�
�F���(�9�rQc���UR5n[U5S:�aU$URR(aUSU[/$USR5[
U5S-
:�a/$U$)z�Return list of meaningful (or all if debug) parentrevs for rev.

For merges (two non-nullrev revisions) both parents are meaningful.
Otherwise the first parent revision is considered meaningful if it
is not the preceding revision.
rr)�parentsrvr.rErrr@)rwror�s   rC�meaningfulparentsr��se���k�k�m�G�
�7�|�a�����w�w�����
�D��M�*�*��q�z�~�~��6�#�;��?�*��	��NrQc�^^�UbUnO`URRSS5nUS:XaUnO;[R"U5nUc"[R
"[
S5U-5eU(a)UR5mTS:waURmUU4Sj$URRSS5(aS$[R$)	a�Return a function that produced paths for presenting to the user.

The returned function takes a repo-relative path and produces a path
that can be presented in the UI.

Depending on the value of ui.relative-paths, either a repo-relative or
cwd-relative path will be produced.

legacyrelativevalue is the value to use if ui.relative-paths=legacy

If forcerelativevalue is not None, then that value will be used regardless
of what ui.relative-paths is set to.
r�srelative-pathsslegacys)ui.relative-paths is not a boolean ('%s')rQc�>�T"UT5$r9rR)r��cwd�pathtos ��rCrf�getuipathfn.<locals>.<lambda>�s���V�A�s�^rQsslashc��U$r9rRr�s rCrfr��s��rQ)r.r�r*r�rr�r�getcwdr�r�r%�	localpath)rw�legacyrelativevalue�forcerelativevalue�relativer�r�r�s     @@rC�getuipathfnr��s����$�%�%��������'8�9���Y��*�H�!�+�+�F�3�H����'�'��B�C�f�L�����k�k�m���#�:��[�[�F�+�+��w�w���%��*�*����~�~�rQc�^^�UU4Sj$)zBCreate a new uipathfn that treats the file as relative to subpath.c�>>�T"[R"TU55$r9)�	posixpathr�)r�rn�uipathfns ��rCrf� subdiruipathfn.<locals>.<lambda>�s���X�i�n�n�W�a�8�9rQrR)rnr�s``rC�subdiruipathfnr��s���:�9rQc�x�[U=(d) URS5=(d URS55$)z�Checks if any patterns, including --include and --exclude were given.

Some commands (e.g. addremove) use this condition for deciding whether to
print absolute or relative paths.
�include�exclude)r�r�)�pats�optss  rC�anypatsr��s+����D�����,�D�����0D�E�ErQ�List[bytes]c�R�[R(d[U5$/nUHan[R"US5up4Uc1[
R
"U5nU(aURU5 MPURU5 Mc U$![Ra U/nNJf=f)zeExpand bare globs when running on windows.
On posix we assume it already has already been done by sh.N)
r%�expandglobsr\�matchmod�	_patsplit�glob�rer�extendru)r��ret�kindpatr��pat�globbeds      rC�
expandpatsr��s�������D�z��
�C����&�&�w��5�	���<�
 ��)�)�C�.����
�
�7�#���
�
�7����J��
�8�8�
 ��%��
 �s�B�B&�%B&c	�P^^�Uc0nU(dUS:Xa[U=(d /5n[TR5SS9mUU4SjnUcUnTRUUR	S5UR	S5UUR	S5US9nUR5(a/nXq4$)	z�Return a matcher and the patterns that were used.
The matcher will warn about bad matches, unless an alternate badfn callback
is provided.�relpathT�r�c�n>�TR5RRST"U5U4-5 g)Ns%s: %s
)rwr.r�)r�r�ror�s  ��rC�bad�matchandpats.<locals>.bads)������
�
�
���;�(�1�+�s�);�;�<rQr�r��subrepos)�listsubrepos�badfn)r�r�rwrr��always)	ror�r�r�r6r�r�r�r�s	`       @rC�matchandpatsr��s�����|����w�*�,��$�*�"�%���3�8�8�:�4�@�H�=�
�}����	�	��������������X�X�k�*��
	�	�A�	�x�x�z�z����7�NrQc	��[XX#XES9S$)z2Return a matcher that will warn about bad matches.�r�r)r�)ror�r�r�r6r�s      rCrrs����4�'�G��J�JrQc�,�[R"5$)z8Return a matcher that will efficiently match everything.)r�r��rws rC�matchallr�"s���?�?��rQc�*�[R"XS9$)zAReturn a matcher that will efficiently match exactly these files.r�)r��exact)rwr5r�s   rC�
matchfilesr�'s���>�>�%�-�-rQc��[R"U5(d0[R"URUR5U5$Xn[R"URUR5U/US9nUVs/sHoe"U5(dMUPM nn[U5S:wa[R"U5eUS$s snf)zOReturn a file name from `pat` pattern suitable for usage in followlines
logic.
)rorr)
r��patkindr�	canonpathr3r�rrvr�
ParseError)rwrr�r�ror�r�r5s        rC�parsefollowlinespatternr�,s������C� � ��!�!�$�)�)�T�[�[�]�C�@�@��i���N�N�4�9�9�d�k�k�m�c�U��D���(�C�q�1�Q�4��C��(��u�:��?��"�"�3�'�'��Q�x���)s�C
�C
c��URSS5nU(dg[R"URRU55$)z\return a vfs suitable to save 'orig' file

return None if no special directory is configuredr�sorigbackuppathN)r�r&�wvfsr�)r.rw�origbackuppaths   rC�
getorigvfsr�;s7���Y�Y�u�&7�8�N����7�7�4�9�9�>�>�.�1�2�2rQc�4�[X5nUcURUS-5$URU5nURU5(aUR	U5(a�UR[
S5URU5-5 [[[R"U555HXnURU5(dMUR[
S5URU5-5 URU5  O URU5 URU5(aRUR	U5(d<UR[
S5URU5-5 URUSS9 URU5$)acustomize where working copy backup files (.orig files) are created

Fetch user defined path from config file: [ui] origbackuppath = <path>
Fall back to default (filepath with .orig suffix) if not specified

filepath is repo-relative

Returns an absolute path
s.origscreating directory: %s
sremoving conflicting file: %s
s#removing conflicting directory: %s
T)�forcibly)r��wjoinr%r,r.�noterr��reversedr\r�finddirs�isfileorlink�unlink�makedirs�rmtree)r.rw�filepath�origvfs�
origbackupdirr�s      rC�
backuppathr	EsC����"�G����z�z�(�X�-�.�.��O�O�H�-�M��=�=��'�'�7�>�>�-�+H�+H�
����-�.����m�1L�L�M��$�x�0�0��:�;�<�A��#�#�A�&�&�����<�=����Q��O�P����q�!��	=�	����'��}�}�X���w�~�~�h�'?�'?�
���
�5�6����h�9O�O�	
�	���x�$��/��<�<��!�!rQc�(�\rSrSrSrSrSSjrSrg)�
_containsnodeiizEproxy __contains__(node) to container.__contains__ which accepts revsc�\�URRUlURUlgr9)r�r�_torev�__contains__�_revcontains)rBrw�revcontainers   rCr��_containsnode.__init__ls!���n�n�(�(���(�5�5��rQc�B�URURU55$r9�rr
)rBr;s  rCr�_containsnode.__contains__ps��� � ����T�!2�3�3rQrN�rSr�)rUrVrWrXrYr�rr^rRrQrCrris��O�6�4rQrc
��^.^/^0^1�U(dUbeU(dU(dg[US5(dUVs0sHo�4S_M nnO90n	UR5H!up�[U
[5(dU
4n
X�U
'M# U	nUR	5m1Uc�0nUR5H�up�UH�nX�;aM
[U
5S:�a*[
T1RSU
55R5nOt[U
5S:Xa`/nUHnURU5 M [T1RSUU55nU(aUSR5nOURnOU
SnX�U'M� M� UR5VVs/sHnUHo�PM M nnn0n0nU(GaA0nUR5H8up�UH-nU
H$nURU/5RU5 M& M/ M: URU14SjS	9 0m.U.4S
jm/UH�nT1Un[!U/4SjUR#555nUc%[!U14SjUU55n[!UU5nO[!UU5nUT.U'UUR%5:�a#URU/5RU5 M�UUR%5:dM�URU/5RU5 M� UR'S
5nUR(n/nUR5H�up�UR+U5nU(dMSSKJn  UR0R3S[4R6"[4R8U5[;U5[;U54-5 UR=SUUU5n![?UU!5n"UHCn#URU#U45 U RAUU"U#5Hn$URU$S45 M ME M� U(aURCUUU5 UR5Hum/n%[DRF"UUT/U%5 M! UR5Hum/n%[DRH"UUT/U%5 M! UR0RKSS5n&[LRN"U[LRP5(a�T1RRRTm0U04Sjn'/n([WUR5U'S	9HAunn)[U14SjU55[U14SjU)554n*U(RU*5 MC U((a[LRX"UU(X$S9 O�[DRZ"U5(a�U&(a�[5nUR]5HnUR_U5 M U(a9SSKJ0n+ [cUURRRTS	9n,U+ReUUUU,U5 [DRF"UU[DRfU5 O;SSKJ0n+ [SU55n-U-(aU+RiUR0UU-X'S9 SSS5 gs snfs snnf!,(df   g=f)a�do common cleanups when old nodes are replaced by new nodes

That includes writing obsmarkers or stripping nodes, and moving bookmarks.
(we might also want to move working directory parent in the future)

By default, bookmark moves are calculated automatically from 'replacements',
but 'moves' can be used to override that. Also, 'moves' may include
additional bookmark moves that should not have associated obsmarkers.

replacements is {oldnode: [newnode]} or a iterable of nodes if they do not
have replacements. operation is a string, like "rebase".

metadata is dictionary containing metadata to be stored in obsmarker if
obsolescence is enabled.
NrgrRrsmax(%ln)rsmax((::%n) - %ln)c�*>�TUR5$r9)r)rz�unfis �rCrf�cleanupnodes.<locals>.<lambda>�s���t�A�w�{�{�}rQ)rc�`>�TRUR5UR55$r9)r�r;rr)ro�	newphasess �rCrr�cleanupnodes.<locals>.phase�s ����=�=�����S�Y�Y�[�9�9rQc3�4># �UH
nT"U5v� M g7fr9rR)rJ�prrs  �rCrL�cleanupnodes.<locals>.<genexpr>�s����>�
�1�e�A�h�h�
�s�c3�J># �UHnTUR5v� M g7fr9)rr)rJ�oldnoders  �rCrLr�s%�����9L�g�D��M�'�'�)�)�9L�s� #scleanup)�	bookmarkss"moving bookmarks %r from %s to %s
s*parents(roots(%ln & (::%n))) - parents(%n)rIscleanup-as-archivedc� >�T"USS5$)NrrR)�ns�torevs �rCrfrs���%��1��a��/rQc3�.># �UH
nTUv� M g7fr9rR)rJrzrs  �rCrLrs����1�b��T�!�W�b���c3�.># �UH
nTUv� M g7fr9rR)rJr�rs  �rCrLrs����8L�!�Q��a��!�r')�	operation�metadata)�repairc3�6# �UHoHo"v� M M g7fr9rR)rJr$rzs   rCrLr$s���@�|��R��1�R�1�|�s�)�backup)5r�rgr�rNrNrvr�rdr;r�r\�nullid�values�
setdefaultrur+rkr�rr�transaction�
_bookmarks�
nodebookmarks�r"r.�debugr�rapply�maybebytestrrrr�divergent2delete�applychangesr�retractboundary�advanceboundaryr�r�	isenabled�createmarkersoptr�rrf�
createmarkers�supportarchived�keysrcr+�min�backupbundle�archived�delayedstrip)2rw�replacementsr)�movesr*�fixphase�targetphaser-rz�replsr�value�oldnodes�newnodesr!�newnode�allreplaced�rep�rootsr$�allnewnodes�	toretract�	toadvance�
precursorsro�parentphase�oldphase�newphase�tr�bmarks�bmarkchanges�	oldbmarksr"�
deleterevs�deletenodes�name�b�nodes�mayusearchived�sortfunc�relsr�relr+r;�tostriprrrr%rs2                                              @@@@rC�cleanupnodesrfts����2�{�*�*�*�����<��)�)�*6�7�,�Q��b��,��7����&�,�,�.�J�C��c�5�)�)��f���#�J�/����?�?��D�
�}���".�"4�"4�"6��H�#���#���x�=�1�$�"�4�8�8�K��#B�C�H�H�J�G���]�a�'�"$�K�+��#�*�*�3�/� ,� ����!5�w��L��E��"'��(�-�-�/��"&�+�+��&�q�k�G�!(�g��)$�#7�. ,�2�2�4�A�4��b��1�b�1�4�K�A��I��I���
�".�"4�"4�"6��H�#��'�G��)�)�'�2�6�=�=�g�F� (�$�#7�
	���4��5��	�	:�#�G��w�-�C��>����
�>�>�K��"���9C�G�9L�����x��5���{�K�8��!)�I�g���#�)�)�+�%��$�$�X�r�2�9�9�'�B��C�I�I�K�'��$�$�X�r�2�9�9�'�B�#� 
�	�	�*�	%�������� %���
��G��*�*�7�3�I���#��G�G�M�M�6��O�O�H�$9�$9�9�E���L���L���
����=����	�J�(��j�9�K�!���#�#�T�7�O�4�"�3�3�D�+�t�L�A� �'�'��D�	�2�M�"�-!.�6�����b�,�7�%�O�O�-�L�E�5��"�"�4��U�E�:�.�%�O�O�-�L�E�5��"�"�4��U�E�:�.�������9O�P�����d�H�$=�$=�>�>��N�N�&�&�E�1�H��D��� 2� 2� 4�(�C���A��1�b�1�1�5�8L�!�8L�3L�M�����C� �D���&�&��$�)����
#�
#�D�
)�
)�n��%�K�"�'�'�)���"�"�2�&�*��$��;�D�N�N�,>�,>�?���#�#��+�{�D�)��
�"�"�4��V�_�_�k�J� ��@�|�@�@�G���#�#��G�G�T�7�I�$��Y
&�	%��O8��NB�@
&�	%�s�
Y�Y!�6MY'�'
Y5c�N^^�Uc0nUmURS5n[URS5=(d S5nUS:dUS:�a[R"[S55eUS-nSnUSn	[
U	R5H�n
[R"U
T5nURS5(d6TRU
5(d [UR55(dMfU	RU
5nURRX*5n
[!X�5nUR#X�X�5(aS	nM�M� /mSUU4Sjjn[R*"TU5n[-UU5unnnnn[/UU-5nUR15nUR3U5 [
U5H�nUR&R4(dTRU5(aM6UU;a[S5U"U5-nS
nO[S5U"U5-nSnUR&R)UUS9 M� [7UTUU-UU-Xs5nU(d7U(dU(dU(dU(aUbU"5 [9UUU-UU5 THnUTR5;dM g	 U$![a  [R"[S55ef=f![R$a2 UR&R)[S
5U"U
5-5 GM�f=f)Nsdry_runs
similarityrssimilarity must be a numberr�s$similarity must be between 0 and 100�Y@r�rs#skipping missing subrepository: %s
c�r>�UTR5;aTRX5 TRU5 gr9)r5r�ru)r�r�r��rejecteds  ��rCr��addremove.<locals>.badfnSs'�������	�>�
�E�E�!�M�����rQ�
adding %s
sui.addremove.added�removing %s
sui.addremove.removed)�label)r�r]r�r]rSr�)r��floatr�rr�rrfrbr��
subdirmatcherr�r#r5rhr��reljoinr��	addremoverqr.r'�badmatch�_interestingfilesrd�copyrc�verbose�_findrenames�_markchanges)rw�matcherrSr�r��open_tr�dry_run�
similarityr��wctxrn�submatchrh�	subprefix�subuipathfnr�rsr;r>r=r<�	forgotten�
unknownset�toprint�absr'rn�renamesr�r�rjs                             @@rCrrrr+s�����|����A��h�h�z�"�G�B��4�8�8�M�2�7�a�8�
��A�~��c�)����q�!H�I�J�J��%��J�
�C���:�D��$�-�-�(���)�)�'�1�5���8�8�K� � �A�G�G�G�$4�$4��H�N�N�<L�8M�8M��(�(�7�#�C��	�	�)�)�&�:�I�(��;�K�
��=�=��k�H�H��C�I�)��H���
� � ��E�*�H�2C��h�3�/�E�7�G�W�i��W�y�(�)�J��o�o��G��N�N�7���g����7�7�?�?�!�'�'�#�,�,��j� ��>�*�X�c�]�:��-���+�,�x��}�<��/���G�G�N�N�6��N�/����a����'�G�"3�Z��G���9��7����I��T�7�Y�.���A�
������	�>����J��{�B����q�!?�@�A�A�B��$�$�$�
�������=�>��w�'�(���
�s�#J1�)K�1*K�AL$�#L$c�^�[XU4SjS9n/m[X5upEpgnURR(a}[	XX-5n	U	R5n
U
R
U5 [U
5H@nX�;a[S5U-nO[S5U-nURRU5 MB [USS9n
[XXE-Xv-X-5n[XU-Xn5 THnX�R5;dM g g)	zWAssert that files have somehow been operated upon. files are relative to
the repo root.c�&>�TRU5$r9)ru)�x�yrjs  �rCrf�marktouched.<locals>.<lambda>|s���8�?�?�1�3ErQr�rlrmTr�rr)r�rtr.rvrdrurcrfrr'r�rwrxr5)rwr5r|r�r;r>r=r<r�r�r�r�r'r�r�r�rjs                @rC�marktouchedr�ys����	�4�&E�F�A��H�2C�D�2L�/�E�G�i��w�w�����,�-�
��/�/�#�����w���'�?�C�� ��>�*�S�0���+�,�s�2���G�G�N�N�6�"�#��4�T�:�H�����'�"3�Z��G����*�G�=�
�����	�>���
rQc��/////4up#pEn[R"URSS9nUSnURn	UR	USS9nU	RU[
UR5SSSS9n
U
R5H�up�U	RU5n
U
R(d)URU5(aURU5 MPU
R(dU(dURU5 M{U
R(aU(aURU5 M�U
R(aU(dURU5 M�U
R(dM�URU5 M� X#XEU4$)z�Walk dirstate with matcher, looking for files that addremove would care
about.

This is different from dirstate.status because it doesn't care about
whether files are modified or clean.T)�cachedN)�includeexactF)�subreposr>r?�full)r�pathauditorr3r��narrowmatchr*rfrbrg�	get_entry�any_tracked�checkrur<r;)rwryr;r>r=r<r��
audit_pathror��walkresultsr��st�entrys              rCrtrt�s4��35�b�"�b�"�2D�/�E�G�i��%�%�d�i�i��=�J�
�t�*�C��}�}�H����w�T��:�G��-�-������%���
� ��K��$�$�&����"�"�3�'���!�!�z�'7�'7��'<�'<��N�N�3���-�-���N�N�3��
�]�]�r����S�!�
�]�]�2��N�N�3��
�[�[�[��L�L���'��7�Y�6�6rQc�`�0nUS:�a�[R"XX45H�upxn	URR(d,UR	U5(aUR	U5(d9URR[
S5U"U5U"U5U	S-4-5 XvU'M� U$)z.Find renames from removed files to added ones.rs7recording removal of %s as rename to %s (%d%% similar)
r�)r!�findrenamesr.rvr�r'r)
rwryr;r<r|r�r��old�new�scores
          rCrwrw�s����G��A�~�&�2�2��� 
�O�C�e�������}�}�S�)�)��}�}�S�)�)�������,�� ��}�h�s�m�U�S�[�A�	B���C�L� 
� �NrQc��USnUR5 URU5 URU5 UR5HupVUR	Xe5 M SSS5 g!,(df   g=f)ziMarks the files in unknown as added, the files in deleted as removed,
and the files in renames as copied.N)�wlock�forgetrergru)rwr>r=r�r}r�r�s       rCrxrx�sV����:�D�	
�������G��������
�
��H�C��I�I�c��(�
���s�A
A,�,
A:c�^^^�[R"T5(aU4SjnU$0mTc[T5mUUU4SjnU$)Nc�t>�TUnUR5nX;aX0$UR5nX;aX@$gr9)�p1copies�p2copies)�fnrror�r�rws     �rC�
getrenamed� getrenamedfn.<locals>.getrenamed�s?����s�)�C��|�|�~�H��~��|�#��|�|�~�H��~��|�#�rQc�l>�UT;al0TU'TRU5nUHPnURU5nURURU55nU=(a USTUU'UT:�dMP O UTU;aTUU$TUUR	5$![
Ra gf=f)z�looks up all renames for a file (up to endrev) the first
time the file is given. It indexes on the changerev and only
parses the manifest if linkrev != changerev.
Returns rename info for fn at changerev rev.rN)�file�linkrev�renamedr;�
copysourcerrq)	r�rr�rZ�lrr��endrev�rcacherws	      ���rCr�r��s����
�V���F�2�J����2��B����Z�Z��]���*�*�R�W�W�Q�Z�0��!(�!7�W�Q�Z��r�
�2����<����&��*���"�:�c�?�"�	���9�R�=�+�+�-�-��� � �	��	�s�B�B3�2B3)�	copiesmod�usechangesetcentricalgorv)rwr�r�r�s`` @rC�getrenamedfnr��sA����(�(��.�.�	���
�F�
�~��T����0�rQc�j^�[R"U5(aSnU$[X5mU4SjnU$)Nc�&�UR5(aVUR5R5nURUR55 [	UR55$[	UR5R55$r9)r�r�rurcrfrg)ro�	allcopiess  rC�copiesfn�getcopiesfn.<locals>.copiesfnsa���|�|�~�~��L�L�N�/�/�1�	�� � �����0��i�o�o�/�0�0��c�l�l�n�2�2�4�5�5rQc�>�/nUR5H4nT"X R55nU(dM"URX#45 M6 U$r9)r5rru)rorr��renamer�s    �rCr�r�#sB����F��i�i�k��#�B���	�2���6��M�M�2�,�/�"��MrQ)r�r�r�)rwr�r�r�s   @rC�getcopiesfnr�s8����(�(��.�.�	6�(�O�"�$�/�
�	��OrQc���URRU5=(d UnXG:XabURRU5nUR(dUR(d$U(dURRU5 gggURRU5R(a�Xs:Xa�UR(d=UR[S5URXv5URXF54-5 URRU5R(dU(dURU/5 gggU(dURXt5 gg)z�Update the dirstate to reflect the intent of copying src to dst. For
different reasons it might not end with dst being marked as copied from src.
sF%s has not been committed yet, so no copy data will be stored for %s.
N)r��copiedr�r;�tracked�set_tracked�quietr�rr�reru)	r.rwr}�src�dst�dryrunr��origsrcr�s	         rC�dirstatecopyr�.s���m�m�"�"�3�'�.�3�G�
�~��
�
�'�'��,���K�K�u�}�}�f��M�M�%�%�c�*�7=�}��=�=�"�"�7�+�1�1�g�n��8�8�����9���{�{�7�0�$�+�+�c�2G�H�	I���=�=�*�*�3�/�7�7�����#���AG�7���I�I�g�#�rQc	�*�USnURn[UR55nURUR	5UR
5 UR
X2S9nURHnURUSS9 M URHnURUSS9 M URHnURUSS9 M [R"XU5nURU5 UR5V	V
s0sHup�X�RX�5_M nn	n
UR5HBup�X�;d%X�;d UR!U	5R(dSn
UR#X�5 MD UR%5 gs sn
n	f)z�Move the dirstate to newctx and adjust it as necessary.

A matcher can be provided as an optimization. It is probably a bug to pass
a matcher that doesn't match all the differences between the parent of the
working copy and newctx.
r�)rT)�
p1_trackedFN)r�r`r�
setparentsr;r.r'r:�update_file_p1r;r<r��
pathcopiesrcrgr�r�ru�!_quick_access_changeid_invalidate)rw�newctxr�oldctx�dsrrr��	oldcopiesr�r�s           rC�movedirstater�OsT���$�Z�F�	
���B�
�"�)�)�+�
�F��M�M�&�+�+�-����-��
�
�f�
�*�A�
�Z�Z��
���!���-���W�W��
���!���.���Y�Y��
���!���-���$�$�V�U�;�I�
���V��;D�?�?�;L�
M�;L�x�s�c�=�=��*�*�;L�F�
M��L�L�N������
�R�\�\�#�5F�5L�5L��C�
�����#�	�*�*�,��
Ns�Fc���[RU;aW[5[5p!UH;nU[R;aUR	U5 M*UR	U5 M= X4$US4$)z�filters the requirements into two sets:

wcreq: requirements which should be written in .hg/requires
storereq: which should be written in .hg/store/requires

Returns (wcreq, storereq)
N)�requirementsmod�SHARESAFE_REQUIREMENTrd�WORKING_DIR_REQUIREMENTSre)r�wc�storers    rC�filterrequirementsr�qs`���,�,��<��E�3�5�E��A��O�<�<�<����q�	��	�	�!��	�
�y�����rQc�<�[RUR;$)z;returns whether the repository is using treemanifest or not)r��TREEMANIFEST_REQUIREMENTrr�s rC�istreemanifestr��s���3�3�t�7H�7H�H�HrQc�8�U(aXl[UR5up4Ub[URU5 Ub[URXBS9 gUR
R
SS5(a$U(aURRS5 ggg)z�writes requirements for the repo

Requirements are written to .hg/requires and .hg/store/requires based
on whether share-safe mode is enabled and which requirements are wdir
requirements and which are store requirements
N)�maywrite�formatsusestore�requires)rr��
writerequiresr&�svfsr.r��	tryunlink)rwr�
maywritestore�wcreq�storereqs     rC�writereporequirementsr��s}���(��(��):�):�;�O�E����d�h�h��&����d�i�i��B�	
���	�	�I�{�	3�	3���I�I����,��
4rQc�~�U(aUROURn[U"S5R55$)z�reads the require file present at root of this vfs
and return a set of requirements

If allowmissing is True, we suppress FileNotFoundError if raisedr�)�tryread�readrd�
splitlines)r&�allowmissingr�s   rC�readrequiresr��s.��'�3�;�;�C�H�H�D��t�K� �+�+�-�.�.rQc��[US5nU[U5:Xd^U(d[R"[	S55eU"SSSS9n[U5HnUR
SU-5 M SSS5 gg!,(df   g=f)NTs&store requirements are not as expectedr��w)�
atomictemp�%s
)r�rdr�Abortrrf�write)�openerrr��on_disk�fprs      rCr�r��sv���6�4�(�G��s�<�(�(���+�+�a� I�J�K�K�
�K��$�
7�2��L�)������1��%�*�8�
7�
)�8�
7�s�
'A;�;
B	c�`�\rSrSr%SrS\S'SSjrSSjrS
SjrS
Sjr	\
SS	j5rS
rg)�filecachesubentryi�N�Optional[bool]�
_cacheablec���XlSUlSUlU(a][R	UR5UlUR(a URR5UlgSUlggr9)r�	cachestatr�r�r"�	cacheable)rBrr"s   rCr��filecachesubentry.__init__�sW���	��������.�3�3�D�I�I�>�D�N��~�~�"&�.�.�":�":�"<���#'���rQc�x�UR5(a%[RUR5Ulggr9)r�r�r"rr�rAs rC�refresh�filecachesubentry.refresh�s*���>�>���.�3�3�D�I�I�>�D�N�rQc�6�URbUR$g�NT)r�rAs rCr��filecachesubentry.cacheable�s���?�?�&��?�?�"�rQc��UR5(dg[RUR5nU(a4URc'UR5UlUR(dgUR
U:waXlgg)NTF)r�r�r"rr�r�)rB�newstats  rC�changed�filecachesubentry.changed�sg���~�~����#�(�(����3���t���.�%�/�/�1�D�O��?�?���>�>�W�$�$�N��rQc���URS5(dURS5(a[R"5$[R"U5$![a gf=f)Nshttps://shttp://)rMr%�uncacheable_cachestatr��FileNotFoundError)rs rCr"�filecachesubentry.stat�sV���?�?�;�'�'�4�?�?�:�+F�+F��-�-�/�/�	��>�>�$�'�'�� �	��	�s�A�
A&�%A&)r�r�r)r"r��rSr�r)rr]rSzOptional[typelib.CacheStat])
rUrVrWrXr��__annotations__r�r�r�r�staticmethodr"r^rRrQrCr�r��s4��!%�J��%�'�?���*���rQr�c�6�\rSrSrSSSjjrS	SjrS
SjrSrg)�filecacheentryi�c�l�/UlUH'nURR[X255 M) gr9)�_entriesrur�)rB�pathsr"rs    rCr��filecacheentry.__init__�s+����
��D��M�M� � �!2�4�!>�?�rQc�X�URHnUR5(dM g g)ztrue if any entry has changedTF)rr�rBr�s  rCr�filecacheentry.changed�s#���]�]�E��}�}����#�rQc�J�URHnUR5 M gr9)rr�rs  rCr��filecacheentry.refresh�s���]�]�E��M�M�O�#rQ)rN�T)r"r�rSr�rr)rUrVrWrXr�rr�r^rRrQrCrr�s��@�
�rQrc�T�\rSrSr%SrS\S'S
SjrSrSSjrSr	SS
jr
SrSrg	)�	filecacheia�A property like decorator that tracks files under .hg/ for updates.

On first access, the files defined as arguments are stat()ed and the
results cached. The decorated function is called. The results are stashed
away in a ``_filecache`` dict on the object whose method is decorated.

On subsequent access, the cached result is used as it is set to the
instance dictionary.

On external property set/delete operations, the caller must update the
corresponding _filecache entry appropriately. Use __class__.<attr>.set()
instead of directly setting <attr>.

When using the property API, the cached data is always used if available.
No stat() is performed to check if the file has changed.

Others can muck about with the state of the ``_filecache`` dict. e.g. they
can populate an entry before the property's getter is called. In this case,
entries in ``_filecache`` will be used during property operations,
if available. If the underlying file changes, it is up to external callers
to reflect this by e.g. calling ``delattr(obj, attr)`` to remove the cached
method result as well as possibly calling ``del obj._filecache[attr]`` to
remove the ``filecacheentry``.
zTuple[bytes, ...]rc��Xlgr9)r)rBrs  rCr��filecache.__init__s���
rQc�b�URVs/sHo RX5PM sn$s snfr9)rr�)rB�objrs   rC�
tracked_paths�filecache.tracked_paths"s%��15���<���	�	�#�$��<�<��<s�,c��[e)z�Used to compute the runtime path of a cached file.

Users should subclass filecache and provide their own version of this
function to call the appropriate join function on 'obj' (an instance
of the class that its member function was decorated).
)�NotImplementedError)rBrr9s   rCr��filecache.join%s
��"�!rQc�~�XlURUl[R"UR5UlU$r9)r�rU�snamerr�r^)rBr�s  rCr��filecache.__call__.s/���	��]�]��
�
�%�%�d�j�j�1��	��rQNc���UcU$URUR;deURRUR5nU(a,UR5(aUR
U5UlOKURU5n[US5nUR
U5UlX1RUR'URURUR'UR$r)
r&�__dict__�
_filecacher�r^rr�rr r)rBrr7r�rs     rC�__get__�filecache.__get__8s����;��K��z�z����-�-�-����"�"�4�9�9�-����}�}��� �I�I�c�N��	���&�&�s�+�E�#�5�$�/�E��	�	�#��E�I�(-�N�N�4�9�9�%�#(�9�9����T�Z�Z� ��y�y�rQc��URUR;a6URU5n[US5nXARUR'OURURnX$lX!R
UR'gre)r^r*r rrr)r&)rBrrJr�ces     rCrd�
filecache.setTsg���9�9�C�N�N�*��&�&�s�+�E���u�-�B�(*�N�N�4�9�9�%�����	�	�*�B���#(���T�Z�Z� rQ)r�r^rr&)rr]rSr�)r9r]r9)
rUrVrWrXrYrr�r r�r�r+rdr^rRrQrCrrs-���2���=�"���8)rQrc
�B�URRSU5nU(d"[R"[	S5U-5e0nS=pEURS5(ayUSSn[R"[R"U5SS[R[R[R"UR5S9nURnO![R"URU5nUH�nS	U;a#UR!5R#S	S
5up�OUR!5Sp�[$R&"U5n[$R&"U	5U[)X5R+5'M� U(aUR35 U(aUR75 U(aRUR8S:waB[R"[	S
5W[R:"UR854-5eU$![R,[R.[R04a GMIf=f![4a N�f=f!U(a"UR35 O![4a Of=fU(aUR75 ff=f)aCGather a map of rev -> value dict from the specified source

A source spec is treated as a URL, with a special case shell: type
for parsing the output from a shell command.

The data is parsed as a series of newline-separated records where
each record is a revision specifier optionally followed by a space
and a freeform string value. If the revision is known locally, it
is converted to a rev, otherwise the record is skipped.

Note that both key and value are treated as UTF-8 and converted to
the local encoding. This allows uniformity between local and
remote data sources.
sextdatasunknown extdata source '%s'Nsshell:�Tr~)�shell�bufsize�	close_fds�stdoutr�� rrQrsextdata command '%s' failed: %s)r.r�rr�rrM�
subprocess�Popenr)�tonativestr�closefds�PIPEr3r5r$�openr�r�r�tolocalr�rrqr�r��communicater��close�
returncode�explainexit)
rw�sourcer��datar��proc�cmdr��krKs
          rC�
extdatasourcerGbs'�� �7�7�>�>�*�f�-�D���k�k�!�:�;�f�D�E�E�
�D���C�$��?�?�9�%�%��q�r�(�C��#�#��$�$�S�)���"�+�+�!����(�(����3�
�D��+�+�C��(�(�4�7�7�D�)�C��A��q�y��w�w�y���t�Q�/���1��w�w�y�#�1�� � ��#�A�
�19�1A�1A�!�1D��Y�t�'�+�+�-�.���
�� � �"�
��I�I�K�����1�$��k�k�
�0�1��H�(�(����9�:�
;�
�	
�
�K��%�%�%�u�'<�'<�e�>N�>N�O�
��
���
��
���
�� � �"���
��
����I�I�K��sg�DI�0H�I�I�3I�I�I�I�
I�I�J�$I5�4J�5
J�?J�J�Jc���\rSrSr%S\S'S\S'S\S'S\S'S\S	'S
\S'SSS
jjrSrSrSSSjjrSSSjjr	SSjr
SSjrSrg)�progressi�r�r.�
Optional[int]�posr]�topic�unit�totalr�r5Nc�|�XlSUlX0lX@lXPlURSS5UlX lg)Nrsprogresssdebug)r.rKrLrMrNr�r5�
_updatebar)rBr.�	updatebarrLrMrNs      rCr��progress.__init__�s6��������
��	��
��]�]�;��9��
�#�rQc��U$r9rRrAs rC�	__enter__�progress.__enter__�s���rQc�$�UR5 gr9)�complete)rB�exc_type�	exc_value�exc_tbs    rC�__exit__�progress.__exit__�s���
�
�rQc���UceU(aX0lXlURURURX RUR5 UR
(aUR
U5 ggr9)rNrKrPrLrMr5�_printdebug)rBrK�itemrNs    rCrc�progress.update�sW��������J�������
�
�D�H�H�d�I�I�t�z�z�J��:�:����T�"�rQc�B�URURU-X#5 gr9)rcrK)rB�stepr_rNs    rC�	increment�progress.increment�s��	
���D�H�H�t�O�T�1rQc��SUlSUlSUlURURURSURUR5 g)NrQ)rKrMrNrPrLrAs rCrW�progress.complete�s;�������	���
�����
�
�D�H�H�c�4�9�9�d�j�j�IrQc	��SnUR(aSUR-nU(aSU-nUR(a]SUR-UR-nURR	SUR
XRURX#4-5 gURR	SUR
XRU4-5 g)NrQr6rhs%s:%s %d/%d%s (%4.2f%%)
s%s:%s %d%s
)rMrNrKr.r5rL)rBr_rM�pcts    rCr^�progress._printdebug�s������9�9��$�)�)�#�D���$�;�D��:�:��$�(�(�"�T�Z�Z�/�C��G�G�M�M�,��:�:�t�X�X�t�z�z�4�E�F�
�

�G�G�M�M�/�T�Z�Z��x�x��,N�N�OrQ)rPr5rKrLrNr.rM)rQN)
r.r�rLr]rMr]rNrJrSr�)rKr|r_r]rNrJrSr�)rrQN)rbr|r_r]rNrJrSr�r)r_r]rSr�)
rUrVrWrXrr�rTr[rcrcrWr^r^rRrQrCrIrI�s����L�	���L�
�K����K��#�
$��$��	$�
�$��
$�
�$� ��CG�	#��	#�#�	#�2?�	#�	
�	#�HL�2��2�#(�2�7D�2�	
�2�
J�PrQrIc�X�URSS5=(d URSS5$)zDhelper function to know if a repo should be created as general deltar��generaldeltasusegeneraldelta�r�r-s rC�gdinitconfigrm�s-���=�=��O�4���
�
��%�9�rQc�&�URSS5$)z�helper function to know if incoming deltas should be optimized

The `format.generaldelta` config is an old form of the config that also
implies that incoming delta-bases should be never be trusted. This function
exists for this purpose.
r�rkrlr-s rC�
gddeltaconfigro�s���=�=��O�4�4rQc�F�\rSrSrSrSrS	S
SjjrSSSjjrS	S
SjjrSr	g)�simplekeyvaluefilei�z�A simple file with key=value lines

    Keys must be alphanumerics and start with a letter, values must not
    contain '
' characterss__firstlineNc��XlX lgr9)r&r)rBr&rr@s    rCr��simplekeyvaluefile.__init__s�����	rQc��URRUR5n0nU(a?U(d![S5n[R
"U5eUSSSX0R'US	[SU55nURU;a-[S5n[R
"X@R-5eURU5 U$![a/n[R
"[R"U55eSnAff=f)z�Read the contents of a simple key-value file

'firstlinenonkeyval' indicates whether the first line of file should
be treated as a key-value pair or reuturned fully under the
__firstline key.sempty simplekeyvalue filerNr~c3�x# �UH0oR5(dMUSSRSS5v� M2 g7f)Nr~�=r)r�r�)rJ�lines  rCrL�*simplekeyvaluefile.read.<locals>.<genexpr>s0����5:�T�j�j�l�(��S�b�	����a�(�(�U�s�:�:s%r can't be used as a key)r&�	readlinesrrr�CorruptedState�firstlinekeyr`rcr�r*r�)rB�firstlinenonkeyval�linesr8�e�
updatedicts      rCr��simplekeyvaluefile.read
s������"�"�4�9�9�-�������2�3���*�*�1�-�-�#(��8�C�R�=�A��� ��a��	C���5:���J�� � �J�.��2�3���*�*�1�/@�/@�+@�A�A�
�H�H�Z� �����	C��&�&�z�'>�'>�q�'A�B�B��	C�s�/A C�
D
�*D�D
c��/nUbURSU-5 UR5H�upEX@R:Xa%SUR-n[R"U5eUSSR5(dSn[R"U5eUR
5(dSn[R"U5eSU;aS	n[R"U5eURS
XE4-5 M� URURSSS
9nURSRU55 SSS5 g!,(df   g=f)aWrite key=>value mapping to a file
data is a dict. Keys must be alphanumerical and start with a letter.
Values must not contain newline characters.

If 'firstline' is not None, it is written to file before
everything else, as it is, not in a key=value formNr�skey name '%s' is reservedrrs1keys must start with a letter in a key-value files+invalid key name in a simple key-value filer�s(invalid value in a simple key-value files%s=%s
swbT)�moder�rQ)rurgr{rr}�isalpha�isalnumr&rr�r�)rBrC�	firstliner}rFrKr~r�s        rCr��simplekeyvaluefile.write)s����� ��L�L��9�,�-��J�J�L�D�A��%�%�%�0�4�3D�3D�D���,�,�Q�/�/��Q�q�6�>�>�#�#�H���,�,�Q�/�/��9�9�;�;�B���,�,�Q�/�/���z�?���,�,�Q�/�/��L�L��q�f�,�-�!��X�X�d�i�i�e��X�
=���H�H�S�X�X�e�_�%�>�
=�
=�s�!D<�<
E
)rr&r9)rr]rSr��F)r|r�)r��Optional[bytes]rSr�)
rUrVrWrXrYr{r�r�r�r^rRrQrCrqrq�s"���
"�L���>&�&rQrq)s
debugobsolete�pullspushsserve�unbundle�_reportobsoletedsourcer�r��_reportnewcssourcec�p^�U4SjnUVVs/sHup4X2"U54PM nnn[TU5 gs snnf)aDInvokes the registered file prefetch functions, allowing extensions to
ensure the corresponding files are available locally, before the command
uses them.

Args:
  revmatches: a list of (revision, match) tuples to indicate the files to
  fetch at each revision. If any of the match elements is None, it matches
  all files.
c�>�U(a9[U[R5(de[R"US5$[	T5$)Nc��gr9rR)r�r�s  rCrf�1prefetchfiles.<locals>._matcher.<locals>.<lambda>ds��rQ)r�r��basematcherrsr�)r�rws �rC�_matcher�prefetchfiles.<locals>._matcher_s?�����a��!5�!5�6�6�6�6��$�$�Q�(<�=�=��D�>�!rQN)�fileprefetchhooks)rw�
revmatchesr�rr�
revbadmatchess`     rC�
prefetchfilesr�Ts;���"�AK�K�
���c�8�E�?�+�
�M�K��d�M�*��Ls�2�_reportstroubledchangesetsc�^^^^^^^
^�U4Sjn/mUUUU4SjnUU4Sj5nU"[5(aUU4Sj5n[R"T[R5(a@TRRSS5(a/SQm
U
4SjmT"T5mUUU
U4S	j5nU"[5(aUS
5n	UU4Sj5n
gg)
z�register a callback to issue a summary after the transaction is closed

If as_validator is true, then the callbacks are registered as transaction
validators instead
c�.>�[U4SjU55$)Nc3�F># �UHnTRU5v� M g7fr9)rM)rJrB�txnnames  �rCrL�;registersummarycallback.<locals>.txmatch.<locals>.<genexpr>~s����D�G�&�7�%�%�f�-�-�G�s�!)r#)�sourcesr�s �rC�txmatch�(registersummarycallback.<locals>.txmatch}s����D�G�D�D�DrQc�>^^^�TRm[R"TR55mUUU4SjnS[	T5-nT(aTRX!5 OTR
X!5 TRU5 U$)zdecorator for report callbacks.c�^>�T"5nT(aUceURT5nT"X5 gr9)�filtered)rXrwr�r��reporefs  ���rC�wrapped�?registersummarycallback.<locals>.reportsummary.<locals>.wrapped�s.����9�D���'�'�'��}�}�Z�0����NrQs%02i-txnreport)r��weakref�refrNrv�addvalidator�addpostcloseru)	r�r��newcatr�r��as_validator�
categories�otrrws	`  @@����rC�
reportsummary�.registersummarycallback.<locals>.reportsummary�sj����_�_�
��+�+�d�o�o�/�0��	�#�S��_�4������V�-����V�-����&�!��rQc��>�URRSS5nURRSS5nURRSS5nURRSS5nU(dU(dU(aZSnU(a[S5U-n[S5nT(a[S	5nUceURR	XrX4U4-5 gg)
Nschangegroup-count-changesetsrschangegroup-count-revisionsschangegroup-count-filesschangegroup-count-headsrQs (%+d heads)s2added %d changesets with %d changes to %d files%s
s3adding %d changesets with %d changes to %d files%s
)�changesr�rr.r')	rwrX�cgchangesets�cgrevisions�cgfiles�cgheads�htextr�r�s	        �rC�reportchangegroup�2registersummarycallback.<locals>.reportchangegroup�s�����z�z�~�~�&E�q�I���j�j�n�n�%C�Q�G���*�*�.�.�!;�Q�?���*�*�.�.�!;�Q�?���;�'��E���/�*�W�4���J�K�C���O�P���#�#�#��G�G�N�N�3��e�!L�L�M�+2rQc�p>�[R"X5n[URR	SS55nU(a'UR
R
[S5U-5 U(aE[S5nT(a[S5nUR
R
U[U5-5 gg)Ns
obsmarkersrRs%i new obsolescence markers
sobsoleted %i changesets
sobsoleting %i changesets
)r�getobsoletedrvr�r�r.r'r)rwrX�	obsoleted�
newmarkersr�r�s     �rC�reportobsoleted�0registersummarycallback.<locals>.reportobsoleted�s�����,�,�T�6�I��R�Z�Z�^�^�M�2�>�?�J�������q�!A�B�Z�O�P���4�5����9�:�C������s�S��^�3�4�	rQrIsevolution.report-instabilities))�orphanr�)sphase-divergentsphasedivergent)scontent-divergentscontentdivergentc	�>�URRn0nTH2up4[[[R
"X55U-
5X#'M4 U$r9)r�r�rvrdrr�)rwr��counts�instabilityrT�instabilitytypess     �rC�getinstabilitycounts�5registersummarycallback.<locals>.getinstabilitycounts�sP����~�~�2�2�H��F�'7�#��&)���(�(��6�7�(�B�'��#�(8��MrQc�>�T"U5nTH>up4X#T	U-
n[XS5nU(dM#URRU5 M@ gr9)�getinstabilitymessager.r�)
rwrX�newinstabilitycountsr�rT�deltar�r�r��oldinstabilitycountss
       ���rC�reportnewinstabilities�7registersummarycallback.<locals>.reportnewinstabilities�sT���#7��#=� �'7�#��(�5�*�;�7�8��,�E�?���3��G�G�L�L��%�(8rQc���URRS[U55nUR5nU[U5:�ag[R
"XS9nU(Ga	XR
5XR5peXV:XaUnOSXV4-n[URSU55n[URSU55n	U(dU	(d[S5U-n
OjU(aU	(a[S5n
X�X�4-n
OJU(a[S	5n
X�U4-n
O1U	(a[S
5n
X�U	4-n
OSn[R"U5eURRU
5 URRSS
5nURSX,5n
URnU
Vs/sHo�U;dM
UPM nnU(a*Sn
URRU
[U5-5 ggs snf)z3Report the range of new revisions pulled/unbundled.�origrepolenN)�starts%s:%ss%ld and draft()s%ld and secret()snew changesets %s
s*new changesets %s (%d drafts, %d secrets)
snew changesets %s (%d drafts)
snew changesets %s (%d secrets)
sentered unreachable conditions
revduplicatesrRs(%d: + %ld) and obsolete()s*(%d other changesets obsolete on arrival)
)r�r�rvrNr"�spansetrArkrrrr}r.r'r�)rwrX�origrepolenrr�minrevr�r��draftrsr��errormsg�
duplicates�obsaddedr�r�extinctaddeds                 rC�reportnewcs�,registersummarycallback.<locals>.reportnewcs�s����*�*�.�.���T��C�K��?�?�$�D��c�$�i�'���#�#�D�<�D��!%�h�h�j�!1�4���
�3C���#�%�H�'�6�*:�:�H��D�I�I�&8�$�?�@���T�Y�Y�':�D�A�B�����2�3�h�>�C��v��J�K�C��e�4�4�C���>�?�C��e�,�,�C���?�@�C��f�-�-�C�?�H��0�0��:�:������s�#������(8�"�=�J��y�y�-�{��H����B�'/�?�x�!�B�;�A�x�L�?��E�������s�S��%6�6�7���@s�)	G0�6G0c�>^�URRS[U55m/nURRS/5H9unupEU[R:waMURU4SjU55 M; U(dg[
S5nT(a[
S5nURRU[U5-5 g)zNReport statistics of phase changes for changesets pre-existing
pull/unbundle.
r�sphasesc3�6># �UHoT:dM
Uv� M g7fr9rR)rJrr�s  �rCrL�Fregistersummarycallback.<locals>.reportphasechanges.<locals>.<genexpr>	s���� J���k�8I����s�	�	Ns%d local changesets published
s&%d local changesets will be published
)	r�r�rvr�publicr�rr.r')	rwrX�	publishedrr�r�r�r�r�s	       @�rC�reportphasechanges�3registersummarycallback.<locals>.reportphasechanges	s����
�*�*�.�.���T��C�K��I�$&�J�J�N�N�9�b�$A� ��j�s��&�-�-�'��� � � J�� J�J�%B����6�7�C���B�C���G�G�N�N�3��Y��/�0rQN)r�rr<r=r.r�r�)rwr�r�r�r�r�r�r�r�r�r�r�r�r�r�s````       @@@@rC�registersummarycallbackr�ts����E��J���2�
N��
N��%�&�&�	�		5�
�		5�����h�'�'���
�'�'�
�
��:���
��	� 4�D�9��	�		&�
�		&��!�"�"�	�.	8�
�.	8�`
�	1�
�	1�i#rQc�.�US:�a[S5X4-$g)z�function to return the message to show warning about new instabilities

exists as a separate function so that extension can wrap to show more
information like how to fix instabilitiesrs%i new %s changesets
Nr
)r�r�s  rCr�r�!	s$��

�q�y��*�+�u�.B�B�B�rQc���[U5U::dURR(aSRSU55$SRSUSU55n[	S5U[U5U-
4-$)Nr6c3�8# �UHn[U5v� M g7fr9�r�rJ�hs  rCrL� nodesummaries.<locals>.<genexpr>,	s���1�5�a��q���5���c3�8# �UHn[U5v� M g7fr9r�r�s  rCrLr�-	s���<�(;�1�e�A�h�h�(;�r�s%s and %d others)rvr.rvr�r)rwr`�maxnumnodesr�s    rC�
nodesummariesr�*	sg��
�5�z�[� �D�G�G�O�O��y�y�1�5�1�1�1��I�I�<��l�{�(;�<�<�E��
 �!�U�C��J��,D�$E�E�ErQc�0�US;agURU5nUR5nUHhnURXsS9n[U5S:�dM#[	S5n	X�-n	[	S5n
U
[U5[X54-n
[R"X�S9e g)z-check that no named branch has multiple heads)sstripsrepairN)�closedrs'rejecting multiple heads on branch "%s"s%d heads: %sr�)r��	branchmap�branchheadsrvrr�rr�)rwrXr��
accountclosedr��visible�bmr^�headsr�r�s           rC�enforcesingleheadr�1	s����$�$���m�m�J�'�G�	�	�	�	�B������t��:���u�:��>��>�?�C��K�C��_�%�D��S��Z��t�!;�<�<�D��+�+�c�-�-�rQc��U$)z�Allow extensions to wrap the sink returned by convcmd.convertsink()
before it is used, whether or not the convert extension was formally loaded.
rR)�sinks rC�wrapconvertsinkr�C	s	���KrQc	���U(dU$UR(a!URRSS5(dU$URS;aU$[5nUH?n[R
"U5nUR[R"U55 MA U(dU$[X5nU(dU$US:XaoUR5nSRUVs/sHn[R"Xx5PM sn5n	URR[!S5U	-5 UR#SU5$![Ra M�f=fs snf)aparse the user specs and unhide changesets whose hash or revision number
is passed.

hiddentype can be: 1) 'warn': warn while unhiding changesets
                   2) 'nowarn': don't warn while unhiding changesets

returns a repo object with the required changesets unhidden
rIsdirectaccess)r��visible-hiddenr�s, s=warning: accessing hidden changesets for write operation: %s
r�)r�r.r�rdr r�rr�rc�gethashlikesymbols�_getrevsfromsymbolsrNr�rr�r�rr�)
rwr��
hiddentype�symbolsr�r�rrr��revstrs
          rC�unhidehashlikerevsrJ	s:������?�?�$�'�'�"4�"4���#�#������=�=����e�G���	��#�#�D�)�D�	���z�4�4�T�:�;�
�����t�-�D�����W����� ������E��1�X�-�-�d�g�6��E�F�������
�#�
��	
�	
��=�=�*�D�1�1��5���	��	��Fs� E�!"E�E�Ec��[5nUR5nURnURn[U5nURRSS5nUHpn[
U5n	X�::a!U(dMX�;aURU	5 M5[X85nUcMGURU5n
X�;dM_URU
5 Mr U$![a NLf=f![R[R4a SnNlf=f)zgparse the list of symbols and returns a set of revision numbers of hidden
changesets present in symbolsrIsdirectaccess.revnumsN)rdrNr�rvr.r�r|rer�rWrrqr�r)rwr�rr�unficlr��tiprev�allowrevnumsrrzrs           rCr�r�	s����5�D��?�?��D�
�^�^�F�	
���B�
��[�F��7�7�%�%�o�7N�O�L�
��
	��A��A��{�#���{�������
�	�&�t�/�A�
�=��*�*�Q�-�C��}�����
�+�.�K���	��	��
�!�!�5�#8�#8�9�	��A�	�s*� C�9C�C"�
C�C�"&D�
Dc�6�UR[U55$)zxSelect revisions reachable by a given bookmark

If the bookmarked revision isn't a head, an empty set will be returned.
)r�format_bookmark_revspec)rw�marks  rC�bookmarkrevsr	�	s��
�9�9�,�T�2�3�3rQc�>�SU-n[R"SUUU5$)zKBuild a revset expression to select revisions reachable by a given
bookmarksliteral:smancestors(bookmark(%s)) - ancestors(head() and not bookmark(%s)) - ancestors(bookmark() and not bookmark(%s)))r r�)rs rCrr�	s1�����D�� � �	6�	
���
�rQc�$�US/:H=(d X;$)z�Check if username is a member of userlist.

If userlist has a single '*' member, all users are considered members.
Can be overridden by extensions to provide more complex authorization
schemes.
�*rR)r.�username�userlists   rC�ismemberr�	s����v��5��!5�5rQ��
RESOURCE_HIGHr|�RESOURCE_MEDIUM�RESOURCE_LOW)slowsmediumshighzDict[bytes, int]�RESOURCE_MAPPING�DEFAULT_RESOURCEc�`^�U4SjnUbU"SSU-5nUbU$U"SS5nUbU$[$)zhreturn the resource profile for a dimension

If no dimension is specified, the generic value is returnedc�N>�TRXSS9n[RU5$)Nsdefault)r6)r�rr�)�sectionr^�
value_namer.s   �rCr��$get_resource_profile.<locals>.config�	s&����Y�Y�w�j�Y�A�
��#�#�J�/�/rQsusagesresources.%ss	resources)r)r.�	dimensionr�rJs`   rC�get_resource_profiler�	sI���0����x��9�!<�=�����L��8�\�*�E������rQr9)r.r�rSr�)r.r�r�zCallable[[], int]rSr|)r�r]rSr�r�)r.r�r�r]rSr�)r.r�rSzTuple[bool, bool]r�)r�r�)r�
Iterable[int]rSr])FNF)r0r�r1zOptional[List[bytes]]r2r�rS�Iterable[bytes])rSr])rSr|)r.r�rr|r;r]rSr]rj)rSr]rSr�)rN)r;r]rrr|)rxr]rSr�)rxr])r�r]rSzerror.FilteredRepoLookupError)r�Nr)�i)r�r|r�r|rSr)FN)r�r�r�r�rS�typelib.UiPathFn)rnr]r�r rSr )r�rrSr�)rRNFr�N)r�r�r6r])rSzmatchmod.exactmatcher)r�r]r�r]rSr])r.r�)r.r�rr]rSr])NNFNTr)NN)rSr]r�r rSr|)g)r|rorSr|)rSzFTuple[List[bytes], List[bytes], List[bytes], List[bytes], List[bytes]])r�r rSzDict[bytes, bytes])r.r�r�r�r�r�rSr�rr)rBr])rQF)r�r]r�r�rSr�)r�r|r�r]rSr�)�)r�r|rSr])r�r]rSr�)r�r])rSzSet[int])rr])rr]rSr])r.r�r
r]rr�rSr�)r.r�rr�rSr|)��
__future__rr�r�r�r!r�r�r7�typingr�rrrrrr	r
r�i18nrr;rrrrr�
thirdpartyr�
TYPE_CHECKINGr4rr�rrrr�rrrrrrrr�r r!r"r#r$r%r&�
interfacesr'�istatus�utilsr(r)r*r�r+�scmplatformr,r.�uimod�	importmodr/�
importrustrm�termsizer�Statusrpr{r�r�r�r�r�r�rrr�r�r/r>r@rCrBrWr[ruryrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	rrfrrr�rtrwrxr�r�r�r�r�r�r�r�r�r�rrrGrIrmrorqr�rr�r��hooksr�r�r�r�r�r�r�rr�r	rrrrrrrrrRrQrC�<module>r1s��#����	��	��
��	�	�	�����
���������**������+�)�	�����
�
�9�
%��
�
�
�x�d�
3�
��������d���G�W�^�^�G� �G�>3�4,�(w �t
�4
�
/����4(-�#� $�#�L�>#���'+��	2��2�%�2��	2�
�2�j��=�+��@�J&�Z
�@+�F.�2��%�4D�<+.����$'����'�T�&!&�)-�)��)�'�)��	)�X:�
�:�.�:��:�F��,
�	
���
�
#��	#�
�#�P
�	
���
�
	K��		K�
�	K��
.�
�3�!"�H4�4��
�
���t�
�t�x
��
K�
�K��	K�	�K�\ 
�F#7�K�#7�L�9I����2 �+�\�@��$��$�
�
$�
�$�
�$�B-�D�&I�
-�(/�&�9�9�x��$\)�\)�~A�HBP�BP�J�5�E&�E&�P'������#��K��+�4�J�J�L��$(��D�'�;@�j1��j1�37�j1�	�j1�ZC�F�.�$�22�j �F4��6��
�s��������c��
��
�&��"��(��#�'�04����,���rQ

Youez - 2016 - github.com/yon3zu
LinuXploit