\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@s[ddlmZddlZddlZddlmZddlmZmZm Z ddl m Z m Z dej fdYZd ej fd YZd efd YZd efdYZdefdYZdefdYZdeefdYZdefdYZdeefdYZdefdYZdefdYZdefdYZdefd YZd!d"ddd#Zddd$Zd!d"ddd%d&Zdddd%d'Z d(Z!d)Z"dd%d*Z#d+Z$d,Z%d-Z&d.Z'd/Z(d0Z)d1Z*d2Z+d3Z,d4Z-d5Z.dd6Z/dd7Z0dd8Z1dd9Z2d:Z3d;Z4ie-d6e%e56e0e6e2e66Z7d<Z8d=Z9d>Z:d?Z;d@dAZ<dBZ=dCZ>dDZ?dEZ@dFZAdGZBdHZCdIZDdJZEdKZFdS(Li(tabsolute_importNi(t_(terrortpycompattutil(tdateutilt stringutiltResourceUnavailablecB@seZRS((t__name__t __module__(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRstTemplateNotFoundcB@seZRS((RR (((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR stwrappedcB@seZdZejZejdZejdZejdZ ejdZ ejdZ ejdZ ejdZ ejdZejd Zejd ZRS( sObject requiring extra conversion prior to displaying or processing as value Use unwrapvalue() or unwrapastype() to obtain the inner object. cC@sdS(sbTest if the specified item is in self The item argument may be a wrapped object. N((tselftcontexttmappingtitem((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcontains'scC@sdS(sReturn a member item for the specified key The key argument may be a wrapped object. A returned object may be either a wrapped object or a pure value depending on the self type. N((R R Rtkey((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt getmember.scC@sdS(sjReturn the smallest item, which may be either a wrapped or a pure value depending on the self typeN((R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytgetmin7scC@sdS(siReturn the largest item, which may be either a wrapped or a pure value depending on the self typeN((R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytgetmax<scC@sdS(sReturn new container of the same type which includes only the selected elements select() takes each item as a wrapped object and returns True/False. N((R R Rtselect((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytfilterAscC@sdS(sYield each template mappingN((R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytitermapsIscC@sdS(sJoin items with the separator; Returns a bytes or (possibly nested) generator of bytes A pre-configured template may be rendered per item if this container holds unprintable items. N((R R Rtsep((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytjoinMscC@sdS(sReturn a bytes or (possibly nested) generator of bytes representing the underlying object A pre-configured template may be rendered if the underlying object is not printable. N((R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytshowVscC@sdS(s2Return a boolean representation of the inner valueN((R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyttobool_scC@sdS(sMove the inner value object out or create a value representation A returned value must be serializable by templaterfilters.json(). N((R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyttovaluecs(RR t__doc__tabctABCMetat __metaclass__tabstractmethodRRRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR s    tmappablecB@s)eZdZdZejdZRS(s:Object which can be converted to a single template mappingcc@s|j|VdS(N(ttomap(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRmscC@sdS(s2Create a single template mapping representing thisN((R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR#ps(RR RRRR!R#(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR"js t wrappedbytescB@szeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZRS( sWrapper for byte stringcC@s ||_dS(N(t_value(R tvalue((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt__init__wscC@st|||}||jkS(N(t stringifyR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRzscC@s)tjtdtj|jdS(Ns%r is not a dictionary(Rt ParseErrorRRtbytestrR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~scC@s|j||tS(N(t_getbytmin(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||tS(N(R+tmax(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s7|js!tjtdn|tj|jS(Ns empty string(R%RR)RRt iterbytestr(R R Rtfunc((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR+s cC@s)tjtdtj|jdS(Ns%r is not filterable(RR)RRR*R%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s)tjtdtj|jdS(Ns%r is not iterable of mappings(RR)RRR*R%(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@sttj|j|S(N(t joinitemsRR.R%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|jS(N(R%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s t|jS(N(tboolR%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|jS(N(R%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs(RR RR'RRRRR+RRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR$ts           t wrappedvaluecB@sqeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( s2Generic wrapper for pure non-list/dict/bytes valuecC@s ||_dS(N(R%(R R&((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR'scC@s tjtd|jdS(Ns%r is not iterable(RR)RR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not a dictionary(RR)RR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not iterable(RR)RR%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not iterable(RR)RR%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not iterable(RR)RR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not iterable of mappings(RR)RR%(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s tjtd|jdS(Ns%r is not iterable(RR)RR%(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s#|jdkrdStj|jS(Nt(R%tNoneRR*(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@sB|jdkrtSt|jtr,|jSttj|jS(N(R%R4tFalset isinstanceR1RR*(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs cC@s|jS(N(R%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs(RR RR'RRRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR2s          tdatecB@steZdZddZdZdZdZdZdZdZ d Z d Z d Z d Z RS( sWrapper for date tuples%d %dcC@s(tt|\|_|_||_dS(N(tmaptintt _unixtimet _tzoffsett_showfmt(R R&tshowfmt((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR'scC@stjtddS(Nsdate is not iterable(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsdate is not a dictionary(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsdate is not iterable(RR)R(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsdate is not iterable(RR)R(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsdate is not iterable(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsdate is not iterable(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j|j|jfS(N(R<R:R;(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@si|jd6|jd6S(Ntunixtimettzoffset(R:R;(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR#scC@stS(N(tTrue(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j|jfS(N(R:R;(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs(RR RR'RRRRRRRR#RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR7s          thybridcB@seZdZddZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZRS(sWrapper for list or dict to support legacy template This class allows us to handle both: - "{files}" (legacy command-line-specific list hack) and - "{files % '{file} '}" (hgweb-style with inlining and function support) and to access raw values: - "{ifcontains(file, files, ...)}", "{ifcontains(key, extras, ...)}" - "{get(extras, key)}" - "{files|json}" cC@s1||_||_||_||_||_dS(N(t_gent_valuest_makemapt_joinfmtt_keytype(R tgentvaluestmakemaptjoinfmttkeytype((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR's     cC@s%t||||j}||jkS(N(t unwrapastypeRFRC(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@satj|jds-tjtdnt||||j}|j||jj |S(Ntgetsnot a dictionary( Rt safehasattrRCRR)RRLRFt _wrapvalueRM(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR scC@s|j||tS(N(R+R,(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||tS(N(R+R-(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s@|js!tjtdn||j}|j||S(Nsempty sequence(RCRR)RRO(R R RR/tval((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR+s cC@s<|dkrdStj|dr&|Std|||jS(NRD(R4RRNt hybriditemRD(R RRP((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyROs  c@stjjdr:fdjjD}n4gjD]$}j||rD|^qD}td|jjj S(NRMc@s7i|]-\}}j||r||qS((RO(t.0tktv(RR (s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys (s ( RRNRCt iteritemsRORAR4RDRERF(R R RRRHRT((RR s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR&s%4cc@s,|j}x|jD]}||VqWdS(N(RDRC(R R RItx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR.s c@s tfdjD|S(Nc3@s|]}j|VqdS(N(RE(RRRV(R (s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys 5s(R0RC(R R RR((R s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR3scC@s?|j}|dkr(|j||dSt|r;|S|S(Nt (RBR4Rtcallable(R R RRG((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR7s    cC@s t|jS(N(R1RC(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR@sc@s[|j}tj|dr8fd|jDSg|D]}t|^q?S(NRMc@s+i|]!\}}t||qS((t unwrapvalue(RRRSRT(R R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys Gs (RCRRNRURY(R R RtxsRV((R Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRCs  N(RR RR4R'RRRRR+RORRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRAs            RQcB@sqeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( sWrapper for non-list/dict object to support map operation This class allows us to handle both: - "{manifest}" - "{manifest % '{rev}:{node}'}" - "{manifest.rev}" cC@s(||_||_||_||_dS(N(RBt_keyR%RD(R RGRR&RI((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR'Ts   cC@s|j|jS(N(RDR[(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR#ZscC@s(t|||j}|j|||S(N(t makewrappedR%R(R R RRtw((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR]scC@s(t|||j}|j|||S(N(R\R%R(R R RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRascC@s%t|||j}|j||S(N(R\R%R(R R RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRescC@s%t|||j}|j||S(N(R\R%R(R R RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRiscC@s(t|||j}|j|||S(N(R\R%R(R R RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRmscC@s(t|||j}|j|||S(N(R\R%R(R R RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRqscC@s<|j}|dkr%tj|jSt|r8|S|S(N(RBR4RR*R%RX(R R RRG((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRus    cC@s%t|||j}|j||S(N(R\R%R(R R RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~scC@st|||jS(N(t_unthunkR%(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs(RR RR'R#RRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRQKs         t_mappingsequencecB@sheZdZd d ddZdZdZdZdZdZ dZ d Z d Z RS( sWrapper for sequence of template mappings This represents an inner template structure (i.e. a list of dicts), which can also be rendered by the specified named/literal template. Template mappings may be nested. R3cC@sI|dk r*|dk r*tjdn||_||_||_dS(Ns$name and tmpl are mutually exclusive(R4RtProgrammingErrort_namet_tmplt _defaultsep(R tnamettmplR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR's   cC@stjtddS(Nsnot comparable(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsnot a dictionary(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsnot comparable(RR)R(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsnot comparable(RR)R(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nsnot filterable without template(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRsc@st|j}jr@fd|D}n:jrefd|D}ntjtdt||S(Nc3@s$|]}jj|VqdS(N(tprocessRa(RRtm(R R (s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys sc3@s$|]}jj|VqdS(N(texpandRb(RRRg(R R (s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys ss not displayable without template(t_iteroverlaymapsRRaRbRR)RR0(R R RRtmapsitertitemiter((R R s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs  cC@s|j|||jS(N(RRc(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRsc@skjg}xR|jD]A}j|||jfd|jDq"W|S(Nc@s7i|]-\}}|krt||qS((RY(RRRSRT(R tknownrestlm(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys s (tknownresourcekeysRt overlaymaptappendRU(R R Rtitemstnm((R RlRms</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs N( RR RR4R'RRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR_s      tmappinggeneratorcB@s5eZdZdddddZdZdZRS(sWrapper for generator of template mappings The function ``make(context, *args)`` should return a generator of mapping dicts. R3cC@s2tt|j|||||_||_dS(N(tsuperRsR't_maket_args(R tmaketargsRdReR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR's cC@s|j||jS(N(RuRv(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@st|j|S(N(t _nonemptyR(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs(N(RR RR4R'RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRss t mappinglistcB@s2eZdZddddZdZdZRS(s%Wrapper for list of template mappingsR3cC@s)tt|j|||||_dS(N(RtRzR't _mappings(R tmappingsRdReR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR'scC@s t|jS(N(titerR{(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s t|jS(N(R1R{(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRsN(RR RR4R'RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRzs tmappedgeneratorcB@seZdZddZdZdZdZdZdZdZ e dZ d Z d Z d Zd Zd ZdZRS(sWrapper for generator of strings which acts as a list The function ``make(context, *args)`` should return a generator of byte strings, or a generator of (possibly nested) generators of byte strings (i.e. a generator for a list of byte strings.) cC@s||_||_dS(N(RuRv(R RwRx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR's cC@s(t|||}||j||kS(N(R(R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||jS(N(RuRv(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRBscC@stjtddS(Nsnot a dictionary(RR)R(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||tS(N(R+R,(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||tS(N(R+R-(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s:|j||}|s0tjtdn||S(Nsempty sequence(RRR)R(R R RR/RZ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR+scc@sJxC|||D]2}t|||}|t|r|VqqWdS(N(R(R$(R RRwRxRRVts((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt _filteredgenscC@s(||j|j|f}t|j|S(N(RuRvR~R(R R RRRx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtddS(Nslist of strings is not mappable(RR)R(R R ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@st|j||S(N(R0RB(R R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR scC@s|j||dS(NR3(R(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@st|j|S(N(RyRB(R R R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s,g|j|D]}t|||^qS(N(RBR((R R RRV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs((RR RR'RRBRRRR+t staticmethodRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~s            RR&c@sXtjdkr'dtjnt|fdfdS(s>Wrap data to support both dict-like and string-like operationss%s=%sc@si|6|6S(N((RS(tdataRR&(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytsc@s||fS(N((RS(Rtfmttprefmt(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRsN(RtidentityR4R*RA(RRR&RRG((RRRRR&s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt hybriddicts    c@sOtjdkr'dtjnt||fdfdS(s>Wrap data to support both list-like and string-like operationss%sc@s i|6S(N((RV(Rd(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR&sc@s|S(N((RV(RR(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR&sN(RRR4R*RA(RRdRRG((RRdRs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt hybridlist s    RWc C@spg|jD] \} } i| |6| |6^q } t|||| ||} t|d|d|d|d| S(sWrap data like hybriddict(), but also supports old-style list template This exists for backward compatibility with the old-style template. Use hybriddict() for new template keywords. RR&RRG(RUt_showcompatlistR( R RRdRRR&Rtpluralt separatorRSRTtctf((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt compatdict(s3c C@s=t||||||}t|d|p-|d|d|S(sWrap data like hybridlist(), but also supports old-style list template This exists for backward compatibility with the old-style template. Use hybridlist() for new template keywords. RdRRG(RR( R RRdRtelementRRRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt compatlist3sc@s|gD] \}}i|d6|d6^q}t||||dd}tjt|fdfdS(sWrap list of (dest, source) file names to support old-style list template and field names This exists for backward compatibility. Use hybriddict for new template keywords. RdtsourceRt file_copiesc@si|d6|d6|d6S(NRdtpathR((RS(tcopies(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRIsc@sd||fS(Ns%s (%s)((RS(R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRJs(RRtsortdictRA(R RRdRRSRTRR((Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcompatfilecopiesdict=s -  cC@s.t||||}t||dtjS(sWrap list of file names to support old-style list template and field names This exists for backward compatibility. Use hybridlist for new template keywords. cS@si|d6|d6S(NtfileR((RV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRTs(RRARR(R RRdtfilesR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcompatfileslistLsc#@s|sd}n|sJd|}j|rFj|VndSjst|dtr}|j|Vn/x,|D]$}t|}|j|VqWdSd|} j| rj| Vnfd} d} j| r|j} nd} x|D]}| |Vq*W| dk r_| | d| Vnd |} j| rj| VndS( sNReturn a generator that renders old-style list template name is name of key in template map. values is list of strings or dicts. plural is plural of name, if not simply name + 's'. separator is used to join values as a string expansion works like this, given name 'foo'. if values is empty, expand 'no_foos'. if 'foo' not in template map, return values as a string, joined by 'separator'. expand 'start_foos'. for each value, expand 'foo'. if 'last_foo' in template map, expand it instead of 'foo' for last key. expand 'end_foos'. Rtno_Nitstart_c@si}y|j|Wnctttfk r|y%x|D]\}}||||d}qdSqWdS(s`Find symbolic name for the given compiled expression; returns None if nothing found reliablyiN(R@t runsymbolt runfilterR4(targR/R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytfindsymbolicnames     cC@s+yt|tSWntk r&tSXdS(N(tnextR@t StopIterationR5(txiter((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRys   cC@s&t|tjs|St|||S(s&Evaluate a lazy byte string into value(R6ttypest GeneratorTypeR((R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR^scC@s|\}}||||S(sEvaluate given argument as a bare template object which may require further processing (such as folding generator of strings)((R RRR/R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalrawexps cC@s"t|||}t|||S(s)Evaluate given argument to wrapped object(RR\(R RRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalwrappedscC@sHt|tr|St|||}t|tr>t|St|S(sLift object to a wrapped type(R6R R^RR$R2(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR\s  cC@st||t|||S(s%Evaluate given argument as value type(RYR(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalfuncargscC@s/t|tr|j||St|||S(s.Move the inner value object out of the wrapper(R6R RR^(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRYscC@s|\}}|tkrQ||||dd}|dkrctj|}qcn||||}t|||j||S(sCEvaluate given argument as boolean, but also takes boolean literalstdefaultN(RR4Rt parseboolR\R(R RRR/RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalbooleans   cC@s%t|||}t||||S(s`Evaluate given argument as a date tuple or a date string; returns a (unixtime, offset) tuple(Rt unwrapdate(R RRterrR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevaldatescC@st|tr|j||St|||}ytj|SWnZtk rptj|pgt dn/tjk r|sntj|nXdS(Nsnot a date tuple nor a string( R6R7RRYRt parsedateRRR)R(R RRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR s cC@s%t|||}t||||S(N(Rt unwrapinteger(R RRRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalintegerscC@sYt|||}yt|SWn2ttfk rTtj|pKtdnXdS(Nsnot an integer(RYR9RRRR)R(R RRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs cC@st||t|||S(N(R(R(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt evalstring$scC@sU|\}}|tkr3||||d|}n||||}t|||S(sXEvaluate given argument as string template, but returns symbol name if it is unknownR(RR((R RRR/RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalstringliteral's   cC@sEyt|}Wn$tk r4tjd|nX||||S(sBMove the inner value object out of the wrapper and coerce its typesinvalid type specified: %r(t_unwrapfuncbytypetKeyErrorRR`(R RRttypR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRL8s  cC@s t|S(N(R9(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runinteger@scC@s|S(N((R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runstringCsc@sfd}d|_|S(Nc@stjtddS(Ns$recursive reference '%s' in template(RtAbortR(R R(R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt showrecursionGs((t _requires(RR((Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt_recursivesymbolblockerFs R3c@sBj|}|dkrmj}t|||y|SWq>tk r:dSXn|S(NRc@s(i|]}jj||qS((t _resourcestlookup(RRRS(R R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys [s ttempltuisold-style template keyword '%s's4.8(tsymbolR4tcopyRRfR RXtgetattrRt knownkeysRRMt deprecwarnRt strkwargsR(R RRRRTt safemappingtpropsR((R Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRLs.    $    cc@s&x|D]}t|||VqWdS(N(R(R RttemplateR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runtemplatems cC@s|\}}t|||}t|dd}y#t||||}||SWn:tjk r}tjt|dt||nXdS(Nt_intypethint(RRR4RLRR)Rt_formatfiltererror(R RRRtfiltRtintypete((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRqs cC@sFtj|j}t|}|s2td|Std||fS(Ns(incompatible use of template filter '%s's8template filter '%s' is not compatible with keyword '%s'(RtsysbytesRRR(RRtfntsym((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR{s   cc@sBx;t|D]-\}}|j||}||d<|Vq WdS(suGenerate combined mappings from the original mapping and an iterable of partial mappings to override the originaltindexN(t enumerateRo(R t origmappingt newmappingsRRrRm((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRis c c@sy|j|}WnYtjk rn}t|}|s@ntd|}tjt|d|nXx+t|||D]} t|| |VqWdS(Ns+keyword '%s' does not support map operationR(RRR)RRRRiR( R RtdtdargttargtditerRRRRm((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt _applymaps cC@s:|\}}t|||}ttd||||fS(NRx(RR~R(R RRRRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytrunmaps c C@s|\}}t|||}t|trX|j||j|}t|||Sy|j|||SWnYtjk r}t |}|snt d|} tjt |d| nXdS(Ns.keyword '%s' does not support member operationR( RR6R"RoR#RRRR)RRR( R RRRtmembRRmRRR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runmembers  cC@s t|||td}| S(Ns"negation needs an integer argument(RR(R RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runnegates cC@s|\}}}t|||td}t|||td}y|||SWn&tk r~tjtdnXdS(Ns#arithmetic only defined on integerssdivision by zero is not defined(RRtZeroDivisionErrorRR(R RRR/tlefttright((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt runarithmetics   cc@s=t}x0|D](}|r"t}n|r0|Vn|Vq WdS(s9Join items with the separator; Returns generator of bytesN(R@R5(RkRtfirstRV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR0s  (Gt __future__RRRti18nRR3RRRtutilsRRRRR tobjectR R"R$R2R7RARQR_RsRzR~R4RRRRRRRRR(RRyR^RRR\RRYRRRRRRRRR9RRLRRRRRRRRiRRRRRR0(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyts  L -,'W:7 <    F                    !