o ö]Lb› ã@sPddlmZddlZddlZddlZdd„Zdd„Zdd„Zd d „Zd d „Z dS) é)Úabsolute_importNcCsHdd„| d¡Dƒ}|r"|ddkr| ¡|S|ddd…|d<|S)z0like str.splitlines, but only split on newlines.cSsg|]}|d‘qS)ó ©)Ú.0Úlrrú6/usr/lib/python3/dist-packages/mercurial/pure/bdiff.pyÚ sz!splitnewlines..réÿÿÿÿN)ÚsplitÚpop)ÚtextÚlinesrrrÚ splitnewliness ÿrcCsJd}g}|D]“}|dur|}qd}|\}}} || } || } |\} } }| |}| |}| | krX| ||krW|| ||| |krW|d7}| ||krW|| ||| |ksAn,| | kr„| ||kr„|| ||| |kr„|d7}| ||kr„|| ||| |ksn| ||| |f¡| || |||f}q|dur£| |¡|S)Nré)Úappend)ÚaÚbÚblocksÚprevÚrÚcurrÚshiftÚa1Úb1Úl1Úa1endÚb1endÚa2Úb2Úl2Úa2endÚb2endrrrÚ_normalizeblockss6  $$þ€$$þ r"c Cst|ƒ d¡}t|ƒ d¡}|s#d |¡}|o"t dddt|ƒ¡|Sg}dg}|D] }| |dt|ƒ¡q*t d||¡  ¡}t |||ƒ}d}d}|D]/\} } } d ||| …¡}| |ksa|rt| t d|||| t|ƒ¡|¡| | }| | }qMd |¡S)NTós>lllrr ) ÚbytesÚ splitlinesÚjoinÚstructÚpackÚlenrÚdifflibÚSequenceMatcherÚget_matching_blocksr") rrÚsÚbinÚpÚiÚdÚlaÚlbÚamÚbmÚsizerrrÚbdiff=s(   &  r7cCs<t|ƒ}t|ƒ}t d||¡ ¡}t|||ƒ}dd„|DƒS)NcSs&g|]\}}}||||||f‘qSrr)rr0ÚjÚnrrrr]s&zblocks..)rr*r+r,r")rrÚanÚbnr1rrrrXs  rcCs4|r t dd|¡}|St dd|¡}| dd¡}|S)Ns[ ]+r#ó s r)ÚreÚsubÚreplace)r ÚallwsrrrÚfixws`s þ rA) Ú __future__rr*r=r'rr"r7rrArrrrÚs  #