
    q&f/c                     T   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ej6                  ZddlmZ ej<                  Zej>                  Z ej@                  d	      Z! G d
 dejD                        Z# G d dejH                        Z%y)    N)_)open)binhexsha1nodeconstants)	bookmarkscontexterrorexchangehglock
logcmdutilmerge
mergestatephasesutil)dateutil   )commons   \b[0-9a-f]{12,40}\bc                   f    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zy)mercurial_sinkc                 l   t         j                  j                  | |||       |j                  dd      | _        |j                  dd      | _        |j                  dd      | _        d | _        t        j                  j                  |      ryt        t        j                  |            dkD  rX	 t        j                  | j                   |      | _        | j"                  j%                         st'        t)        d      |z        n	 |j3                  t)        d      |z         t        j                  | j                   |d	      | _        | j"                  j%                         st'        t)        d      |z        | j4                  j7                  |       d | _        d | _        d| _        i | _        y # t*        j,                  $ r-}|j/                          t'        |j0                  d         d }~ww xY w# t*        j,                  $ r( |j/                          t'        t)        d
      |z        w xY w)N   converts   hg.usebranchnamess   hg.clonebranchess   hg.tagsbranchr   &   %s is not a local Mercurial repositorys'   initializing destination %s repository
Tcreates)   could not create hg repository %s as sinkF) r   converter_sink__init__
configboolbranchnamesclonebranchesconfig
tagsbranch
lastbranchospathisdirlenlistdirr   
repositoryuirepolocalNoRepor   r
   	RepoError	tracebackargsstatuscreatedappendr   wlockfilemapmode
subrevmaps)selfr+   repotyper&   errs        2/usr/lib/python3/dist-packages/hgext/convert/hg.pyr   zmercurial_sink.__init__9   s   &&tR4@==5IJ]]:7JK))J0@A77==3rzz$'7#81#<*MM$''48	yy( CDtK  )		!GH4OPMM$''4E	yy( CDtK  ##D) 	
 ) ?? *SXXa[))* ?? BCdJ s&   0AF5 BG8 5G5(G00G58;H3c                     | j                   j                  d       | j                  j                         | _        | j                  j	                         | _        y )Ns"   run hg sink pre-conversion action
)r+   debugr,   r5   r   r8   s    r;   beforezmercurial_sink.before\   s7    <=YY__&
IINN$	    c                     | j                   j                  d       | j                  r| j                  j                          | j                  r| j                  j                          y y )Ns#   run hg sink post-conversion action
)r+   r=   r   releaser5   r>   s    r;   afterzmercurial_sink.aftera   sF    =>99II::JJ  r@   c                 L    | j                   j                  j                  d      S )N   shamapr,   vfsjoinr>   s    r;   
revmapfilezmercurial_sink.revmapfileh   s    yy}}!!),,r@   c                 L    | j                   j                  j                  d      S )Ns	   authormaprF   r>   s    r;   
authorfilezmercurial_sink.authorfilek   s    yy}}!!,//r@   c                    | j                   sy || j                  k7  }|| _        |sd}|D cg c]  }|d   |d   xr |d   xs df }}t        j                  j	                  | j                  |      }|rF| j                          	 t        j                  | j                  |      | _	        | j                          i }|D ]!  }	 | j                  j                  |d          # |r| j                          t        |j!                               D ]  \  }}t        j                  j	                  | j                  |      }	t        j"                  | j                  i |	      }
| j                  j%                  t'        d      ||fz         t)        j*                  | j                  |
|D cg c]  }|
j                  |       c}        | j                          y y c c}w # t        $ r+ t        j                  | j                  |d      | _	        Y hw xY w# t        $ r+ |j                  |d   g       j                  |d          Y w xY wc c}w )Ns   defaultr   r   Tr   s   pulling from %s into %s
)heads)r!   r$   r%   r&   rH   rC   r   r*   r+   r,   	Exceptionr?   lookup
setdefaultr4   sorteditemspeernoter   r   pull)r8   branch	pbranches	setbranchb
branchpathmissingspbranchrM   pbranchpathprepohs               r;   rX   zmercurial_sink.setbranchn   s   !!doo-	 FBKLQadAaDMQqT7Z8L	LWW\\$))V4
JJLLMM$'':>	 KKM  	;A;		  1&	; JJL"()9":  ggll499g>[923w6GG IIue,LU\\!_,L KKM ) M  LMM$'':dK	L  ;##AaD"-44QqT:; -Ms/   G%G! H(I!0HH0IIc                 D   t               }|j                         D ]  }|j                  dd      }t        |      dk7  r<| j                  j                  t        d      |z         |j                  d|z         _|j                  |j                  |d               }|sX|d   t        j                  k(  r|d   }n<| j                  j                  t        d      |z         |j                  d|z         |j                  d||d   fz          |j                         S )	N    r      s   invalid tag entry: "%s"
s   %s
r   s   missing tag entry: "%s"
   %s %s
)stringio
splitlinessplitr(   r+   warnr   writeget	lookuprevr   nullhexgetvalue)r8   sourcerevmapdatafplinesrevids           r;   _rewritetagszmercurial_sink._rewritetags   s    ZOO% 	1D

