\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sddlmZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z ddl mZmZmZmZmZmZmZddlmZejdZejZd Zd Zd efd YZd efdYZdZdZ defdYZ!y ej"Z!Wne#k rTnXej$ej%defdYZ&de'dZ(dZ)dZ*dZ+dZ,defdYZ-dej.fdYZ/ej$ej0defdYZ1ej$ej2d efd!YZ3ej$ej4d"efd#YZ5ej$ej6d$efd%YZ7ej$ej4d&efd'YZ8ej$ej6d(efd)YZ9d*e-fd+YZ:d,e9fd-YZ;d.e1fd/YZ<dS(0i(tabsolute_importNi(t_(tbinthextnullidtnullrev(terrortmdifftpolicytpycompatt repositorytrevlogtutil(t interfaceutiltparserscc@s|r%|ddkr%tdnd}x|jD]}|dk re||kretdn|}|jd\}}t|dkr|t|d |dfVq8|t|dfVq8WdS(Nis s"Manifest did not end in a newline.s#Manifest lines not in sorted order.si(t(t ValueErrortNonet splitlinestsplittlenR(tdatatprevtltftn((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_parse&scC@sjg}g}xD|D]<\}}}|j||jd|t||fqWt|dj|S(Ns%s%s%s R(tappendRt_checkforbiddentjoin(tittfilestlinesRRtfl((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_text9s $ tlazymanifestitercB@s)eZdZdZdZeZRS(cC@sd|_||_dS(Ni(tpostlm(tselfR%((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__init__Fs cC@s|S(N((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__iter__JscC@sy|jj|j\}}Wntk r8tnX|dkr\|jd7_|dS|jd7_|jd|}|||!S(Niiis(R%t_getR$t IndexErrort StopIterationtfind(R&RR$tzeropos((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytnextMs   (t__name__t __module__R'R(R.t__next__(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR#Es   tlazymanifestiterentriescB@s)eZdZdZdZeZRS(cC@s||_d|_dS(Ni(R%R$(R&R%((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'\s cC@s|S(N((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(`scC@sy|jj|j\}}Wntk r8tnX|dkrX|jd7_|S|jd|}t||jj|j|dd}|jj||j|}|jd7_|||!||fS(Niisi(( R%R)R$R*R+R,t unhexlifyt extrainfot _getflags(R&RR$R-thashvaltflags((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR.cs   (R/R0R'R(R.R1(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR2[s   cC@s8t||||!}|r4|t|d@7}n|S(Ni(Rtchr(RtextraR$tlengthts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR3tscC@s||k||kS(N((tatb((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_cmpzst _lazymanifestcB@seZddddZdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZedZdZdZdZdZdZRS(cC@sw|dkrL|j||_dgt|j|_||_g|_n'||_||_||_||_dS(Ni(Rt findlinest positionsRR4Rt extradata(R&RRAR4RB((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'~s      cC@s|s gS|jd}|dks5|ddkrDtdndg}||jd }x|t|dkr|dkr|j|d||d|jd|d!}||krtdn|}|jd|d}qcW|S(Ns is"Manifest did not end in a newline.isis#Manifest lines not in sorted order.(R,RRR(R&RR$RARtnexts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR@s %! cC@s<|j|}|dkr&|j|fS|j| ddfS(Niii(RARRB(R&tindexR$((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR)s   cC@sA|dkr-|j||jjd|d!S|j| ddS(Nisi(RR,RB(R&R$((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_getkeys !cC@sd}t|jd}x|||kr||d}|j|}|j|}t||}|dkrq|S|dkr|d}q|d}qWdS(Niiii(RRARER>(R&tkeytfirsttlasttmidpointtnextpost candidatetr((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytbsearchs    cC@sd}t|jd}x||kr||d}|j|}|j|}t||}|dkrw|tfS|dkr|d}q|d}qW|tfS(Niii(RRARER>tTruetFalse(R&RFRGRHRIRJRKRL((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytbsearch2s     cC@s|j|dkS(Ni(RM(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt __contains__scC@sY|d}|jd|}|dkr;t|d}n||krKdS|j||!S(Ni)s iiR(R,RR(R&RtneedleR$tstarttend((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR5s   cC@st|tstdn|j|}|dkrBtn|j|\}}|dkru|d|dfS|jd|}t||j||dd}|j |||}||fS(Ns'getitem: manifest keys must be a bytes.iiisi(( t isinstancetbytest TypeErrorRMtKeyErrorR)R,R3R4R5(R&RFRRRR$R-R6R7((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt __getitem__s    cC@s|j|\}}|s$tn|j|}|j| |j|d|_|j| |j|d|_|dkr|j| d|j|d|_ndS(Niis(RPRXRAR4R(R&RFRRtfoundtcur((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt __delitem__s   cC@st|tstdnt|t s@t|dkrOtdn|d}t|t sdt|kodkn rtdn|d}t|dkr|d }nt|t st|dkrtd |n|j|\}}|r|j|}|dkrN|||df|j| ds (tmatchest filesnotinRntsett iteritems(R&Rltmatchtm1RnR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs  cC@s tj|S(N(R tdirs(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_dirsscC@s|jS(N(R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRscC@s ||jkS(N(R(R&tdir((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pythasdirsc@sP|j}t|dkoO|jpO|joOtfd|DS(snChecks whether we can correctly and quickly iterate over matcher files instead of over manifest files.idc3@s|]}|kVqdS(N((R}Ro(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys s(RRtisexacttprefixtall(R&RR((R&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_filesfastpaths cc@s|jr,xt|D] }|VqWdSt|j}|j|rmxt|D] }|VqZWdSx>|D]6}||kr|j|n||rt|VqtqtW|jdx6t|D](}|j|s|j |dqqWdS(sGenerates matching file names. Equivalent to manifest.matches(match).iterkeys(), but without creating an entirely new manifest. It also reports nonexistent files by marking them bad with match.bad(). Nt.( talwaystiterRRRtsortedtremovetdiscardRtbadR(R&RRtfsetRo((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytwalks$        cC@s|jr|jS|j|rrt}|j}x4|jD]&}||krD|||j|s(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytitemsscC@sd|jjDS(Ncs@s|]}|d VqdS(iN((R}R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys s(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRscC@s |jjS(N(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRkscC@s |jjS(N(RxRj(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRj!scC@sg}d}d}dg}d}tj|}t|}t|dkrx!|D]\} } t|| |\}} | s|j| \} } d| t| | f}n+|| krtt d| nd}|dk r+||kr+||kr+|| kr| }n|rn|j |qnqU|dk rY|j ||dj |gn|}| }|g}qUW|dk r|j ||dj |gnt ||\}}n6t |j}tjtj|tj|}||fS(sGiven a base manifest text as a bytearray and a list of changes relative to that text, compute a delta that can be used by revlog. Riis%s%s%s s!failed to remove %s from manifestN(RR tbufferR{Rt_msearchRxRtAssertionErrorRRRt _addlistdeltat bytearrayRjRttextdiff(R&tbasetchangestdeltatdstarttdendtdlineRStaddbufRttodeleteRTthR!Rt deltatextt arraytext((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt fastdelta%sD   $   "  "N("R/R0R'RYR,RsRyt__bool__R_RQR\R(RrR|RRt propertycacheRRRRRRRORnRRR7R`RRRkRjR(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRwts:                $         c @s7fd}|s"||fSt|s=}nx||kr||d}|}x1|dkr|d|!dkr|d8}qcW||d}t||!|kr||ddd}q@|}q@W||d}||!}||kr)||dd}||dfS||fSdS( sEreturn a tuple (start, end) that says where to find s within m. If the string is found m[start:end] are the line containing that string. If start == end the string was not found and they indicate the proper sorted insertion point. m should be a buffer, a memoryview or a byte string. s is a byte stringc@s8x1|kr3||d!|kr3|d7}qW|S(Ni((RdRu(tlenmR(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytadvancecs&iiis si(N(RRV( RR;tlothiRtmidRSRTRZ((RRs8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRZs*    &   cC@sRxK|D]C}d|ks%d|krtjtdtj|qqWdS(s'Check filenames for illegal characters.s s s)'\n' and '\r' disallowed in filenames: %rN(Rt StorageErrorRR tbytestr(RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs   cC@sd}t}xG|D]?\}}}||||!7}|rO|t|7}n|}qW|||7}djd|D}||fS(NiRcs@s:|]0\}}}tjd||t||VqdS(s>lllN(tstructtpackR(R}RSRTtcontent((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys s(RR(taddlistRtcurrentpositiont newaddlistRSRTRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs    cC@s@d|kr2|jdd\}}|d|fSd|fSdS(Nt/iR(R(RRtsubpath((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt _splittopdirs cC@sdS(N(R(R;((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytst treemanifestcB@seZdddZdZdZdZdZdZdZdZ e Z d Z d Z d Z d Zd ZdZdZeZdZdZdZdZd-dZdZdZdZdZdZdZdZdZ d-dZ!e"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d-e*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d-d,Z2RS(.RcC@s||_t|_t|_t|_t|_i|_i|_ i|_ i|_ |r|d}|j ||t |_ndS(NcS@stddS(Ns4treemanifest constructor only accepts flat manifests(R(tsubdirtsubm((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt readsubtrees(t_dirRt_nodet_noopt _loadfunct _copyfuncROt_dirtyRt _lazydirst_filest_flagstparseRN(R&RRjR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR's          cC@s |j|S(N(R(R&tpath((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_subpathscC@sw|j}x^|jjD]M\}\}}}}|rS|||j||scs@s|]}|jVqdS(N(R(R}R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys s(RRRtanyRRORR(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs   cC@s;d|jt|jt|jtk|jt|fS(Ns;(RRRtboolRRRtid(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__repr__ scC@s|jS(s}The directory that this tree manifest represents, including a trailing '/'. Empty string for the repo root directory.(R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRscC@s|jS(sThis node of this instance. nullid for unsaved instances. Should be updated when the instance is read or written from a revlog. (R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRzscC@s||_t|_dS(N(RROR(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytsetnodes cc@s|j|jxttj|jj|jjD]`\}}||jkr|j|||j j |dfVq?x|j D] }|VqWq?WdS(NR( RRRt itertoolstchainRRRRRRRk(R&tpRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRk"s  )cc@s|j|jxttj|jj|jjD]Z\}}||jkrq|j||fVq?x%|j D]\}}||fVq~Wq?WdS(N( RRRRRRRRRR(R&RRRtsn((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR-s  cc@s~|j|jxcttj|j|jD]C}||jkrY|j|Vq3x|j|D] }|VqgWq3WdS(N(RRRRRRRR(R&RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRr:s  %cC@st|jS(N(R{Rr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR|DscC@s |jS(N(Rr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(GscC@sw|dkrtS|jt|\}}|rf|j|||jkrRtS|j|j|S||jkSdS(N(RRORRRRRQR(R&RRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQJs   cC@sp|jt|\}}|rY|j|||jkrB|S|j|j||S|jj||SdS(N(RRRRRR(R&RRRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRYs  cC@sR|jt|\}}|rC|j||j|j|S|j|SdS(N(RRRRRYR(R&RRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRYes   cC@s|jt|\}}|rV|j|||jkrBdS|j|j|S||jkst||jkrxdS|jj|dSdS(NR(RRRRR7RRR(R&RRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR7os  cC@sg|jt|\}}|rC|j||j|j|S|j||jj|dfSdS(NR(RRRRR,RRR(R&RRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR,}s   cC@s|jt|\}}|rf|j||j|j||j|jr|j|=qn&|j|=||jkr|j|=nt|_ dS(N( RRRRR\RRRRNR(R&RRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\s    cC@s|jt|\}}|rw|j|||jkr]t|j||j|s (RRRRR`tdictRR(R;tsdirsRiR(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs  (RRRRRRR(R&R`R((R&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`s      c@sm|r>|j r>j|}|j|}|j|Stfd|S(s7Set of files in this manifest that are not in the otherc@s|j|jkr*|j r*|j r*dS|j|jj||x\|jjD]K\}}||jkr|j|}||q^j|jq^Wx9|jD].}||jkrj |j |qqWdS(N( RRRRRRtupdateRrRtaddR(RRRiRRlRo(t _filesnotinRR&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs&   (RRRR(R&RlRR((RRR&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs   cC@s tj|S(N(R R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_alldirsscC@s|jS(N(R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRscC@s||jt|\}}|rV|j|||jkrR|j|j|StS|d}||jkp{||jkS(NR(RRRRRROR(R&RttopdirRtdirslash((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs   cc@s|jr,xt|D] }|VqWdSt|j}x8|j|D]'}||krp|j|n|VqNW|jdx6t|D](}|j|s|j |dqqWdS(sGenerates matching file names. Equivalent to manifest.matches(match).iterkeys(), but without creating an entirely new manifest. It also reports nonexistent files by marking them bad with match.bad(). NR( RRRRt_walkRRRRRR(R&RRRRo((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs     cc@s|j|jd pd}|s&dS|j|j|}xtt|jt|jD]{}||jkr|j|}||r|Vqqb| s|d |krbx&|j|j |D] }|VqWqbqbWdS(s5Recursively generates matching file names for walk().iRN( tvisitchildrensetRRRRR{RRRR(R&RRRtfullpR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs )  cC@s#|jr|jS|j|S(s6generate a new manifest filtered by the match argument(RR`t_matches(R&R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR-s  c C@st|j|jd pd}|dkr2|jSt|j}|sK|S|jx|jD]}|dkr||krq_n|j|}||sq_n|j||j|<||jkr_|j||j| manifest data These are written in reverse cache order (oldest to newest). cC@s5tt|j|t|_t|_d|_dS(N(tsuperRR'RORt_readRt_opener(R&tmax((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR's  c C@s|js|jdkrdSy|jd}tt|j}xtr|jd}t|dkrqPny#t j d|jdd}Wnt j k rPnXt |j|}t||krPn|||qFWWdQXWnt k rnXt|_t|_dS(NRis>Lii(RRRRRR_RNR RRtunpackRRtIOErrorROR(R&tfpRRzRR^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR s* #  c C@s|j s|jdkrdS|jdddtdt}|jj}x}tr|j|jkr|j|j|jt j dt |j |j|j n||jkrPn|j}qMWWdQXdS(NRtwt atomictempt checkambigs>L( RRRRNt_headRRFt_cachetwriteRRRR^(R&RRz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR$s  "cC@s)|js|jntt|jS(N(RR RRRs(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs*s  cC@s,|js|jntt|j|S(N(RR RRRQ(R&R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQ/s  cC@s)|js|jntt|jS(N(RR RRR((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(4s  cC@s_|js|jn|jj||jk }tt|j|}|r[t|_ n|S(N( RR R#RR"RRRYRNR(R&RtsetdirtyR^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRY9s   cC@s<|js|jntt|j||t|_dS(N(RR RRR_RNR(R&RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_Cs  cC@s9|js|jntt|j|t|_dS(N(RR RRR\RNR(R&R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\Is  cC@s2|js|jntt|j|d|S(NR(RR RRR(R&RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyROs  cC@s<tt|j|r/t|_|jnt|_dS(N(RRtclearRNRR$ROR(R&tclear_persisted_data((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR&Ts   N(R/R0t__doc__R'R R$RsRQR(RYR_R\RRROR&(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs          tmanifestrevlogcB@seZdZdd"d"edZdZedZedZ dZ d"d"dZ dZ d Z d Zd Zd Zd ZdZdZdZdZd"edZdZdZdZd"eeedZd"dZdZdZdZdZdZ eeeeedZ!edZ"e"j#dZ"ed Z$e$j#d!Z$RS(#snA revlog that stores manifest texts. This is responsible for caching the full-text manifest contents. Rc C@s(d}t}t|dd }|d k rQ|jd|}|jdt}n|pZ||_t||_|rxn|d krd}|rd||}qn||_|r||_ni|d6|_t j ||dt | d t |_ |j j |_ |j j|_|j j|_d S( sConstructs a new manifest revlog `indexfile` - used by extensions to have two manifests at once, like when transitioning between flatmanifeset and treemanifests. `treemanifest` - used to indicate this is a tree manifest revlog. Opener options can also be used to make this a tree manifest revlog. The opener option takes precedence, so if it is set to True, we ignore whatever value is passed in to the constructor. itoptionstmanifestcachesizeRs 00manifest.ismeta/RR!tmmaplargeindexN(ROtgetattrRRt _treeondiskRt_fulltextcachettreet _dirlogcacheR RRNt_revlogRDtversiont _generaldelta( R&topenerR0t dirlogcachet indexfileRt cachesizetoptiontreemanifesttopts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'`s0      c@stj|dsdS|j|j_tj|tj|fd}|j|jdk r}|j |ndS(s1Persist the manifestfulltextcache on lock releaset_lockrefNc@s[}}|dks*|dkr.dS|jjd|k rJdS|jjdS(NR(Rt manifestlogt getstorageR/R$(trepoR&(tmanifestrevlogreftreporef(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytpersistmanifestcaches  ( R t safehasattrtcachevfsR/Rtweakreftreft _currentlockR;Rt _afterlock(R&R>RA((R?R@s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_setupmanifestcachehookss cC@s|jS(N(R/(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt fulltextcachescC@s7|jj|jjd|i||j6|_dS(NR'(R2t clearcachesR/R&R0R1(R&R'((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRJs cC@sT|r n||jkrIt|j||jd|j}||j|t rootstoretusetreemanifestR8R:((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'gs    cC@s|jd|S(sgRetrieves the manifest instance for the given node. Throws a LookupError if not found. R(R(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRY|scC@sd||jj|dkr*|j||S|jjse|jj|d pOdset||Sn|r|jjr|r|j|j |nt |||}q t j t d|nF|r|jj |n|jrt |d|}nt||}|tkr`|jj|}|sStj|j}||j|R?t lazymanifesttAttributeErrort implementert imanifestdictRwRRRRRRRRRtimanifeststorageR)t imanifestlogR<timanifestrevisionwritableRtimanifestrevisionstoredRRRRRR(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyts`    "4        (   GmXOu