ó
    6°h0s  ã                  ó´  • S SK Jr  S SKrS SKrSSKJrJrJr  SSKJ	r	J
r  / r\" 5       r " S S5      rS<S	 jr\" S
SS9S 5       r\" SSSS9S 5       r\" SSS9S 5       r\" S\S9S 5       r\" SSSS9S 5       r\" S\S9S 5       r\" SSSS9S 5       r\" S\S9S 5       r\" SSSS9S  5       r\" S!SSS9S" 5       r\" S#SSS9S$ 5       r\" S%S&SS9S' 5       r\" S(SSS9S) 5       r\" S*S+SS9S, 5       r\" S-S.SS9S/ 5       r\" S0SSS9S1 5       r \" S2S+SS9S3 5       r!S4 r"S5 r#S6 r$\RJ                  4S7 jr&      S=S8 jr' " S9 S:5      r(    S>S; jr)g)?é    )ÚannotationsNé   )ÚmdiffÚnodeÚrevlogutilsé   )Ú	constantsÚdeltasc                  ó(   • \ rS rSrSrSS jrS rSrg)Ú_column_baseé   zÞconstains the definition of a revlog column

name:         the column header,
value_func:   the function called to get a value,
size:         the width of the column,
verbose_only: only include the column in verbose mode.
Nc                óz   • Xl         X l        U[        La  Uc  Sn[        [	        U5      U5      nX0l        X@l        g )Né   )ÚnameÚ
value_funcÚ	NODE_SIZEÚmaxÚlenÚ_sizeÚverbose_only)Úselfr   r   ÚsizeÚverboses        Ú=/usr/lib/python3/dist-packages/mercurial/revlogutils/debug.pyÚ__init__Ú_column_base.__init__'   s9   € ØŒ	Ø$ŒØ”yÒ Ø‰|Ø�Ü”s˜4“y $Ó'ˆDØŒ
Ø#Õó    c                óD   • U R                   [        L a  U$ U R                   $ ©N)r   r   )r   Ú	node_sizes     r   Úget_sizeÚ_column_base.get_size1   s   € Ø�:‰:œÒ"ØÐà—:‘:Ðr   )r   r   r   r   ©NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r!   Ú__static_attributes__© r   r   r   r      s   † ñô$õr   r   c                ó   ^ ^^• U UU4S jnU$ )zsdecorated function is registered as a column