4#A1v{Q;<tCD4(JJv//!56EQ4,444aDE GGLL#?!@4!GHHHWt^,HHZ5!A$-/0	1  {{}r@   c                 d   t               }|j                         D ]  }|j                  dd      }t        |      dk7  r%|d   }|d   }|t        j
                  k7  r+| j                  j                  |      }|t        | j                  | j                  j                  |d            }|| j                  |<   t        d      }	t        |      dk(  ri| j                  j                  j                  |d      }
| j                  j                  j                  |
      r| j                  j!                  |	|z         |j                  |      }|s8t        |      dkD  r,| j                  j!                  t        d      ||fz         n|}|j#                  d	||fz          |j%                         S )
Nra   r   rb   r   s
   .hg/shamaps/   no ".hgsubstate" updates will be made for "%s"
s   .hgs!   %s is missing from %s/.hg/shamap
rc   )rd   re   rf   r(   r   rk   r7   ri   mapfiler+   r,   wjoinr   wvfsreljoinexistsrg   rh   rl   )r8   rm   ro   rp   rq   rr   rs   subpathrn   msgsubnewids               r;   _rewritesubstatezmercurial_sink._rewritesubstate   su   ZOO% $	4D

4#A1v{aDEdG)111,,W5>$-!HF 06DOOG, OPC6{a'"iinn44WfE99>>005 GGLLw7

5)6{QCD$g./
 "EHHZ5'"223I$	4L {{}r@   c           
   #   v  K   |j                  |      g}t        j                  | j                  |||dddd      }|j	                         D ]i  \  }\  }}}	|j                  |      r|t        j                  v r$t        j                  t        d      |||fz        |t        j                  k(  rf| k yw)aR  Calculates the files from p2 that we need to pull in when merging p1
        and p2, given that the merge is coming from the given source.

        This prevents us from losing files that only exist in the target p2 and
        that don't come from the source repo (like if you're merging multiple
        repositories together).
        TF)branchmergeforceacceptremotefollowcopiesse   unable to convert merge commit since target parents do not merge cleanly (file %s, parents %s and %s)N)ancestormergemodcalculateupdatesr,   filemaptargetfilebelongstosourcer   CONVERT_MERGE_ACTIONSr
   Abortr   ACTION_KEEP)
r8   rm   p1ctxp2ctxancmresultfileactioninfor|   s
             r;   _calculatemergedfilesz$mercurial_sink._calculatemergedfiles   s      ~~e$% ++II	
 *1): 	%D%64//5  999kk2
 UE*+  :111 
-	s   B7B9c	           
      j   $% t              $% fd}	g }
|D ]  }||
vs|
j                  |        |
}t        |      } j                  rD|dk(  r?|d   }t	        |      } j
                  j                  j                  |      j                  }t        |      dk  r%|j                   j
                  j                         t        |      dk  r%|j                   j
                  j                         |j                  d      }|j                  }t        j                  t        |      }|D ]E  }j                  |      }j!                  |      }|(|j#                  ||d t        |             }G |j$                  j'                         } j
                  j(                  j+                  dd      }|r||d<   dD ]O  }|j!                  |      }||d	k(  rt-        |      }j!                  |      }|;|d	k(  rt	        |      }|||<   Q  j.                  r|j0                  r|j0                  |d
