^c ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z mZmZmZ m!Z!m"Z#m$Z$m%Z%ddl&m'Z'm(Z(m)Z)Gdd Z*d Z+d Z,d Z-d Z.dZ/dZ0dZ1dZ2dZ3dZ4dZ5GddZ6GddZ7dZ8dZ9dZ:dZ;dZd&d Z?d!Z@d"ZAd#ZBd$ZCd%ZDdS)'N)_)getattr)tracing)cmdutilcolorcommands demandimportencodingerror extensions fancyoptshelphghook localrepo profilingpycompatrcutil registrar requirementsscmutiluiutilvfs)procutil stringutilurlutilc*eZdZ ddZdZdS)requestNc ||_||_||_||_||_||_||_i|_|pg|_d|_ dSN) argsrrepofinfoutferrfmsg earlyoptions prereposetupscanonical_command) selfr#rr$r%r&r'r(r*s 4/usr/lib/python3/dist-packages/mercurial/dispatch.py__init__zrequest.__init__9s`     +0b"&c8d}|jj} |r{|\}}} ||i|nW#|tjd}|jd|jdYnxYw|{||dS#||wxYw)Nrserror in exit handlers: T)force)r _exithandlerspopsysexc_info warnnoi18n traceback)r,exchandlersfuncr#kwargss r-_runexithandlerszrequest._runexithandlersYs7(  2%-\\^^"dF2D$)&))))2{!lnnQ/G&&'CDDDG%%D%11111 2 s s B4BABBB)NNNNNNN)__name__ __module__ __qualname__r.r<r/r-r r 8sO      &&&&@r/r cd}tj|drC|J|jJ |jn#t$r}|}d}Yd}~nd}~wwxYwtj|dr|J|jJ |I|jt jkr4|jdtj |j z|jn#t$rd}YnwxYw|S)Nsfoutsferrs abort: %s ) r safehasattrr&flushIOErrorr'errnoEPIPEwriter strtolocalstrerror)rerrstatuses r- _flushstdiorNks/ F G$$~~~w"""  GMMOOOO   CFFFFFF  G$$ ~~~w""" 39 #;#; "X%8%F%FF GMMOOOO   FFF  Ms*A A AA>A$C## C21C2cL ttjd5ttjdd}dddn #1swxYwYt |}tn#t$rd}YnwxYwtj |dzdS)zrun the command in sys.argvzparse args into requestrNrB) initstdiorlogr rsysargvdispatch _silencestdioKeyboardInterruptr4exit)reqrLs r-runrYs  [2 3 3 0 0(*122.//C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0# HVc\s4"A;"A A;AA;A A;; B  B cXtjdtjjd}tjtjdrtjj|d<t jtjjtjj tjj fi|t_tj dtj jd}tjtj drtj j|d<t jtj jtj j tj j fi|t_ tj at jtj jtj j tj j dtj jt_ dSdS)N )newlineline_buffering write_through) r4stdoutr]rrCr^io TextIOWrapperbufferr errorsstderrstdin)r;s r-rQrQsV z!j7    CJ 8 8 ?&)j&>F? #% J sz2CJ4E  IO    z!j7    CJ 8 8 ?&)j&>F? #% J sz2CJ4E  IO    y$ I  I  I 93     r/ctjtjfD]P}| |#t$rYnwxYw |A#t$rYMwxYwdSr")r4r_rdrDrEclose)fps r-rUrUsz3:& :   HHJJJ     D   HHJJJJ    D s!4 AAA A'&A'c@dd|DS)N c3>K|]}tj|VdSr"r shellquote).0as r- z_formatargs..s-::X(++::::::r/)joinr#s r- _formatargsrss# 99::T::: : ::r/cd} t|}n #tj$r}|}d}Yd}~nd}~wwxYwt|j|}|r|s|}|S)zErun the command specified in req.args; returns an integer status codeNrB) _rundispatchr StdioErrorrNr)rXrKrLrMrets r-rTrTs} Cc""   cfc " "C 6 Ms1,1c B tjd5|jr|j}n |jr |jj}n tj} |js#t j|_|j t|j|j |jdr|j dddd|j r|j |j_ |jr|j|j_|jr|j|j_|jr|j|j_nO#t j$r=}||Yd}~ddddSd}~wwxYwt)|j }t+j}d} t/|pd}n#t j$rf}|jt3d |z|jr/|jt3d |jzd}~wt6$r} t9|t jrt3d }nt3d }|j|n #t j$rYnt<$rYnwxYwd}Yd}~nd}~wwxYwt+j|z }|j|jj rB|d z|jj!d<|jj ditEj#|jj!|dz}|jdd||||||j$ |%n #|pd}YnxYw|jn#t+j|z }|j|jj rB|d z|jj!d<|jj ditEj#|jj!|dz}|jdd||||||j$ |%n #|pd}YnxYw|jwxYw|cdddS#1swxYwYdS)Nzdispatch._rundispatch tracebackuion --tracebackrBrrs** ProgrammingError: %s s** (%s) skilled! s interrupted! iscommand_duration uiblockedui blocked ms rPs commandfinishs!%s exited %d after %0.2f seconds ) return_codedurationr+)r}r~)&rrRr'rrrduimodloadr)update_earlyparseoptsr# setconfigr%r&r(r AbortrHformatrsrtimer _runcatchProgrammingErrorrhintrV isinstanceSignalInterruptBrokenPipeErrorrDlogblockedtimes _blockedtimesr strkwargsr+r<) rXr'inst formattedargs starttimerwmsgrrs r-rurus\ , - -OO 8 #8DD V #6;DD?D 6 )   # #OCFCH$E$E F F F - M   e^LLLw % W x '!h x '!h x '!h {    JJt{{}} % % %2225OOOOOOOO0 $CH-- JLL / C..%ACC%    FLL7884? @ @ @y : Q|__ty8999     dE$9::/L//CC-..C S!!!!(   "    CCCCCC z||i/H FLLNNNv% > )K FJJ 5'!"%"7     $$&&&& iR FLLNNNN3z||i/H FLLNNNv% > )K FJJ 5'!"%"7     $$&&&& iR FLLNNNN_OOOOOOOOOOOOOOOOOOs0RC&D-,R-E9<'E4#R4E99,R&F97N9J7A!H)) J77AJ  J2 J(J2 J(%J2'J((J2-N2J77N:B)R$M98R9N?RB*R QRQ& $RRRRc*tjd5d}j dD]/}tt|d}|rt j||0n#t $rYnwxYwfd}t |cdddS#1swxYwYdS)Nzdispatch._runcatchctjr")r rrrs r- catchtermz_runcatch..catchtermIs ' 'r/)sSIGBREAKsSIGHUPsSIGTERMc d} tj jddtji}|d}t j|tjd\}}|d}n2#tjtj ttj f$rYnwxYw|dkrd|vrt jdksS jddksB jdds" jd dks jd dkr._runcatchfuncUs]G #-HQQQK!4baj!(hne!L!L!!*$&"     (""zW'<'<MMQ&&x{e++x{--e44,x{h..x{j00+LMM%,SX6689 C !$cm4 %s7 $CFC,>HHJJJJBHHJJJJ #K0='))))K)#,..*;<<<sA A&&,BB CMH?H#"H?# H0-H?/H00H?3 M?IMIBMK:. M:K>>MK>ML)M)L??MA N )rrRrrsignal ValueError _callcatch)rXrrnumrrs` @r-rrFsA ) * *|-|- ( ( (V : 2 2fdD112M#y111 2    D l l l l l l \"m,,y|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-s4 B2AB A# B"A##BB B cd} tj||S#tj$rQ}d}|t d|jd|jfzYd}~nWd}~wtj $r}d}|j rx| dtj |j}|t d|j |fztj||j dd nL|t d |jz|t d Yd}~nrd}~wtj$r6}d}t d |j z} t%j|t|j d }||||n#tjtjf$rd}|jrbtj|j|j }|rA|||dtj|zd }|s7|||t dYnwxYwYd}~n.d}~wt2$rt4$rt7|sYnxYw|ddr|SdS)zlike scmutil.callcatch but handles more high-level exceptions about config parsing and commands. besides, use handlecommandexception to handle uncaught exceptions. rB s&hg: command '%s' is ambiguous: %s rjNhelps hg %s: %s FT)fullcommandshg: %s s0(use 'hg help -v' for a list of global options) shg: unknown command '%s' ) unknowncmds(%s) s'(use 'hg help' for a list of commands) rzsdetailed-exit-code)r callcatchr rrrprefixrqmatches CommandErrorrpagerrbytestrmessager help_rr formattedhelprHr all_commands getsimilarsimilarity_hintrErVhandlecommandexception configbool) rr:detailed_exit_codermsgbytesnocmdmsg formatted suggestedsims r-rrs= . T***  !     9 : :{DIIdl334 5           M M M < M HHW   ' 55H GGAn%%x(@@ A A A N2t|% F F F F F GGAkNNT\1 2 2 2 GGAJKK L L L  HHH233dlB H*HdltI GGH    HHY    $ek2 H H HI  %&t'8$,GG%GGH%%%GGI(=c(B(BBCCC $I H!!!EFFGGG H   %b))     }}U122!!rsTKAA44KC EK,JA GJB?JJJJ)KcXg}tj|dst|d|}|rzdt t j|}gfd}tjd||}fdtDtj |}|zS)Ns _origfuncr#rjct|ddz }||tkr|St jt d)Nrs#too few arguments for command alias)intgroupappendrr InputErrorr)mr givenargsnumss r-replacerzaliasargs..replacer sdaggajj//A%C KK   S^^## ~%"1%K#L#LMM Mr/ \$(\d+|\$)c"g|] \}}|v | Sr@r@)rnixrs r- zaliasargs..s"III41a1D==Q===r/) rrCrrqmaprrmresub enumerater shlexsplit)fnrr#rrrs ` @r- aliasargsrs D  B - -)r64(( (iiH/6677 N N N N N Nf^Xs33IIII9Y#7#7III "3'' ) r/cdt|D|d<dd<d|d<dd|Dd<d dd }t j|}|fd |S) zXinterpolate args into cmd for shell aliases This also handles $0, $@ and "$@". c&i|]\}}d|dzz|S)s$%drr@)rnrargs r- z$aliasinterpolate.. s'FFFFAs&AE"CFFFr/s$0$s$$rjs$@c3>K|]}tj|VdSr"rl)rnrs r-rpz#aliasinterpolate..(s-#M#MH$7$<$<#M#M#M#M#M#Mr/s"$@"|s\$c8|Sr")r)r replacemaps r-z"aliasinterpolate..,s:aggii0r/)rrqkeysreplacercompiler)rr#rregexrrs @r-aliasinterpolater sGFiooFFFJJuJu $Ju ))#M#M#M#M#MMMJw IIjoo'' ( ( 0 0v > >E 5A 550000# 6 66r/c>eZdZdZddZedZdZdZdS)cmdaliasc|x__d_|_d_g_g_d_d_d_ |_ tj j|\}}| D]\}} | |ur |_nd_n#tj$r d_YnwxYwjst#djz_dSjdrIjddd_fd} | _d_||jdS t-jj} nH#t0$r;} t#djt3j| fz_Yd} ~ dSd} ~ wwxYwt7| \} } | rEt#d jd t-j| d fz_dS| d x_}| _ tj ||dd}t?|d kr|\__}n|\__d}d_|||j|dS#tj$r)t#d j|fz_d_ YdStj $r"t#dj|fz_YdSwxYw)Nr/FTsno definition for alias '%s'!rcddjfzi}fd}tjd|}t j|}||djzS)NsHG_ARGSrjc|ddkr|St|dtkr|Sdt|djfzdS)NrrsLNo argument found for substitution of %i variable in alias '%s' definition. r/)groupsrrrdebugr)rr#r,rs r- _checkvarz0cmdalias.__init__..fn.._checkvarQsxxzz!},, wwyy(QXXZZ]++s4yy88 wwyy(J"188::a=1149=> #sr/rsalias_%s)environ blockedtag)rqrrrr system)rr#envrrr,shdefs`` r-rzcmdalias.__init__..fnNs!499di\D-@#A#AB # # # # # # #f^Y>>&ty$<<yyty1H!r/s&error in definition for alias '%s': %ssLerror in definition for alias '%s': %s may only be given on the command line/rrs+alias '%s' resolves to unknown command '%s's-alias '%s' resolves to ambiguous command '%s')!rrcmdname definitionrroptsrbadaliasrrrritemsshadowsr rrrshellalias _populatehelprrrr forcebytestr_earlysplitoptsrqziplistr3rr)r,rrrcmdtablerrrr!rMrr#r earlyoptsr tableentrycmdhelprs` @r-r.zcmdalias.__init__0s## DH $     !$_TYAANGU$NN,,  q::$DHE DLL# ! ! ! DLLL ! =>>JDM F ? % %d + + OABB'EDJ      ,DGDJ   r4 8 8 8 F &t77DD   GHH '--LDM FFFFF   *$// 4  5DIIh&6 &B1&EFFGHDM F!XXa[[( s  h>>qAJ:"".8+GG%/"DJ   r4dgw ? ? ? ? ?# # # #> DM #DOOOO%   @ DMMMM sDA BB65B6E F!&0FF!!A6J4L,L?LNcvi}dD]V}|dd||fzd}|!tj|std||fz|_dS|||<W|d|pd|_|jrA|jd|zr$|jdt|zd|_d |v|_ |d tj |} | tj | } | |_ |d tjj|_dS) N)docrcategoryaliass%s:%ss/non-ASCII character in alias definition '%s:%s'rr/shg rr+r,)rr isasciistrrrgetrrrowndocrgetdocsysstr__doc__rr CATEGORY_NONE helpcategory) r,rrrr defaulthelpcfgkvdocs r-r"zcmdalias._populatehelpsH/  A (Hay$8$??Ay&q))  !F!!1I! CFFGGG[%7C88 9 2--fsl;; 2 !c#hh,..1DIm ggfhob1122 ?/#&&C GG *8  r/cttjtj|j}t |j|Sr")rmaplistr expandpathrrr)r,r#s r-r#z cmdalias.argss*@@$'''r/cdtddd}||vrt||jstj|dr||St |j|S)NTF)norepointents optionalrepo inferreposhell)setAttributeErrorrrrCrr)r,r adefaultss r- __getattr__zcmdalias.__getattr__ssuu!   y  && & = #D,T8<< #T? "tw%%%r/c|jrtd}|jrP tj||jdd\}}t d||fz}n#t j$rYnwxYwt j|j||j r$| d|j |jfz| dd|j |j tj|dr|j|g|Ri|S tj|j|g|Ri|S#t j$rDd|jg|jz}| d|j |fzwxYw) Nrs"'%s' is provided by '%s' extension)rs alias '%s' shadows command '%s' s commandaliassalias '%s' expands to '%s' rCrj)rrr disabledcmdrrr r ConfigErrorrrrrRrrrCrchecksignatureSignatureErrorrqr#)r,rr#rrrexts r-__call__zcmdalias.__call__s = >D )5b$,GGKHCBCCsCjPDD+D#DM=== = <  HH4 4<7PP      + I O     D( + + 472------ - 3t*4733BFFFFFFF'   yy$,$)!;<<8DIt;LLMMM s9A AA0"DAE&r") r=r>r?r.r"propertyr#rGrNr@r/r-r r /stdddL    :((X( & & &r/r cJeZdZdZdZejdZdZdZ dZ dS)lazyaliasentryz 66O !VV= !VV=  r/c#BKtdD] }||V dSNr)range)r,rs r-__iter__zlazyaliasentry.__iter__s4q  Aq'MMMM  r/cdSr\r@rUs r-__len__zlazyaliasentry.__len__sqr/N) r=r>r?r3r.r propertycacherVrZr^r`r@r/r-rQrQsuFF      r/rQc|ddD]^\}} ||j|krn#ttf$rYnwxYw|d|}t |||||}|||<_dS)Nr-T) ignoresub) configitemsrKeyErrorrE configsourcerQ)rr&r!rrrs r- addaliasesrg s ^^H^EE   z )Z778.)    D 511r5*hGG   s1AAci}i} tj|tj|}n>#tj$r,}t jdtj|d}~wwxYw|r|d|dd}}tj |tj | dd\}}|d}t|d|}|d|}|r4tjt"jtj||z}t)|d} nd}g} tjD]9} | | d| d|| d| df: tj|| |d}n>#tj$r,}t j|tj|d}~wwxYwtjD]} | d} || || <|| =||r|dpd|||fS) NrrrzstrictsdefaultsrT)gnu)rr rrrr rrr#rrrrrrrr<rr=rlistr) rr#options cmdoptionsrrrrdefaultscorXs r-_parserqs7GJF"4)t'D'DEEEF GT!""XT  ui!@!@  ajq4((99[#..   (2Eh2O2OPP  qNN  44 !A$!gadmQqT23333E"4JDAAA  EEE j&=d&C&CDDDE  aD] qMM !q)T4* EEs, 'A"'AA";FG#'G  Gcg}|D]} d|ddD\}}|dd\}}|r|st||||d||||f{#ttf$r7t jtdtj |zwxYw|S)z0parse the --config options from the command linec6g|]}|Sr@)strip)rncfgelems r-rz _parseconfig..Ns MMMw7==??MMMr/=r.rs?malformed --config option: %r (use --config section.name=value)) splitrrrrr rrrr)rrconfigsr7rvaluesections r-rrHsG MM#))D!:L:LMMMKD% JJtQ//MGT !$ !  LL${ ; ; ; NNGT51 2 2 2 2J'   "9"3'' (   Ns A7BACc i}tj|tj||d dddgi|S)Ns strictflagsT repositoryrepo)rjearly optaliases)rr rr)rr#rls r-rr`sSG  (( (!G9-  Nr/c@d}gd}tj|||ddS)zCSplit args into a list of possible early options and remainder argssR:)scwd=s repository=srepo=sconfig=T)rjkeepsep)r earlygetopt)r# shortoptions longoptionss r-r$r$ms7LAAAK   lKT4   r/c ttj||d|zdd||| t||||} tj||d|zdd|| ||n@#t$r3tj||d|zdd|||wxYw| S) Nspre-%sTrj)r#patsrspost-%sF)r#resultrrsfail-%s)rrq _runcommand Exception) luir$rfullargsrrldcmdpatsrmrws r- runcommandrwsI  C YYx  "gsA..     8$$          8$$       Js AA88=B5cb ttj|ddd5}t |}tj|vrtj |vs ddddStj tj|d}tj ||}|j }||d|ddddS#1swxYwYdS#t$rYdSwxYw)a!if the current repository is shared one, this tries to read .hg/hgrc of shared source if we are in share-safe mode Config read is loaded into the ui object passed This should be called before reading .hg/hgrc or the main repo as that overrides config set in shared source.hgsrequiresrbNhgrc)openospathrqrDread splitlinesrequirementsmodSHARESAFE_REQUIREMENTSHARED_REQUIREMENTrr _getsharedvfsbase readconfigrE)rrrhrhgvfs sharedvfsroots r-_readsharedsourceconfigrsp  "',,tV[994 @ @ 9Brwwyy335566L5EE#6,FF 9 9 9 9 9 9 9 9GBGLLv6677E!/|DDI>D MM)..114 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9      sB/D AD D A7D D DD DD D.-D.c( tj}nM#t$r@}tjt dtj|jzd}~wwxYwd}||}n|}tj |tj |pd}|s|}n| }tjrzt|||tj|dd||tj|dd||rt'j||d}| }tjrzt|||tj|dd||tj|dd||rtj |||fS)zpReturn (path, local ui object) for the given target path. Takes paths in [cwd]/.hg/hgrc into account." s+error getting current working directory: %sNr/rrshgrc-not-sharedr)r getcwdOSErrorr rrrIrJrchdirrfindreporSr use_repo_hgrcrrrrqrget_clone_path)rrpathwdcwdrMoldcwdrrs r- _getlocalrs  o    k < = =!!*-- .    F z    B   &3D Qggii   ! ! Q #C . . . NN27<<fg>> E E E NN27<<f6HII4 P P P Q%c511!4ggii   ! ! Q #C . . . NN27<<fg>> E E E NN27<<f6HII4 P P P   9s A ;AA c i tjtj n#tj$rYdSwxYwsdStj}d dd}tj||\}}n"#tj tj f$rYdSwxYw|d|d r8tj dr%t\} fd  fdSdSdS)z=Return the function to run the shell alias, if it is requiredNrrzrirCc&gddRSNrr@)r#rrsr-rz"_checkshellalias..s!BBr%DH%%%r/c Btdddgi Sr)r)r#rrrrlrsr-rz"_checkshellalias..s,z sD!Hb'1b"  r/)rr rrrrrrrr rrrrCr$) rrr#r&strictrr _earlyoptsrrrrls ``` @@@@r-_checkshellaliasrsjG"4)|t|kr3d6|g| z|_||jd<t|cYcdddS|s5t9jt=d7t1jAzYnwxYw|r#|j|d8r|B}Cd5|n$|r"Dt=d9t| }Fd:d;|tjG|fd<} t|||| |||| |r||jkr|IcdddS#|r ||jkr|IwwwxYw#1swxYwYdS)=Nscwdr}verbosedebugquiet)rrrrzrsprofiles profilingsenabledstrues --profileFsfalses --no-profile)enabledsfallbackencodingrs&option --config may not be abbreviateds#option --cwd may not be abbreviatedsroption -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repors(option --debugger may not be abbreviatedsencodings encodingmodestimectj}|ddkr0|d|d|d|dtjf}|S)Nrgrrrr)rtimesrr)ts r- get_timesz_dispatch..get_timesgsEHJJQ43;;1qtQqT1Q4>Ar/c }td|ddz |ddz |ddz |ddz |ddz fzdS)Ns4time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f) rrrrr)rr)rrsrs r- print_timez_dispatch..print_timepsIKKNOO!qt !qt !qt !qt !qt      r/ryr{r|snoninteractives interactivesoffs-ysinsecureTscolors--colorspagersinternal-always-sautosversionr)rs shortlist)r presetupfuncsr@srepository '%s' is not localsbundles mainreporootr~rs --repositorys+no repository found in '%s' (.hg not found)shiddenswarning: --repository ignored scommands%s c@tjgRiSr")rrK)r#r: strcmdoptrsr-rz_dispatch..s--D'--bE4EEE9EEr/)Jr#rr)rrrr$addrrboolrrrprofiler loadall __class__rgr rr populateuirr fallbackencodingrqr+r rr encodingmodeatexitstartr/insecureconnectionsrsetupr parseboolr disablepagerversion_rr?r%r&r'r(r repositoryr*r@localrRequirementError RepoErrorrArBr<rrcountrrr unfilteredinsertrrsrRrrrg)rXrrrruisoptrui_rprofiler shellaliasfnfallbackrrrlrmrcoloroptr$rreposguessrrr#r:rrrrs @@@@@@r-rrso 8D B  6 "C    ] +E"e$$ID# s)C x   $<  H %<  H %< 4 < #>??C < < eS#us{;;;; <  # O K KC MM, G\ J J J J K * % . . >>, 3 3 O MM, Ho N N Nnn\:66G  3 0 0 0GH 3} 3'''(R66  " + +%c****<>>)GGGGGGGG.::e%899  1(0H %/5c4/@/@,T4*!$ 9 !1)!< < <"1%N#O#OPP P 6?c.v6 6 6"1%K#L#LMM M = !S%5m%D D D"O  ; 3#3K#@ @ @"=>>  ;  5 ' 4H  ? # =$+O$>+u - - / / /*.''8$  C E eXxDDD K       1 2 2 # HH(3. / / / / X ' ) ) # #  """" ' 'C  !# & & & & :  )$R((wGGGGGGGGx 7  4>"c3d?CCC{GGGGGGGG| 4>"l33GGGGGGGGBqqq'{7 ;  x+  f !w !w !w $=!&)&7 $ D  ::<<#.=>>EG%%!?DIw-,>6d646$,$4W5Et$L$LE$)!HE$6U););s5zz)I)I,;U+Ch+NBG 0 ?'0~~ 5 5WGGGGGGGGX $"'"2 !%=!"!"#+/"3"3 !4###* -W9%-??,,D KK4  ; GGA899 : : :(## z7C(((&z22 E E E E E E E T3"gq': (( OGGGGGGGGL ((  (MGGGGGGGGGGsxA0b& Mb&+ b&b&;A+b&'A!b&>%b##b&&b*-b*c tjd|z5|cdddS#1swxYwYdS#tj$r#tj|t dwxYw)z8Run a command function, possibly with profiling enabled.zRunning %s commandNsinvalid arguments)rrRr rLrr)rrlrcmdfuncs r-rrs? [-3 4 4  799                    ??? a(<&=&=>>>?s!= 0 =4=4=2A/c `tjddddf}|ddtjD]\}}t jt |dd}tj|}t |dtd }| s|d ||f}nrtj |rd | D}|vrfd |D}t|p|} |d  | |dkr|| ||f}|d }|\}}}}t|ttfsdd|D}|ptd} td|| ||t j|fz} n<|dd} | td} td| zdz} t#jt&jdd} d| td| ztdtjzztddfdt-tjDzzz } | S)z:Produce a warning message for the current active exceptionr)rXNr/rzssupportcontact testedwithbuglinksthe extension author.sunknownc8g|]}tj|dS)r)r versiontuple)rnrs r-rz%_exceptionwarning.. s%JJJ!d'1--JJJr/c g|] }|k| Sr@r@)rnrcts r-rz%_exceptionwarning..$s1111!b&&Q&&&r/rrrwc6g|]}tj|Sr@)rr#)rnros r-rz%_exceptionwarning..,s#@@@(++@@@r/s (version N/A)s** Unknown exception encountered with possibly-broken third-party extension "%s" %s ** which supports versions %s of Mercurial. ** Please disable "%s" and try your action again. ** If that fixes the bug please report it to %s s)https://mercurial-scm.org/wiki/BugTrackers?** unknown exception encountered, please report by visiting **  c^|d}tj|d}|r|d|zz }|S)Nrrrj)r moduleversion)rrMvers r- ext_with_verz'_exceptionwarning..ext_with_verDs:d&qt,,   4#: C r/s ** Python %s s*** Mercurial Distributed SCM (version %s) s** Extensions loaded: %s s, c&g|] }|Sr@r@)rnrrs r-rz%_exceptionwarning..Qs!JJJQaJJJr/)rrrr rr#rrrrtismoduleinternalrxmaxrbytesstrrqrsysbytesr4versionrsorted)rworstrmodrrreporttestedlowernearestextverwarning bugtracker sysversionrrs @@r-_exceptionwarningrs  Q   B "c3 E yy)**2#.00 7 7ID#$0\3//J!.s33GS)Q/G-H-HIIF##%% j&'9*3// JJz7G7G7I7IJJJFV||1111111E%/6**GQx7U1X#5#5gvw6 Qx,1)j&'*ucl33 @@Z@@@J/A.// A  6:tZ-DV-L-L M NYYu&788  GHHJ 2        "3;//77sCCJ    * ; < r s """"""000000000f:    3 3 3 l$;;;   PPPf}-}-}-@999x.777,ttttttttn!!!!!!!!H   "*F*F*FZ0   $$$N   0++++\   Bqqqh???SSSlr/