name: the name of the column,
size: the expected size of the column.
c                óJ   >• [        TU TTS9n[        R                  U5        U$ )N)r   r   r   r   )r   ÚINDEX_ENTRY_DEBUG_COLUMNÚappend)ÚfuncÚentryr   r   r   s     €€€r   ÚregisterÚdebug_column.<locals>.register?   s.   ø€ ÜØØØØñ	
ˆô 	!×'Ñ'¨Ô.Øˆr   r*   )r   r   r   r1   s   ``` r   Údebug_columnr3   8   s   ú€ ÷ð €Or   ó   revé   )r   c                ó   • SU-  $ ©Nó   %dr*   ©ÚindexÚrevr0   Úhexfns       r   Ú_revr=   L   s   € à�3‰;Ðr   s   rankT)r   r   c                ó.   • SU[         R                     -  $ r7   )r	   Ú
ENTRY_RANKr9   s       r   Úrankr@   Q   s   € à�5œ×-Ñ-Ñ.Ñ.Ð.r   s   linkrevc                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_LINK_REVr9   s       r   Ú_linkrevrC   V   ó   € à�5œ×1Ñ1Ñ2Ñ2Ð2r   s   nodeidc                ó4   • U" U[         R                     5      $ r   )r	   ÚENTRY_NODE_IDr9   s       r   Ú_nodeidrG   [   s   € á�”y×.Ñ.Ñ/Ó0Ð0r   s   p1-revc                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_PARENT_1r9   s       r   Ú_p1_revrJ   `   rD   r   s	   p1-nodeidc                ób   • U[         R                     nX   nU" U[         R                     5      $ r   )r	   rI   rF   ©r:   r;   r0   r<   ÚparentÚp_entrys         r   Ú_p1_noderO   e   ó/   € à”9×+Ñ+Ñ,€FØ‰m€GÙ�œ×0Ñ0Ñ1Ó2Ð2r   s   p2-revc                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_PARENT_2r9   s       r   Ú_p2_revrS   l   rD   r   s	   p2-nodeidc                ób   • U[         R                     nX   nU" U[         R                     5      $ r   )r	   rR   rF   rL   s         r   Ú_p2_noderU   q   rP   r   s	   full-sizeé   c                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_DATA_UNCOMPRESSED_LENGTHr9   s       r   Ú	full_sizerY   x   s   € à�5œ×AÑAÑBÑBÐBr   s
   delta-basec                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_DELTA_BASEr9   s       r   Ú
delta_baser\   }   s   € à�5œ×3Ñ3Ñ4Ñ4Ð4r   s   flagsc                ó<   • U[         R                     nUS-  nSU-  $ )Niÿÿ  r8   ©r	   ÚENTRY_DATA_OFFSET©r:   r;   r0   r<   Úfields        r   Úflagsrb   ‚   s%   € à”)×-Ñ-Ñ.€EØ	ˆV�O€EØ�5‰=Ðr   s	   comp-modeé   c                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_DATA_COMPRESSION_MODEr9   s       r   Úcompression_moderf   ‰   s   € à�5œ×>Ñ>Ñ?Ñ?Ð?r   s   data-offsetc                ó<   • U[         R                     nUS-  nSU-  $ )Né   r8   r^   r`   s        r   Údata_offsetri   Ž   s%   € à”)×-Ñ-Ñ.€EØ	ˆb�L€EØ�5‰=Ðr   s
   chunk-sizeé
   c                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_DATA_COMPRESSED_LENGTHr9   s       r   Údata_chunk_sizerm   •   s   € à�5œ×?Ñ?Ñ@Ñ@Ð@r   s   sd-comp-modeé   c                ó°   • U[         R                     nU[         R                  :X  a  gU[         R                  :X  a  gU[         R                  :X  a  gSU-  $ )Ns   plains   defaultó   inliner8   )r	   ÚENTRY_SIDEDATA_COMPRESSION_MODEÚCOMP_MODE_PLAINÚCOMP_MODE_DEFAULTÚCOMP_MODE_INLINE)r:   r;   r0   r<   Úcompressions        r   Úsidedata_compression_moderv   š   sP   € àœ	×AÑAÑB€KØ”i×/Ñ/Ó/ØØ	œ	×3Ñ3Ó	3ØØ	œ	×2Ñ2Ó	2Øà�{Ñ"Ð"r   s   sidedata-offsetc                ó.   • SU[         R                     -  $ r7   )r	   ÚENTRY_SIDEDATA_OFFSETr9   s       r   Úsidedata_offsetry   §   s   € à�5œ×8Ñ8Ñ9Ñ9Ð9r   s   sd-chunk-sizec                ó.   • SU[         R                     -  $ r7   )r	   Ú ENTRY_SIDEDATA_COMPRESSED_LENGTHr9   s       r   Úsidedata_chunk_sizer|   ¬   s   € à�5œ×CÑCÑDÑDÐDr   c                óŒ  • U(       a  [         R                  nO[         R                  nSnU H#  n[        U" UR	                  U5      5      5      n  O   Un/ n	[
         Hd  n
U
R                  (       a  U R                  (       d  M'  U
R                  U5      nU
R                  nU	R                  UR                  U5      5        Mf     UR                  SR                  U	5      S-   5        UR                  nU Hº  nUR                  5         XÞ   nSn[
         H†  n
U
R                  (       a  U R                  (       d  M'  U(       d  UR                  S5        SnU
R                  U5      nU
R!                  XÞXõ5      nSU-  nUR#                  U
R                  UU5        Mˆ     UR                  S5        M¼     UR%                  5         g)zdisplay index data for a revlogé   ó    ó   
TFs   %%%dsN)ÚnodemodÚhexÚshortr   r   r-   r   r   r!   r   r.   ÚrjustÚplainÚjoinr:   Ú	startitemr   ÚwriteÚend)ÚuiÚrepoÚ	formatterÚrevlogÚ	full_noder<   ÚidlenÚiÚfmÚheader_piecesÚcolumnr   r   r:   r;   r0   ÚfirstÚvalueÚdisplays                      r   Údebug_indexr—   ±   s`  € ö Ü—‘‰ä—‘ˆà€EÛˆÜ‘E˜&Ÿ+™+ a›.Ó)Ó*ˆÙñ ð 
€Bà€Mß*ˆØ×× r§z§zÙØ�‰˜uÓ%ˆØ�{‰{ˆØ×Ñ˜TŸZ™Z¨Ó-Ö.ñ +ð ‡H�HˆT�Y‰Y�}Ó%¨Ñ-Ô.à�L‰L€EãˆØ
�‰ŒØ‘
ˆØˆß.ˆFØ×"×"¨2¯:¯:ÙÞØ—‘˜”ØˆEà—?‘? 5Ó)ˆDØ×%Ñ% e°%Ó?ˆEØ ‘oˆGØ�H‰H�V—[‘[ '¨5Ö1ñ /ð 	�‰�Žñ ð" ‡F�F…Hr   c                óø  • Un[        U5      nU R                  S5        Sn[        5       n[        U5       GH.  nUR	                  U5      nUS:X  a  UnUR                  U5      nUR                  U5      n	UR                  U5      u  p«UR                  U5      nXL-   nU[        UR                  U5      5      -  nUR                  U5         XBR                  U5      -  nU R                  SUU
UUR                  U5      UR                  U5      UR                  U5      UR                  U5      UR                  U
5      UR                  U5      UUU[        U5      U	4-  5        GM1     g! [         a    Sn N™f = f)z+perform the work for `hg debugrevlog --dumpse   # rev p1rev p2rev start   end deltastart base   p1   p2 rawsize totalsize compression heads chainlen
r   éÿÿÿÿs:   %5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d %11d %5d %8d
N)r   Úwritenoi18nÚsetÚrangeÚdeltaparentÚ	chainbaseÚchainlenÚ
parentrevsÚrawsizeÚaddr‰   ÚZeroDivisionErrorrˆ   Ústart)rŠ   r�   ÚrÚnumrevsÚtsÚheadsr;   ÚdbaseÚcbaseÚclenÚp1Úp2Úrsru   s                 r   Údumpr¯   å   sb  € ð 	€AÜ�!‹f€GØ‡N�Nð	;ôð 
€BÜ‹E€Eä�W�~ˆØ—‘˜cÓ"ˆØ�B‹;ØˆEØ—‘˜CÓ ˆØ�z‰z˜#‹ˆØ—‘˜cÓ"‰ˆØ�Y‰Y�s‹^ˆØ‰WˆØ”�Q—\‘\ #Ó&Ó'Ñ'ˆØ�	‰	�#Œð	ØŸu™u S›z™/ˆKð 	�‰ðð ØØØ—‘˜“Ø—‘�c“
Ø—‘˜“Ø—‘˜“Ø—‘˜“Ø—‘˜“ØØØÜ�E“
Øðñ÷	
ò øô !ó 	ØŠKð	ús   ÃE*Å*E9Å8E9c           	     ó  ^J^K^L• UnUR                   nUR                  n/ nSnU[        R                  -  (       a  UR	                  S5        U[        R
                  -  (       a  SnUR	                  S5        U(       d  S/nSnSnSn	Sn
SnSnSn[        R                  " [        5      n[        R                  " [        5      nSnSnSnSnSnSnSnSn/ n/ n/ n/ SQn/ SQn/ SQn[        R                  " S 5      n/ SQn0 n 0 n!S	 n"UR                  5          [        U5      n#[        U#5       GH  n$UR                  U$5      u  n%n&UR                  U$5      n'US:”  a  UR                  U$5      n(UU(-  nU"" U(U5        U&[        R                   :w  a  US
-  nUR#                  U$5      n)U'[        R                   :X  a}  UR	                  S5        UR	                  UR%                  U$5      5        UR	                  U)5        U)S:X  a  U	S
-  n	U
S
-  n
GO“US
-  nUS==   S
-  ss'   U"" U)U5        U"" U)US   5        GOjU'U%:g  =(       a#    U'U&:g  =(       a    UR'                  U'U$5      (       + n*UR	                  UU'   S
-   5        UU'   n+UR%                  U$5      n,UR	                  U+5        UR	                  U,U+-
  U)-   5        U)S:X  a  U	S
-  n	US
-  nOÕUR)                  U$5      (       aM  U"" U)U5        US
-  nUR+                  U$5      n-UU-==   S
-  ss'   U*(       a  UU-==   S
-  ss'   U"" U)UU-   5        OrU"" U)U5        U'U$S
-
  :X  a*  US
-  nU'U%:X  a  US
-  nOOU'U&:X  a  US
-  nOCU*(       a  US
-  nO6U'U%:X  a  US
-  nO*U'U&:X  a  US
-  nOU'[        R                   :w  a
  US
-  nUS
-  n[-        US5      (       a   UR.                  R1                  U$U$5      S
   n.OUR2                  R5                  U$U$5      S
   n.U.(       a  [7        U.SS
 5      n/OSn/U/U ;  a
  SU U/'   SU!U/'   U U/==   S
-  ss'   U!U/==   U)-  ss'   GM     SSS5        UUUU4 H  n)U)S   b  M  SU)S'   M     W#U-
  U	-
  U-
  n0UU-
  U-
  U-
  n1UU-
  n2US   n3US==   U#-  ss'   US   n4US:X  a  SUS'   OUS==   U-  ss'   US   n50 n6US:”  a  US==   U-  ss'   U H!  n-UU-   S   U6U-'   UU-   S==   UU-   -  ss'   M#     US   n7U0S:”  a  US==   U0-  ss'   U4U5-   U7-   n8[9        U5      U#-  n9[;        U5      n:[;        U5      n;S
n<U8(       a  U3U8-  n<SmJSmKUJ4S jn=SAUK4S jjn>S n?U R=                  SU-  5        U R=                  SSR?                  U5      -  5        U RA                  S5        U>" U85      n@U=" U85      nAU R=                  SUAU#-  -   5        U R=                  SU@U?" UU#5      -  -   5        U R=                  SU@U?" U#U-
  U#5      -  -   5        U R=                  SUAU#-  -   5        U R=                  SU@U?" U	U#5      -  -   5        U R=                  SU@U?" XªU-   5      -  -   5        U R=                  SU@U?" XºU-   5      -  -   5        U R=                  SU@U?" XÍ-   U#5      -  -   5        [C        U5       H‡  n-SU--  nBW@U?" UU-   U#5      -  nCUBUC/nDUU-   (       aB  WCSS  =WDS '   nCS!nEW@nFUFU?" UU-   UU-   5      -  nFUDR	                  UE5        UDR	                  UF5        U RA                  S"R?                  WD5      5        M‰     U R=                  S#W@U?" U0U#5      -  -   5        U R=                  S$WAU8-  -   5        U R=                  SU@U?" U4U5-   U85      -  -   5        [C        U5       H'  n-U RA                  SU--  W@U?" U6U-   U85      -  -   5        M)     U R=                  S#W@U?" U7U85      -  -   5        [D        RF                  RI                  S%5      mLUL4S& jnGU RA                  S5        U R=                  S'WAU#-  -   5        [C        U 5       H8  n/U RA                  WG" U/5      5        U RA                  W@U?" U U/   U#5      -  5        M:     U R=                  S(WAU8-  -   5        [C        U 5       H8  n/U RA                  WG" U/5      5        U RA                  W@U?" U!U/   U85      -  5        M:     U RA                  S5        S)U-  nH/ nI[        UH5      S*:”  a*  WIR	                  WHS+S 5        UHSS+ nH[        UH5      S*:”  a  M*  WIR	                  WH5        UIRK                  5         S,R?                  UI5      nHU RA                  S5        U R=                  S-UH-  5        U RA                  S5        U=" [;        U9U:U;U<5      5      n@U R=                  S.U@U9-  -   5        U R=                  S/U@U:-  -   5        U R=                  S0U@U;-  -   5        U R=                  S1U@U<-  -   5        US:”  a.  U RA                  S5        U R=                  S2[M        U5      -  5        U R=                  S3[M        U5      -  5        U R=                  S4[M        U5      -  5        [C        U5       H/  n-U-S:X  a  M  U R=                  S5U-4[M        UU-   5      -   -  5        M1     U R=                  S6[M        U5      -  5        U0S:”  Ga?  U RA                  S5        U>" U05      n@U>" U0S75      nAU R=                  S8U@U?" UU05      -  -   5        US:”  ax  U R=                  S9WAU?" UU5      -  -   5        U R=                  S:UAU?" UU5      -  -   5        U R=                  S;UAU?" U1U5      -  -   5        U R=                  S<UAU?" U1U5      -  -   5        U(       ay  U R=                  S=W@U?" UU05      -  -   5        U R=                  S>U@U?" UU05      -  -   5        U R=                  S?U@U?" U2U05      -  -   5        U R=                  S@U@U?" UU05      -  -   5        ggg! , (       d  f       GNÊ= f)Bzcode for `hg debugrevlog`Frp   Ts   generaldeltas   (none)r   ©Nr   r   c                 ó
   • / SQ$ )Nr±   r*   r*   r   r   Ú<lambda>Údebug_revlog.<locals>.<lambda>Q  s   € ³Lr   c                óZ   • US   b  XS   :  a  XS'   XS   :”  a  XS'   US==   U -  ss'   g )Nr   r   r   r*   )r   Úls     r   ÚaddsizeÚdebug_revlog.<locals>.addsizeV  s7   € ØˆQ‰4‰<˜4 A¡$›;Øˆa‰DØ�A‘$‹;Øˆa‰DØ	ˆ!‹�‰Œr   r   Ú_inneró   emptyNr   s   %%%dd
s   %%%dd %s(%%5.2f%%%%)
c                ó2   >• T[        [        U 5      5      -  $ r   ©r   Ústr)r   Úbasedfmtstrs    €r   ÚdfmtstrÚdebug_revlog.<locals>.dfmtstrÓ  s   ø€ ØœS¤ S£›]Ñ*Ð*r   c                ó<   >• T[        [        U 5      5      SU-  4-  $ )Nr   r¼   )r   ÚpaddingÚbasepcfmtstrs     €r   ÚpcfmtstrÚdebug_revlog.<locals>.pcfmtstrÖ  s   ø€ Øœs¤3 s£8›}¨d°W©nÐ=Ñ=Ð=r   c                ó>   • U(       a  U S[        U 5      -  U-  4$ U S4$ )Néd   g      Y@)Úfloat)r•   Útotals     r   ÚpcfmtÚdebug_revlog.<locals>.pcfmtÙ  s(   € ÞØ˜3¤ u£Ñ-°Ñ5Ð6Ð6à˜%�<Ðr   s   format : %d
s   flags  : %s
s   , r€   s   revisions     : s       merges    : s       normal    : s       empty     : s                      text  : s                      delta : s       snapshot  : s         lvl-%-3d :       r™   s     non-ancestor-bases: r   s       deltas    : s   revision size : Úasciic                óŽ   >• U S:X  a  SU -  $ U T;   a  S[         R                  " U 5      U 4-  $ S[         R                  " U 5      -  $ )Nrº   s       %s     : s       0x%s (%s)  : s       0x%s      : )r�   r‚   )Ú	chunktypeÚletterss    €r   ÚfmtchunktypeÚ"debug_revlog.<locals>.fmtchunktype  sK   ø€ Ø˜Ó Ø# iÑ/Ð/Ø˜'Ó!Ø'¬7¯;ª;°yÓ+AÀ9Ð*MÑMÐMà&¬¯ª°YÓ)?Ñ?Ð?r   s   chunks        : s   chunks size   : r8   é   éýÿÿÿr   s   total-stored-content: %s bytes
s   avg chain length  : s   max chain length  : s   max chain reach   : s   compression ratio : s4   uncompressed data size (min/max/avg) : %d / %d / %d
s4   full revision size (min/max/avg)     : %d / %d / %d
s4   inter-snapshot size (min/max/avg)    : %d / %d / %d
s5       level-%-3d (min/max/avg)          : %d / %d / %d
s4   delta size (min/max/avg)             : %d / %d / %d
rc   s   deltas against prev  : s       where prev = p1  : s       where prev = p2  : s       other-ancestor   : s       unrelated        : s   deltas against p1    : s   deltas against p2    : s   deltas against ancs  : s   deltas against other : )r   )'Ú_format_versionÚ_format_flagsr	   ÚFLAG_INLINE_DATAr.   ÚFLAG_GENERALDELTAÚcollectionsÚdefaultdictÚintÚreadingr   rœ   r    r�   r¡   r�   ÚnullrevÚlengthr¤   ÚisancestorrevÚ
issnapshotÚsnapshotdepthÚhasattrr¹   Úget_segment_for_revsÚ_revlogÚ_getsegmentforrevsÚbytesÚsumr   rš   r†   rˆ   ÚsortedÚstringÚascii_lettersÚencodeÚreverseÚtuple)MrŠ   r�   r¥   ÚformatÚvrb   ÚgdeltaÚfull_text_total_sizeÚ	nummergesÚnumemptyÚnumemptytextÚnumemptydeltaÚnumfullÚnumsemiÚnumsnapdepthÚnumsnapdepth_nadÚnumprevÚnumprev_nadÚnump1Únump2ÚnumotherÚnumother_nadÚ	nump1prevÚ	nump2prevÚchainlengthsÚ
chainbasesÚ
chainspansÚdatasizeÚfullsizeÚsemisizeÚsnapsizedepthÚ	deltasizeÚchunktypecountsÚchunktypesizesr·   r¦   r;   r¬   r­   ÚdeltaÚsr   ÚnadÚbaseaddrÚrevaddrÚdepthÚsegmentrÎ   Ú	numdeltasÚnumoprevÚnum_other_ancestorsÚtotalrawsizeÚ	fulltotalÚ	semitotalÚ	snaptotalÚ
deltatotalÚ	totalsizeÚavgchainlenÚmaxchainlenÚmaxchainspanÚ	compratior¿   rÄ   rÊ   ÚfmtÚfmt2ÚbaseÚcountÚpiecesÚmoreÚ	anc_countrÐ   Úb_totalÚp_totalr¾   rÃ   rÏ   sM                                                                             @@@r   Údebug_revlogr(    s·  ú€ à€AØ×Ñ€FØ	�‰€AØ€EØ€FØŒ9×%Ñ%×%Ø�‰�YÔØŒ9×&Ñ&×&ØˆØ�‰�_Ô%ÞØ�ˆð Ðà€Ið €HØ€LØ€Mà€Gà€Gä×*Ò*¬3Ó/€Lä"×.Ò.¬sÓ3Ðà€Gà€Kà€EØ€Eà€Hà€Lð €IØ€Ið €LØ€JØ€Jò €HÚ€HÚ€Hä×+Ò+Ñ,@ÓA€MÚ€IØ€OØ€Nòð 
�‰�Ü�a“&ˆÜ˜—>ˆCØ—\‘\ #Ó&‰FˆB�Ø—M‘M #Ó&ˆEØ˜‹zØ—I‘I˜c“N�Ø$¨Ñ)Ð$Ù˜˜8Ô$Ø”W—_‘_Ó$Ø˜Q‘�	Ø—8‘8˜C“=ˆDØœŸ™Ó'Ø×#Ñ# AÔ&Ø×!Ñ! !§'¡'¨#£,Ô/Ø×!Ñ! $Ô'Ø˜1“9Ø ‘M�HØ  AÑ%’Là˜q‘L�GØ  “O qÑ(“OÙ˜D (Ô+Ù˜D -°Ñ"2Ö3ð ˜R‘K÷ 8Ø ™÷8àŸO™O¨E°3Ó7Ô7ð ð
 ×#Ñ# L°Ñ$7¸!Ñ$;Ô<Ø% eÑ,�ØŸ'™' #›,�Ø×!Ñ! (Ô+Ø×!Ñ! 7¨XÑ#5¸Ñ"=Ô>Ø˜1“9Ø ‘M�HØ! QÑ&‘MØ—\‘\ #×&Ñ&Ù˜D (Ô+Ø˜q‘L�GØŸO™O¨CÓ0�EØ  Ó'¨1Ñ,Ó'ÞØ(¨Ó/°1Ñ4Ó/Ù˜D -°Ñ"6Õ7á˜D )Ô,Ø  a¡Ó'Ø 1™˜Ø  B›;Ø%¨™N™IØ" b›[Ø%¨™N™IÞ Ø'¨1Ñ,˜KøØ "›Ø ™
™Ø "›Ø ™
™Ø¤'§/¡/Ó1Ø  A™˜Ø$¨Ñ)˜ô �q˜(×#Ñ#ØŸ(™(×7Ñ7¸¸SÓAÀ!ÑD‘àŸ)™)×6Ñ6°s¸CÓ@ÀÑC�ÞÜ! '¨!¨A ,Ó/‘	à$�	à Ó/Ø-.� 	Ñ*Ø,-�˜yÑ)à˜IÓ&¨!Ñ+Ó&Ø˜9Ó%¨Ñ-Ö%ñ[ "÷ 
ðd ˜8 X¨yÓ9ˆØ�‰7‹?ØˆD�‹Gñ :ð ˜'Ñ! HÑ,¨wÑ6€IØ˜Ñ" YÑ.°Ñ<€HØ" \Ñ1ÐØ˜A‘;€LØˆQƒK�7ÑƒKØ˜‘€IØ�!ƒ|Øˆ�Šà�‹�wÑ‹Ø˜‘€IØ€IØ�ƒ{Ø�‹�wÑ‹ÛˆØ(¨Ñ/°Ñ2ˆ	�%ÑØ�eÑ˜QÓ <°Ñ#6Ñ6Õñ ð ˜1‘€JØ�1ƒ}Ø�!‹˜	Ñ!‹Ø˜IÑ%¨
Ñ2€IÜ�lÓ# gÑ-€KÜ�lÓ#€KÜ�z“?€LØ€IÞØ  9Ñ,ˆ	à€KØ,€Lõ+÷>ò ð ‡N�NÐ# fÑ,Ô-Ø‡N�NÐ# e§j¡j°Ó&7Ñ7Ô8à‡H�HˆU„OÙ
�9Ó
€CÙ�9Ó€DØ‡N�NÐ&¨°©Ñ7Ô8Ø‡N�NÐ&¨©u°YÀÓ/HÑ)HÑHÔIØ‡N�NØ˜c¡E¨'°IÑ*=¸wÓ$GÑGÑGôð ‡N�NÐ&¨°©Ñ7Ô8Ø‡N�NÐ&¨©u°X¸wÓ/GÑ)GÑGÔHØ‡N�NØ&Ø
‘�l°=Ñ$@ÓAÑ
Añ	Bôð ‡N�NØ&Ø
‘�m°MÑ%AÓBÑ
Bñ	Côð ‡N�NØ˜c¡E¨'Ñ*;¸WÓ$EÑEÑEôô ˜Ö%ˆØ)¨EÑ1ˆØ‘e˜L¨Ñ/°Ó9Ñ9ˆØ˜�ˆØ˜E×"Ø!& s¨ Ð+ˆF�2‰J˜Ø,ˆDØˆIØ™Ð/°Ñ6¸ÀUÑ8KÓLÑLˆIØ�M‰M˜$ÔØ�M‰M˜)Ô$Ø
�‰�—‘˜&Ó!Ö"ñ &ð ‡N�NÐ&¨©u°YÀÓ/HÑ)HÑHÔIØ‡N�NÐ&¨°	Ñ)9Ñ9Ô:Ø‡N�NØ˜c¡E¨)°iÑ*?ÀÓ$KÑKÑKôô ˜Ö%ˆØ
�‰Ø'¨%Ñ/Ø‘E˜) EÑ*¨IÓ6Ñ6ñ7ö	
ñ &ð
 ‡N�NÐ&¨©u°ZÀÓ/KÑ)KÑKÔLä×"Ñ"×)Ñ)¨'Ó2€Gõ@ð ‡H�HˆU„OØ‡N�NÐ&¨°©Ñ7Ô8Ü˜OÖ,ˆ	Ø
�‰‘˜iÓ(Ô)Ø
�‰�‘u˜_¨YÑ7¸ÓAÑAÖBñ -ð ‡N�NÐ&¨°	Ñ)9Ñ9Ô:Ü˜OÖ,ˆ	Ø
�‰‘˜iÓ(Ô)Ø
�‰�‘u˜^¨IÑ6¸	ÓBÑBÖCñ -ð ‡H�HˆU„OØÐ*Ñ*€GØ€GÜ
ˆg‹,˜Ó
Ø�‰�w˜r˜s�|Ô$Ø˜#˜2�,ˆô ˆg‹,˜Õ
ð ‡N�N�7ÔØ‡O�OÔØ�i‰i˜Ó €Gà‡H�HˆU„OØ‡N�NÐ6¸Ñ@ÔAØ‡H�HˆU„OÙ
”#�k ;°¸iÓHÓ
I€CØ‡N�NÐ*¨S°;Ñ->Ñ>Ô?Ø‡N�NÐ*¨S°;Ñ->Ñ>Ô?Ø‡N�NÐ*¨S°<Ñ-?Ñ?Ô@Ø‡N�NÐ*¨S°9©_Ñ<Ô=à�ƒzØ
�‰�ŒØ
�‰ØDÜ�H‹oñô	
ð ‡N�NØ@Ü
�‹/ñ	ôð ‡N�NØ@Ü
�‹/ñ	ôô ˜Ö&ˆØ�A‹:ÙØ
�‰ØEØˆxœ% ¨eÑ 4Ó5Ñ5ñ7ö	
ñ 'ð ‡N�NØ@Ü
�	Ó
ñ	ôð
 �1„}Ø
�‰�ŒÙ�yÓ!ˆÙ˜	 1Ó%ˆØ
�‰Ø&¨©u°W¸iÓ/HÑ)HÑHô	
ð �Q‹;Ø�N‰NØ*¨T±E¸)ÀWÓ4MÑ-MÑMôð �N‰NØ*¨T±E¸)ÀWÓ4MÑ-MÑMôð �N‰NØ*¨T±E¸(ÀGÓ4LÑ-LÑLôð �N‰NØ*¨T±E¸(ÀGÓ4LÑ-LÑLôö Ø�N‰NØ*¨S±5¸À	Ó3JÑ-JÑJôð �N‰NØ*¨S±5¸À	Ó3JÑ-JÑJôð �N‰NØ*Ø™Ð1°9Ó=Ñ=ñ>ôð �N‰NØ*Ø™˜l¨IÓ6Ñ6ñ7õð ð) ÷g 
Žús   ÄL!o:ï:
p	c           	     ót  • [         R                  " UU R                  U R                  (       + S9nUR	                  U5      nUR                  U5      u  pgUR	                  U5      nUR	                  U5      n	UR                  U5      n
U
/n[        US   5      nSnUR                  U5      nU[        R                  :w  a=  UR                  U5      n[        R                  " Xú5      nUU[        R                  4nS/n[        R                   " UUU	UUUU5      nUR#                  5       nUR%                  UUUS9  g)z&display the search process for a delta)Úwrite_debugÚdebug_searchr   N)Ú
target_rev)Ú	deltautilÚdeltacomputerrˆ   Úquietr   r    Úrevisionr   rb   r�   rÜ   r   Útextdiffr	   ÚDELTA_BASE_REUSE_TRYr   ÚrevisioninfoÚ_datafpÚfinddeltainfo)rŠ   r�   r;   Úbase_revr.  r   Úp1rÚp2rr¬   r­   Ú	full_textÚbtextÚtextlenÚ
cachedeltarb   Ú	base_textr  ÚrevinfoÚfhs                      r   Údebug_delta_findr@  u  s!  € ä×+Ò+ØØ—H‘HØŸ™”\ñ€Mð �;‰;�sÓ€DØ× Ñ  Ó%�H€CØ	�‰�SÓ	€BØ	�‰�SÓ	€BØ—‘ Ó$€IØˆK€EÜ�%˜‘(‹m€GØ€JØ�L‰L˜Ó€Eà”7—?‘?Ó"Ø—O‘O HÓ-ˆ	Ü—’˜yÓ4ˆà ¤y×'EÑ'EÐFˆ
Ø�ˆä×&Ò&ØØ
Ø
ØØØØó€Gð 
�‰Ó	€BØ×Ñ ¨¸ÐÒ<r   c                óî  • UR                  S5        U R                  R                  5        Vs/ s H  oUR                  (       d  M  UPM     nnUR	                  S S9  U GHŒ  nU(       d  UR
                  (       a  M  U(       d  UR                  (       a  M8  U(       d  UR                  (       a  MR  UR                  U 5      R                  5       nUR                  5         [        U5      n	UR                  n
UR                  U	S-
  5      nUR                  nSnSnUS   [        R                   :X  a  SnO=US   [        R"                  :X  a  S	nUS   nOUS   [        R$                  :X  a  S
nUS   nUR'                  SSU	5        UR'                  SSU5        UR'                  SSU
(       a  SOS5        UR'                  SSU5        UR'                  SSU5        UR                  S5        GM�     gs  snf )zKFormat revlog statistics for debugging purposes

fm: the output formatter.
s,   rev-count   data-size inl type      target 
c                ó2   • U R                   U R                  4$ r   )Úrevlog_typeÚ	target_id)Úes    r   r³   Ú$debug_revlog_stats.<locals>.<lambda>¦  s   €  q§}¡}°a·k±kÑ&Br   )Úkeyr   s   unknownr   r   s	   changelogs   manifests   files   revlog_rev_countó   %9ds   revlog_data_sizes   %12ds   revlog_inlines    %-3ss   yess   nos   revlog_types    %-9ss   revlog_targets    %sr€   N)r…   ÚstoreÚwalkÚ	is_revlogÚsortÚis_changelogÚis_manifestlogÚ
is_filelogÚget_revlog_instanceÚ
get_revlogr‡   r   Ú_inlineÚ_get_data_offsetÚtargetr	   ÚKIND_CHANGELOGÚKIND_MANIFESTLOGÚKIND_FILELOGrˆ   )r‹   r‘   Ú	changelogÚmanifestÚfilelogsrE  Úrevlog_entriesr0   ÚrlogÚnb_revÚinlineÚ	data_sizerT  rC  Úrevlog_targets                  r   Údebug_revlog_statsra  œ  s˜  € ð ‡H�HÐ=Ô>à!%§¡§¡Ô!2ÓBÒ!2˜A·kµk—aÑ!2€NÐBØ×ÑÑBÐÑCäˆÞ˜U×/×/ÙÞ˜e×2×2ÙÞ˜e×.×.ÙØ×(Ñ(¨Ó.×9Ñ9Ó;ˆØ
�‰ŒÜ�T“ˆØ—‘ˆØ×)Ñ)¨&°1©*Ó5ˆ	à—‘ˆØ ˆØˆØ�!‰9œ	×0Ñ0Ó0Ø&‰KØ�A‰Yœ)×4Ñ4Ó4Ø%ˆKØ" 1™I‰MØ�A‰Yœ)×0Ñ0Ó0Ø!ˆKØ" 1™IˆMà
�‰Ð$ f¨fÔ5Ø
�‰Ð$ g¨yÔ9à
�‰Ð! 8¶v©VÀ5ÔIØ
�‰� ¨;Ô7Ø
�‰Ð! 6¨=Ô9à
�‰��òA  ùò Cs   ®G2ÁG2c                  ó$   • \ rS rSrS rSS jrSrg)ÚDeltaChainAuditoriË  c                ó¾   • Xl         U R                   R                  U l        UR                  R                  U l        0 U l        [        U R                  5      U l        g r   )	rã   r:   Ú_indexÚdelta_configÚgeneral_deltaÚ_generaldeltaÚ_chain_size_cacher   Ú_total_revs)r   r�   s     r   r   ÚDeltaChainAuditor.__init__Ì  sE   € ØŒØ—l‘l×(Ñ(ˆŒØ#×0Ñ0×>Ñ>ˆÔØ!#ˆÔä˜tŸ{™{Ó+ˆÕr   c                óê  • U R                   U   nU[        R                     nU[        R                     nU[        R                     nU[        R
                     n	U[        R                     n
U	nU	[        R                  :w  a›  X�R                  :  aŒ  U R                   U	   nU[        R                     S:X  af  U[        R                     nXÛ:X  d#  U[        R                  :X  d  XÐR                  :¼  a  O*UnU R                   U   nU[        R                     S:X  a  Mf  U
nU
[        R                  :w  a›  X R                  :  aŒ  U R                   U
   nU[        R                     S:X  af  U[        R                     nXÞ:X  d#  U[        R                  :X  d  XÐR                  :¼  a  O*UnU R                   U   nU[        R                     S:X  a  Mf  U R                  (       aY  X‰:X  a  SnO[XŠ:X  a  SnOSX�:X  a  SnOKX‹:X  a  SnOCXŽ:X  a  SnO;U R                  R                  U5      (       a  SnOX�S-
  :X  a  S	nOS
nO
X�:X  a  SnOS	nU R                  R                  U5      S   nU	U
UUUUS.nU(       d  U(       d  U(       ar  Sn[        U5       HM  nU R                  R!                  U5      nUb  UU-  n  O)U R                   U   nUU[        R                     -  nMO     UU R                  U'   UUS'   U$ )Nr   ó   p1ó   p2s   bases   skip1s   skip2s   snapr   s   prevs   other)r¬   r­   Úcompressed_sizeÚuncompressed_sizeÚ	deltatypeÚchainÚ
chain_size)re  r	   rl   rX   r[   rI   rR   r�   rÜ   rj  rh  rã   rß   Ú_deltachainÚreversedri  Úget)r   r;   Ú	size_infoÚ	dist_infoÚsparse_inforE  ÚcompsizeÚ
uncompsizer!  r¬   r­   Úp1_baseÚe1Únew_baseÚp2_baseÚe2rq  rr  Údatars  Úiter_revÚcacheds                         r   r>  ÚDeltaChainAuditor.revinfoÔ  sÄ  € Ø�K‰K˜ÑˆØ”Y×;Ñ;Ñ<ˆØ”y×?Ñ?Ñ@ˆ
à”×+Ñ+Ñ,ˆØŒy×'Ñ'Ñ(ˆØŒy×'Ñ'Ñ(ˆð ˆØ”—‘Ó  R×*:Ñ*:Ó%:Ø—‘˜R‘ˆBØ”Y×;Ñ;Ñ<ÀÓAØœi×8Ñ8Ñ9�àÓ'Ø¤7§?¡?Ó2Ø×#3Ñ#3Ó3àØ"�Ø—[‘[ Ñ)�ð ”Y×;Ñ;Ñ<ÀÕAð ˆØ”—‘Ó  R×*:Ñ*:Ó%:Ø—‘˜R‘ˆBØ”Y×;Ñ;Ñ<ÀÓAØœi×8Ñ8Ñ9�àÓ'Ø¤7§?¡?Ó2Ø×#3Ñ#3Ó3àØ"�Ø—[‘[ Ñ)�ð ”Y×;Ñ;Ñ<ÀÕAð ××Ø‹zØ!‘	Ø“Ø!‘	Ø“Ø#‘	Ø“Ø$‘	Ø“Ø$‘	Ø—‘×(Ñ(¨×-Ñ-Ø#‘	Ø˜q™“Ø#‘	à$‘	à‹{Ø#‘	à#�	à—‘×(Ñ(¨Ó-¨aÑ0ˆð ØØ'Ø!+Ø"Øñ
ˆö ž	¦[ØˆJÜ$ UžO�Ø×/Ñ/×3Ñ3°HÓ=�ØÑ%Ø &Ñ(�JÙØ—K‘K Ñ)�Ø˜a¤	× FÑ FÑGÑG’
ñ ,ð +5ˆD×"Ñ" 3Ñ'Ø!+ˆD�Ñàˆr   )ri  rh  re  rã   rj  N)TTT)r$   r%   r&   r'   r   r>  r)   r*   r   r   rc  rc  Ë  s   † ò,÷Yr   rc  c              #  óž  ^$#   • [        U 5      nU nUR                  nUR                  nU R                  R                  n	Sn
U(       a  U
S-  n
U(       a  U
S-  n
U	(       a  U(       a  U
S-  n
U
S-  n
U
v •  Uc  [        U5      nO [        U5      m$[        U$4S jU 5       5      n0 nU GH  nUR                  UUUUS9nUS   nUS	   nUS
   nUS   nUR                  U[        U5      S-   5      nU(       a   U" U5      nU" U5      nUU-   U-
  nUUS   -
  n US   nU(       a%  US   nUS:w  a  [        U5      [        U5      -  nOUnU(       a   WS:w  a  [        W5      [        U5      -  nOWnSSSU4SSSUS   4SSSUS   4SSSU4SSS[        U5      4SSSU4SSS US    4/nU(       a%  UR                  S!S"S#U4S$S"S%U4S&S"S'W4S(S)S*W4/5        U(       a   UR                  S+S,S-W4S.S,S/W4S0S1S2W4/5        U	(       a¯  U(       a¨  US   nSnSnSn[        R                  " UU5       H<  n US-  nU" U S   5      U" U S   5      -   n!U!U" U S   5      -
  n"UU"-  nUU":  d  M:  U"nM>     U(       a  [        U5      [        U5      -  n#OSn#UR                  S3S"S4U4S5S"S6U4S7S)S8U#4S9SS:U4/5        Uv •  GM     g ! [         a    Sn GN¬f = f7f);Ns9       rev      p1      p2  chain# chainlen     prev   deltas+          size    rawsize  chainsize     ratios      lindist extradist extraratios)      readsize largestblk rddensity srchunksr€   c              3  ó6   >#   • U  H  oT:  d  M
  Uv •  M     g 7fr   r*   )Ú.0r;   Úrevlog_sizes     €r   Ú	<genexpr>Ú$debug_delta_chain.<locals>.<genexpr>S  s   øé € ÐCª #°{Ñ1BŸ#™#ªùs   ƒ	�	)rw  rx  ry  ro  rp  rr  r   r   rs  éþÿÿÿr™   r4   s   %7dr;   rm  r¬   rn  r­   s   chainidÚchainids   chainlens   %8drŸ   s   prevrevÚprevrevs	   deltatypes   %7srq  s   compsizes   %10drz  s
   uncompsizer{  s	   chainsizeÚ	chainsizes
   chainratios   %9.5fÚ
chainratios   lindistrH  Úlindists	   extradistÚ	extradists
   extraratios   %10.5fÚ
extraratios   readsizeÚreadsizes   largestblockÚlargestblocks   readdensityÚreaddensitys   srchunksÚsrchunks)rc  r¤   rÝ   Údata_configÚwith_sparse_readÚiterr   rç   r>  Ú
setdefaultÚ
IndexErrorrÈ   Úextendr-  Ú
slicechunk)%r�   Úrevsrw  rx  ry  Úauditorr¥   r¤   rÝ   ÚwithsparsereadÚheaderÚall_revsr  r;   ÚinfoÚcompÚuncomprr  rž   rŒ  Ú	basestartÚrevstartÚ
lineardistr‘  r�  rŽ  r�  r’  r0   r“  r”  r–  Ú	revschunkÚblkendÚblksizer•  rˆ  s%                                       @r   Údebug_delta_chainr¬  0  s›  øé € ô   Ó'€GØ€AØ�G‰G€EØ�X‰X€FØ×'Ñ'×8Ñ8€Nð	ð ö ØÐLÑLˆÞØÐ<Ñ<ˆÞž+ØÐJÑJˆØ
ˆe�O€FØ
‚Là�|Ü˜“7‰ä˜!“fˆÜÔC©ÓCÓCˆà€JÜˆØ�‰ØØØØ#ð	 ð 
ˆð Ð%Ñ&ˆØÐ)Ñ*ˆØ�W‘ˆØ˜!‘Hˆ	Ø×'Ñ'¨	´3°z³?ÀQÑ3FÓGˆÞÙ˜iÓ(ˆIÙ˜S“zˆHØ! D™¨9Ñ4ˆJØ" T¨,Ñ%7Ñ7ˆIð	Ø˜B‘iˆGö Ø˜\Ñ*ˆIØ˜‹{Ü" 9Ó-´°f³Ñ=‘
à&�
æØ˜A‹~Ü" 9Ó-´°iÓ0@Ñ@‘
à&�
ð �V˜U CÐ(Ø�F˜D $ t¡*Ð-Ø�F˜D $ t¡*Ð-Ø˜ ¨GÐ4Ø˜& *¬c°%«jÐ9Ø˜ ¨GÐ4Ø˜6 ;°°[Ñ0AÐBð
ˆö Ø�L‰Là  '¨:°tÐ<Ø" G¨\¸6ÐBØ! 7¨K¸ÐCØ" H¨l¸JÐGð	ôö Ø�L‰Là ¨°JÐ?Ø! 6¨;¸	ÐBØ" I¨|¸ZÐHðôö žkØ˜\Ñ*ˆIØˆHØˆLØˆHä&×1Ò1°!°UÖ;�	Ø˜A‘�Ù˜y¨™}Ó-±°yÀ±}Ó0EÑE�Ø ¡5¨°1©Ó#6Ñ6�à˜GÑ#�Ø 'Õ)Ø#*’Lñ <ö Ü# IÓ.´°x³Ñ@‘à�Ø�L‰Là  '¨:°xÐ@Ø$ g¨~¸|ÐLØ# X¨}¸kÐJØ  &¨*°hÐ?ð	ôð �òs øô& ó 	Ø‹Gð	üs2   ƒDKÄJ:ÄEKÉ$AKÊ:K
ËKË	K
Ë
Kr#   )rX  ÚboolrY  r­  rZ  r­  )NTTT)*Ú
__future__r   rØ   rè   Ú r   r   r�   r   r	   r
   r-  r-   Úobjectr   r   r3   r=   r@   rC   rG   rJ   rO   rS   rU   rY   r\   rb   rf   ri   rm   rv   ry   r|   r—   r¯   r(  rÜ   r@  ra  rc  r¬  r*   r   r   Ú<module>r±     s‹  ðõ #ã Û ÷ñ ÷ð
 Ð á‹H€	÷ñ ô4ñ( ˆf˜1Ññó ðñ ˆg˜A tÑ,ñ/ó -ð/ñ ˆj˜qÑ!ñ3ó "ð3ñ ˆi˜iÑ(ñ1ó )ð1ñ ˆi˜a¨Ñ.ñ3ó /ð3ñ ˆl Ñ+ñ3ó ,ð3ñ ˆi˜a¨Ñ.ñ3ó /ð3ñ ˆl Ñ+ñ3ó ,ð3ñ ˆl ¨TÑ2ñCó 3ðCñ ˆm !¨TÑ2ñ5ó 3ð5ñ ˆh˜Q¨Ñ-ñó .ðñ ˆl ¨DÑ1ñ@ó 2ð@ñ ˆn 2¨tÑ4ñó 5ðñ ˆm "¨dÑ3ñAó 4ðAñ ˆo A¨tÑ4ñ	#ó 5ð	#ñ Ð  r°4Ñ8ñ:ó 9ð:ñ Ð R°Ñ6ñEó 7ðEò1òh.
òb\ð~
 07¯©ô $=ðN,Øð,Ø)-ð,Ø9=ô,÷^bñ bðN 
ØØØõr   