<   |j2                  r|j4                  r|j2                  |d<   |r`|}|j                  d      } j
                  |   }d $| j
                  j                  k7  r j
                  |   $t7              }|r<|j9                   j
                  |          |j9                   j
                  |          $rEt7        |      % j;                  |$      D ]$  }%j=                  |       |j=                  |       & t?        j@                   j
                  ||f|||	|jB                  |jD                  |      } j
                  j(                  jG                  ddtH        jJ                  |jL                     d        j
                  jO                  d      5 } j
                  j(                  j+                  dd      r|jP                  } nd } t-         j
                  jS                  ||             }|j2                  |k7  ro j
                  |   }|jM                         tH        jT                  k  r?tI        jV                   j
                  |tH        jT                  |j3                         g       d d d        d}}|r` j                  r|dk(  rɉ j
                  jX                  j[                  d      }! j
                  j                  j]                  t	        |            d   }"d|j$                  v }#|#sc|!j_                  |!ja                  |"            sB j(                  jc                  te        d              j
                  jg                  d       S |S # 1 sw Y   xY w)Nc                    r,|	v r(|vr$j                   j                  d|z         	 |   S 	 |   }j                  ||      \  }}|y |dk(  rj                  
|      }|dk(  rj                  |      }t        j                  j                  |||d|v d|v j                  |            S # t        j                  $ r Y y w xY w# t        $ r Y y w xY w)Ns   reusing %s from p2
   .hgtagss   .hgsubstate   l   x)r+   r=   r
   ManifestLookupErrorKeyErrorgetfilert   r   r	   
memfilectxr,   ri   )r,   memctxfvro   modecopiesfilesr   p2filesrn   r8   rm   s         r;   
getfilectxz,mercurial_sink.putcommit.<locals>.getfilectx  s   g!6/59:  8O
!H  1-JD$|J((>N",,VT:%%		

1  00       s"   B5 C 5C
C	CCr   r   rb   r   s   hg.sourcenames   convert_source)s   source   transplant_sources   rebase_sources   intermediate-sourcer      branchs   convert_revisions   phasess
   new-commits   hg.preserve-hash)origctxs   (octopus merge fixup)
r@   s   closes   filtering out empty revision
T)r   )4dictr4   r(   r6   r   r,   	changelogchangelogrevisionmanifestnullidpopdescrefindallsha1rerj   ri   replaceextracopyr+   r"   r   r    rV   revsaverevsetupdater   addr	   r   authordate	setconfigr   
phasenamesphasetransactionctx	commitctxdraftregisternewmanifestlog
getstoragereadcmprevisionr2   r   rollback)&r8   r   r   parentscommitrm   rn   fullcleanp2r   plpnparentsparentp1_nodem1nodep2textsha1ssha1oldrevnewrevr   
sourcenamelabelnodep1r   filesetr   r   trr   manmnodeclosedr   r   s&   ```  ``                             @@r;   	putcommitzmercurial_sink.putcommit  s    U	 	<  	A{		!	 w<AQZF&kGYY((::7CLLFw<!NN499++,w<!NN499++,[[^{{

64( 	?D%%d+FZZ'F!||D&3t9*=>		? !!#YY\\((5EF
'1E#$
 	&E 99U#D| ,,4yZZ%F!00 [F%e)	&, %}}E)::&..)/E%&BQBIIbMEETYY%%%		"%jGtyy}-tyy}-g, 66vueL &DKK%KK%& ..		R	C IILL""!!&,,/	 &&z2 b99<<&&z3FG$jjG"G499..sG.DE
 ::%))D/Cyy{V\\1** IIr6<<#'')" .DBq t A))''2237CII'',,SW5a8E-F#''&#,,u2E"Fq!BCD		""".	9 s   #CV))V2c           
      f   | j                   j                  | j                  d      }|xs | j                   j                  }t	               }| j                   j                         j                         D ]e  \  }}|D ][  }d| j                   |   v s|j                  t	        | j                   |   d   j                         j                  d                   ] g t        t        |            }t        |D cg c]  }d||   |fz   c}      }||k(  ryt	               }	t	               }
|D ]E  }|j                         j                  dd      }t        |      dk7  r2|	j                  |d          G |D ][  }|j                         j                  dd      }t        |      dk7  r2|d   |	vs:|
j                  |d   j                                ] |
syd	j!                  |      fd
}| j"                  j%                  t'        d             dt)        t+        j,                  t+        j.                                     z  }d| j                  i}t1        j2                  | j                   |d fddg|d||      }| j                   j5                  |      }t7        |      t7        |      fS c c}w )NT)ignoremissingr   rc   NNra   r   rb   r@   c           	      :    t        j                  | ||ddd       S )NF)r	   r   )r,   r   r   ro   s      r;   r   z*mercurial_sink.puttags.<locals>.getfilectx  s     %%dFAtUE4PPr@   s   updating tags
s   %d 0r   s   update tagss   convert-repo)r,   	branchtipr#   r   r   	branchmaprR   r   ro   re   rQ   liststriprf   r(   r   rH   r+   r2   r   inttimemktimegmtimer	   r   r   r   )r8   tags	tagparentoldlinesrV   rM   r_   tagnewlinesoldtagsnewtagsrq   rr   r   r   r   r   r   ro   s                     @r;   puttagszmercurial_sink.puttags  se   II''t'L	1!1!1	5!YY00288: 	MFE 1-OODIIaL499;FFtLM	 $x.)dKsJ$s)S)99KLx %% 	D

""4+A1v{KK!		
  	*D

""4+A1v{t7"AaDJJL)	* xx!	Q 	q+,-T[[788DOO,nnIIL	
 yy""3'4y#i.((S Ls   :J.c                     || _         y N)r6   )r8   actives     r;   setfilemapmodezmercurial_sink.setfilemapmode  s
    !r@   c                 @   t        |      sy d x}x}}	 | j                  j                         }| j                  j                         }| j                  j	                  d      }| j
                  j                  t        d             | j                  j                  }|D cg c]  }|t        ||         f }}|j                  | j                  ||       |j                          t        j                  |||       y c c}w # t        j                  |||       w xY w)Ns   bookmarks   updating bookmarks
)r(   r,   r5   r   r   r+   r2   r   
_bookmarksr   applychangescloselockmodrB   )r8   updatedbookmarkr5   r   r   	destmarksbookmarkchangess           r;   putbookmarkszmercurial_sink.putbookmarks  s    ?#   r	-IIOO%E99>>#D&&{3BGGNN1456		,,I !0 3x89:G  ""499b':HHJOOD%, OOD%,s   BD !C?8/D ?D Dc                 :    || j                   v xs | j                  S r   )r,   r!   r8   r   s     r;   hascommitfrommapzmercurial_sink.hascommitfrommap  s    dii54#5#55r@   c                     || j                   vr-| j                  r!t        j                  t	        d      |z        || j                   v S )Nse   revision %s not found in destination repository (lookups with clonebranches=true are not implemented))r,   r!   r
   r   r   r  s     r;   hascommitforsplicemapz$mercurial_sink.hascommitforsplicemap  sO    diiD$6$6++,
   diir@   N)__name__
__module____qualname__r   r?   rC   rI   rK   rX   rt   r   r   r   r   r   r  r	  r   r@   r;   r   r   8   sT    !F%
!-0'R((T,\`D6)p"-&6
 r@   r   c                       e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZy)mercurial_sourceNc                    t         j                  j                  | ||||       |j                  dd      | _        t               | _        |j                  dd      | _        	 t        j                  | j                  |      | _        | j                  j                         st        j                  	 d | _        d | _        d| _        d | _        |j-                  dd      }|j-                  dd      }||	 | j                  j/                  |      }| j                  j2                  j5                  |      }|d	i}| j                  j2                  j7                  |g      D ]*  }	d	|| j                  j2                  j9                  |	      <   , |j:                  | _        nt>        j@                  | _        |r/|D 	cg c]  }	| j                  j/                  |	       c}	| _!        y | j                  jE                         | _!        y |s|t        j0                  t#        d
            t               }
t               }tG        jH                  | j                  |g      D ]V  }	| j                  |	   }|
jK                  |j9                                |jM                  d |jO                         D               X |
j:                  | _        |
|z
  | _!        y # t        j                  $ r( |j                          t!        t#        d      |z        w xY w# t        j                  $ r" t        j0                  t#        d      |z        w xY wc c}	w )Nr   s   hg.ignoreerrorss
   hg.saverevr   r   s   hg.startrevs   hg.revss    %s is not a valid start revisionr   s4   hg.revs cannot be combined with hg.startrev or --revc              3   <   K   | ]  }|j                           y wr   )r   ).0r   s     r;   	<genexpr>z,mercurial_source.__init__.<locals>.<genexpr>:  s     ?Aqvvx?s   )(r   converter_sourcer   r   ignoreerrorsr   ignoredr   r   r*   r+   r,   r-   r
   r/   r0   r.   r   lastrevlastctx_changescache	convertfpr"   rO   r   r   r   descendantsr   __contains__keepr   always_headsrM   r   revranger   r   r   )r8   r+   r9   r&   revs	startnodehgrevsstartrevchildrenrnodesr   r   s                r;   r   zmercurial_source.__init__  s   ((r8T4HMM*6HIu}}Z?	Ndggt4DI 99??$oo% %
 'IIj.9	:z2>$ $		 0 0 ;I
  99..229=%q>,,88(D >A<=HTYY0055a89>$11	 KK	<@Aqtyy//2A"iioo/y,kk0  EEeG((VH= @iil		#((*%???@ **DI'/DKY  	NLLNDELMM	N  ++=>J  Bs   "AK 8L <"M	;L5Mc                 n    | j                   |k7  r| j                  |   | _        || _         | j                  S r   )r  r,   r  r  s     r;   
_changectxzmercurial_source._changectx>  s.    <<399S>DLDL||r@   c                     |j                         D cg c]'  }|s| j                  |j                               s&|) c}S c c}w r   )r   r  r   )r8   r   r   s      r;   _parentszmercurial_source._parentsD  s/    ;;=FaA$))AFFH2EFFFs   AAAc                 v    | j                   D cg c]  }| j                  |      st        |      ! c}S c c}w r   )r!  r  r   )r8   r_   s     r;   getheadszmercurial_source.getheadsG  s(     $<1tyy|A<<<s   66c                     	 | j                  |      |   }|j                         |j                         fS # t        j                  $ r Y yw xY w)Nr   )r+  ro   flagsr
   LookupError)r8   namer   fctxs       r;   r   zmercurial_source.getfileJ  sI    	??3'-D99;

,,   		s   36 AAc                    g g }}|j                   }|j                   }|j                         j                  |j                               }|j                         D ]!  \  }\  \  }	}
\  }}|	 ||        ||       # ||fS r   )r4   r   diffrR   )r8   ctx1ctx2mar(  maappendrappenddr   node1flag1node2flag2s                r;   _changedfileszmercurial_source._changedfilesQ  s~    BA99((MMO  134779 	/A/}
		
 1ur@   c                    | j                  |      }| j                  |      }|s|s|j                         x}}|rF| j                  d   |k(  r| j                  d   \  }}n| j	                  |d   |      \  }}|s||z   }|}| j                  ||      }	t               }
t        |      dk(  r^|d   j                         j                  |j                         d      }|j                         D ]  \  }}|	|
j                  |        D cg c]  }|| j                  vs||f }}|j                          ||	|
fS c c}w )Nr   r   rb   T)clean)r+  r-  r   r  rA  
_getcopiesr   r(   r6  rR   r   r  sort)r8   r   r   r   r   r   	copyfilesr9  r(  r   r   r<  r   valuer  s                  r;   
getchangeszmercurial_source.getchanges]  sB   ooc"--$w #.EI!!!$+ **1-A**71:s;AQI gy9%w<1
##%**3<<>*FAGGI #5=KKN# &+Dat||.CAs8DD'' Es   D?"D?c                    i }|D ]Z  }|| j                   v r	 |j                  |      j                         | j                   v rAt        fd|D              sV||<   \ |S # t        $ r Y jt
        j                  $ rY}| j                  s | j                   j                  |       | j                  j                  t        d      |z         Y d }~d }~ww xY w)Nc              3   &   K   | ]  }|v  
 y wr   r  )r  r   
copysources     r;   r  z.mercurial_source._getcopies.<locals>.<genexpr>  s     <q:?<s   s   ignoring: %s
)r  filectxrK  any	TypeErrorr
   r2  r  r   r+   rg   r   )r8   r   r   r   r   r3  erK  s          @r;   rD  zmercurial_source._getcopiesz  s     	7Dt||#7 [[.99;
-<G<<)t	7$   $$ 7((  &Q01A566	7s*   -A%A%A%%	C0CACCc                 @   | j                  |      }| j                  |      }|D cg c]  }|j                          }}|j                         D cg c]  }|s||vs|j                          }}|}t	        j
                  |j                         t        j                  |j                         d      |j                         ||||j                         |j                         |j                         | j                  |j                         |      S c c}w c c}w )Ns   %Y-%m-%d %H:%M:%S %1%2)r   r   r   r   r   
optparentsrV   r   sortkeyr   r   r   )r+  r-  r   r   r   r   userr   datestrr   descriptionrV   r   r   r   r   )r8   r   r   r-  r   r   rQ  crevs           r;   	getcommitzmercurial_source.getcommit  s    ooc"==%$,-q1557--'*{{}P!ax>OaeegP
P}}88:!!#((*.GH"!::<))+GGILL))+
 	
	 .Ps   DDDDc                 ,    t        | j                        S r   )r(   r,   r>   s    r;   
numcommitszmercurial_source.numcommits  s    499~r@   c                 
   | j                   j                         D cg c]%  }| j                   j                  |d         dk(  r|' }}|D ci c]#  \  }}| j                  |      s|t	        |      % c}}S c c}w c c}}w )Nr   s   global)r,   tagslisttagtyper  r   )r8   tr   r3  r   s        r;   gettagszmercurial_source.gettags  s}     YY'')
yy  1&)3 
 

 37JJD$$))D/c$iJJ

 Ks   *A:A?(A?c           	      x   | j                  |      }| j                  |      }|s%|#d}|j                         j                         g }}n|xs d}| j	                  ||   |      \  }}||fD cg c]!  }|D cg c]  }|| j
                  vs| c}# c}}\  }}|dk(  r|||ff| _        ||z   S c c}w c c}}w )Nr   )r+  r-  r   keysrA  r  r  )	r8   r   ir   r   r9  r(  lr   s	            r;   getchangedfilesz mercurial_source.getchangedfiles  s    ooc"--$19ALLN'')2BQA&&wqz37EBCEq'JQQ8!4<<"7!8JA6"%AwDAv 9Js   /	B68B1B1B61B6c                    | j                   4t        | j                  j                  j	                  d      d      | _         | j                   j                  t        j                  d||fz               | j                   j                          y )NrE   s   abrc   )	r  r   r,   rG   rH   rh   r   tonativeeolflush)r8   r   destrevs      r;   	convertedzmercurial_source.converted  sc    >>!!$))--"4"4Y"?GDNT--jGS>.IJKr@   c                 :    | j                   j                  d       y )Ns$   run hg source pre-conversion action
r+   r=   r>   s    r;   r?   zmercurial_source.before  s    >?r@   c                 :    | j                   j                  d       y )Ns%   run hg source post-conversion action
rj  r>   s    r;   rC   zmercurial_source.after  s    ?@r@   c                      yNTr  r>   s    r;   hasnativeorderzmercurial_source.hasnativeorder      r@   c                      yrm  r  r>   s    r;   hasnativeclosezmercurial_source.hasnativeclose  ro  r@   c                     	 t        | j                  j                  |            S # t        j                  t        j
                  f$ r Y y w xY wr   )r   r,   rO   r
   r/   r2  r  s     r;   rj   zmercurial_source.lookuprev  sB    	tyy'',--!2!23 		s   #& #AAc                 @    t        j                  | j                        S r   )r   listbookmarksr,   r>   s    r;   getbookmarkszmercurial_source.getbookmarks  s    &&tyy11r@   c                 (    | j                  ||       y)z+Mercurial, revision string is a 40 byte hexN)checkhexformat)r8   revstrmapnames      r;   checkrevformatzmercurial_source.checkrevformat  s    FG,r@   r   )s	   splicemap)r  r  r  r   r+  r-  r/  r   rA  rH  rD  rW  rY  r^  rc  rh  r?   rC   rn  rq  rj   ru  rz  r  r@   r;   r  r    sk    7*rG=
(:,
,K @A2-r@   r  )&r%   r   r   mercurial.i18nr   mercurial.pycompatr   mercurial.noder   r   r   	mercurialr   r	   r
   r   r   r   r  r   r   r   r   r   r   mercurial.utilsr   rd    r   rv   r.   compiler   r   r   r  r  r  r@   r;   <module>r     s   ( 
 	   # 
    %== 
..		+	,I V** I X[-v.. [-r@   