Critics have remarked that those four worthies were truly peerless throughout the ages; yet the present falls short of the past—the ancients favored unadorned simplicity, whereas the moderns prefer refined elegance. Styles of substance and ornament rise and fall in succession, shifting with the changing mores of the times; such evolution is simply the natural order of things. The ideal lies in honoring antiquity without clashing with the present, and embracing modernity without succumbing to its flaws—embodying that perfect balance of substance and refinement that defines the true gentleman. There is surely no need to abandon a carved palace in favor of a cave dwelling, or to trade a jade carriage for a primitive cart with solid wooden wheels.🌌 SpectraShell

🌌 SpectraShell

Current path: lib64/python3.6/__pycache__/



⬆️ Go up: /lib64/python3.6

📄 Viewing: difflib.cpython-36.opt-2.pyc

3


 \�I�@s4dddddddddd	d
dgZdd
lmZddlmZedd�Zdd�ZGdd�d�Z	d7dd�Z
dd�ZGdd�d�Zddl
Z
e
jd�jfdd�Zd8dd�Zdd�Zd9d"d�Zd#d$�Zd:d%d�Zd&d'�Zd;d*d	�Zdefd+d�Zddefd,d-�Zd.Zd/Zd0Zd1ZGd2d
�d
e�Z[
d3d�Z d4d5�Z!e"d6k�r0e!�dS)<�get_close_matches�ndiff�restore�SequenceMatcher�Differ�IS_CHARACTER_JUNK�IS_LINE_JUNK�context_diff�unified_diff�
diff_bytes�HtmlDiff�Match�)�nlargest)�
namedtupleza b sizecCs|rd||SdS)Ng@g�?�)�matches�lengthrr�/usr/lib64/python3.6/difflib.py�_calculate_ratio&src@speZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�ZdS)rN�TcCs(||_d|_|_||_|j||�dS)N)�isjunk�a�b�autojunk�set_seqs)�selfrrrrrrr�__init__�s;zSequenceMatcher.__init__cCs|j|�|j|�dS)N)�set_seq1�set_seq2)rrrrrrr�s	
zSequenceMatcher.set_seqscCs$||jkrdS||_d|_|_dS)N)r�matching_blocks�opcodes)rrrrrr�s
zSequenceMatcher.set_seq1cCs2||jkrdS||_d|_|_d|_|j�dS)N)rrr �
fullbcount�_SequenceMatcher__chain_b)rrrrrr�s
zSequenceMatcher.set_seq2cCs�|j}i|_}x*t|�D]\}}|j|g�}|j|�qWt�|_}|j}|r�x"|j�D]}||�r\|j	|�q\Wx|D]
}||=q|Wt�|_
}t|�}	|jr�|	dkr�|	dd}
x*|j
�D]\}}t|�|
kr�|j	|�q�Wx|D]
}||=q�WdS)N���d�)r�b2j�	enumerate�
setdefault�append�set�bjunkr�keys�addZbpopular�lenr�items)rrr&�i�elt�indicesZjunkrZpopular�nZntestZidxsrrrZ	__chain_b)s,



zSequenceMatcher.__chain_bcCsN|j|j|j|jjf\}}}}||d}	}
}i}g}
x�t||�D]�}|j}i}xn|j|||
�D]Z}||krpqb||krzP||dd�d}||<||krb||d||d|}	}
}qbW|}qBWxb|	|k�r*|
|k�r*|||
d��r*||	d||
dk�r*|	d|
d|d}	}
}q�WxX|	||k�r�|
||k�r�|||
|��r�||	|||
|k�r�|d7}�q.Wxb|	|k�r�|
|k�r�|||
d��r�||	d||
dk�r�|	d|
d|d}	}
}�q�WxV|	||k�r@|
||k�r@|||
|��r@||	|||
|k�r@|d}�q�Wt|	|
|�S)Nr
r%)rrr&r+�__contains__�range�getr)r�alo�ahi�blo�bhirrr&ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr0Zj2lengetZnewj2len�j�krrr�find_longest_matchPsB8$ 	"z"SequenceMatcher.find_longest_matchcCs�|jdk	r|jSt|j�t|j�}}d|d|fg}g}x�|r�|j�\}}}}|j||||�\}	}
}}|r:|j|�||	kr�||
kr�|j||	||
f�|	||kr:|
||kr:|j|	|||
||f�q:W|j�d}
}}g}x^|D]V\}}}|
||k�r|||k�r||7}q�|�r2|j|
||f�|||}
}}q�W|�r\|j|
||f�|j||df�tt	t
j|��|_|jS)Nr
)rr.rr�popr=r)�sort�list�mapr�_make)r�la�lbZqueuerr7r8r9r:r0r;r<�x�i1�j1Zk1Znon_adjacent�i2�j2Zk2rrr�get_matching_blocks�s8


z#SequenceMatcher.get_matching_blockscCs�|jdk	r|jSd}}g|_}x�|j�D]�\}}}d}||krP||krPd}n||kr^d}n||krjd}|r�|j|||||f�||||}}|r,|jd||||f�q,W|S)Nr
r�replace�delete�insert�equal)r rJr))rr0r;Zanswer�ai�bj�size�tagrrr�get_opcodess$

zSequenceMatcher.get_opcodes�c

csr|j�}|sdg}|dddkrZ|d\}}}}}|t|||�|t|||�|f|d<|dddkr�|d\}}}}}||t|||�|t|||�f|d<||}g}	x�|D]�\}}}}}|dko�|||k�r(|	j||t|||�|t|||�f�|	Vg}	t|||�t|||�}}|	j|||||f�q�W|	�rnt|	�dk�ob|	dddk�rn|	VdS)NrNr
r%)rNr
r%r
r%���rUrU)rS�max�minr)r.)
rr3ZcodesrRrFrHrGrIZnn�grouprrr�get_grouped_opcodes<s(&&((z#SequenceMatcher.get_grouped_opcodescCs0tdd�|j�D��}t|t|j�t|j��S)Ncss|]}|dVqdS)r%NrUr)�.0Ztriplerrr�	<genexpr>�sz(SequenceMatcher.ratio.<locals>.<genexpr>)�sumrJrr.rr)rrrrr�rationszSequenceMatcher.ratiocCs�|jdkr8i|_}x"|jD]}|j|d�d||<qW|j}i}|jd}}xH|jD]>}||�rl||}n|j|d�}|d||<|dkrV|d}qVWt|t|j�t|j��S)Nr
r%)r!rr6r4rrr.)rr!r1ZavailZavailhasrZnumbrrr�quick_ratio�s



zSequenceMatcher.quick_ratiocCs*t|j�t|j�}}tt||�||�S)N)r.rrrrW)rrCrDrrr�real_quick_ratio�sz SequenceMatcher.real_quick_ratio)NrrT)rT)�__name__�
__module__�__qualname__rrrrr"r=rJrSrYr]r^r_rrrrr+sl
@,'nG7
2rT�333333�?cCs�|dkstd|f��d|ko(dkns<td|f��g}t�}|j|�xL|D]D}|j|�|j�|krV|j�|krV|j�|krV|j|j�|f�qVWt||�}dd�|D�S)Nr
zn must be > 0: %rgg�?z cutoff must be in [0.0, 1.0]: %rcSsg|]\}}|�qSrr)rZZscorerErrr�
<listcomp>�sz%get_close_matches.<locals>.<listcomp>)	�
ValueErrorrrrr_r^r]r)�	_nlargest)ZwordZ
possibilitiesr3�cutoff�result�srErrrr�s



cCs4dt|�}}x ||kr.|||kr.|d7}qW|S)Nr
r%)r.)�line�chr0r3rrr�_count_leading�s
rlc@sFeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)rNcCs||_||_dS)N)�linejunk�charjunk)rrmrnrrrrMszDiffer.__init__c
cs�t|j||�}x�|j�D]�\}}}}}|dkrD|j||||||�}	n\|dkr^|jd|||�}	nB|dkrx|jd|||�}	n(|dkr�|jd|||�}	ntd|f��|	EdHqWdS)	NrKrL�-rM�+rN� zunknown tag %r)rrmrS�_fancy_replace�_dumpre)
rrr�cruncherrRr7r8r9r:�grrr�comparedszDiffer.compareccs*x$t||�D]}d|||fVqWdS)Nz%s %s)r5)rrRrE�lo�hir0rrrrs�szDiffer._dumpc
csr||||kr2|jd|||�}|jd|||�}n |jd|||�}|jd|||�}x||fD]}	|	EdHq\WdS)Nrpro)rs)
rrr7r8rr9r:�first�secondrurrr�_plain_replace�szDiffer._plain_replaceccsHd\}}t|j�}	d\}
}x�t||�D]�}||}
|	j|
�xxt||�D]j}||}||
krp|
dkrH||}
}qH|	j|�|	j�|krH|	j�|krH|	j�|krH|	j�||}}}qHWq&W||k�r�|
dkr�|j||||||�EdHdS|
|d}}}nd}
|j	||||||�EdH||||}}|
dk�rd}}|	j
||�x�|	j�D]�\}}}}}||||}}|dk�r�|d|7}|d|7}nb|dk�r�|d|7}nJ|d	k�r�|d
|7}n2|dk�r�|d|7}|d|7}ntd
|f���qTW|j
||||�EdHn
d|V|j	||d|||d|�EdHdS)N�G�z��?��?g�?rrK�^rLrorMrprNrqzunknown tag %rz  r%)r|r})NN)rrnr5rrr_r^r]r{�
_fancy_helperrrSre�_qformat)rrr7r8rr9r:Z
best_ratiorgrtZeqiZeqjr;rPr0rOZbest_iZbest_jZaeltZbelt�atags�btagsrRZai1Zai2Zbj1Zbj2rCrDrrrrr�sX










zDiffer._fancy_replaceccsbg}||kr<||kr*|j||||||�}qT|jd|||�}n||krT|jd|||�}|EdHdS)Nrorp)rrrs)rrr7r8rr9r:rurrrr�szDiffer._fancy_helperccs�tt|d�t|d��}t|t|d|�d��}t|t|d|�d��}||d�j�}||d�j�}d|V|r�dd||fVd|V|r�dd||fVdS)N�	rqz- z? %s%s
z+ )rWrl�rstrip)rZalineZbliner�r��commonrrrr�
s


zDiffer._qformat)NN)
r`rarbrrvrsr{rrrr�rrrrr�s^
)^Nz
\s*(?:#\s*)?$cCs||�dk	S)Nr)rjZpatrrrr>s� 	cCs||kS)Nr)rkZwsrrrrNscCs:|d}||}|dkr"dj|�S|s.|d8}dj||�S)Nr%z{}z{},{})�format)�start�stop�	beginningrrrr�_format_range_unifiedes
r�r�
ccsht|||||||�d}�xHtd||�j|�D�]0}	|s�d}|rJdj|�nd}
|r\dj|�nd}dj||
|�Vdj|||�V|	d|	d}}
t|d|
d	�}t|d
|
d�}dj|||�Vx�|	D]�\}}}}}|d
k�rx|||�D]}d|Vq�Wq�|dk�r2x |||�D]}d|V�qW|dkr�x |||�D]}d|V�qHWq�Wq.WdS)NFTz	{}rz
--- {}{}{}z
+++ {}{}{}r
r%�rT�z@@ -{} +{} @@{}rNrqrKrLrorMrprU>rKrL>rMrK)�_check_typesrrYr�r�)rr�fromfile�tofile�fromfiledate�
tofiledater3�lineterm�startedrX�fromdate�todatery�last�file1_range�file2_rangerRrFrHrGrIrjrrrr	ps0)

cCsB|d}||}|s|d8}|dkr.dj|�Sdj|||d�S)Nr%z{}z{},{})r�)r�r�r�rrrr�_format_range_context�s
r�ccs�t|||||||�tddddd�}d}	�xztd||�j|�D�]b}
|	s�d}	|rZdj|�nd	}|rldj|�nd	}d
j|||�Vdj|||�V|
d|
d}
}d|Vt|
d
|d�}dj||�Vtdd�|
D���r&xD|
D]<\}}}}}|dkr�x$|||�D]}|||V�q
Wq�Wt|
d|d�}dj||�Vtdd�|
D��r>xH|
D]@\}}}}}|dk�r^x$|||�D]}|||V�q�W�q^Wq>WdS)Nz+ z- z! z  )rMrLrKrNFTz	{}rz
*** {}{}{}z
--- {}{}{}r
r%z***************r�z
*** {} ****{}css |]\}}}}}|dkVqdS)rKrLN>rKrLr)rZrR�_rrrr[szcontext_diff.<locals>.<genexpr>rMrTr�z
--- {} ----{}css |]\}}}}}|dkVqdS)rKrMN>rMrKr)rZrRr�rrrr[srLrU)r��dictrrYr�r��any)rrr�r�r�r�r3r��prefixr�rXr�r�ryr�r�rRrFrHr�rjr�rGrIrrrr�s4,

cGs�|r2t|dt�r2tdt|d�j|df��|rdt|dt�rdtdt|d�j|df��x$|D]}t|t�sjtd|f��qjWdS)Nr
z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)�
isinstance�str�	TypeError�typer`)rr�args�argrrrr�s

r���
c		cs�dd�}	tt|	|��}tt|	|��}|	|�}|	|�}|	|�}|	|�}|	|�}|||||||||�}
x|
D]}|jdd�VqhWdS)NcSsPy|jdd�Stk
rJ}z"dt|�j|f}t|�|�WYdd}~XnXdS)N�ascii�surrogateescapez(all arguments must be bytes, not %s (%r))�decode�AttributeErrorr�r`r�)ri�err�msgrrrr�-szdiff_bytes.<locals>.decoder�r�)r@rA�encode)Zdfuncrrr�r�r�r�r3r�r��linesrjrrrr
"s
cCst||�j||�S)N)rrv)rrrmrnrrrr@s#c#s�ddl}|jd��t||||��ddgf�fdd�	���fdd���fdd�}|�}|dkrj|EdH�n.|d	7}d}�xddg|}	}
d
}xR|d
kr�yt|�\}}
}Wntk
r�dSX|	|}||
|f|
|<|	d	7}	q�W|	|k�r�dV|}n|	}d}	x.|�r.|	|}|	d	7}	|
|V|d	8}�qW|d	}yDx>|�rxt|�\}}
}|�r`|d	}n|d	8}||
|fV�q<WWqztk
�r�dSXqzWdS)Nr
z
(\++|\-+|\^+)cs�||d7<|dkr2|||jd�dd�fS|dkr�|jd�|jd�}}g}|fdd�}�j||�xHt|�D]<\}\}	}
|d|	�d|||	|
�d||
d�}qvW|dd�}n*|jd�dd�}|s�d	}d||d}|||fS)
Nr%r
r��?cSs&|j|jd�d|j�g�|jd�S)Nr%r
)r)rX�span)Zmatch_object�sub_inforrr�record_sub_info�sz3_mdiff.<locals>._make_line.<locals>.record_sub_info��rq)r>�sub�reversed)r�Z
format_key�sideZ	num_lines�textZmarkersr�r��keyZbegin�end)�	change_rerr�
_make_line�s 4z_mdiff.<locals>._make_linec3s�g}d\}}�xlx t|�dkr0|jt�d��qWdjdd�|D��}|jd�rX|}�n�|jd�r��|dd��|dd	�d
fVq�n�|jd�r�|d	8}�|dd�dd
fVq�nl|jd�rވ|dd�d}}|d	d}}�n>|jd��r�|dd��|dd	�d
fVq�n|jd��r8�|dd��|dd	�d
fVqn�|jd��rd|d	8}�|dd�dd
fVqn�|jd��r�|d	7}d�|dd	�d
fVqn�|jd��r�d�|dd	�}}|d	d}}n^|jd��r�|d	7}d�|dd	�d
fVqn2|jd��r�|dd�dd��|dd	�dfVqx|dk�r:|d	7}dV�qWx|dk�rZ|d	8}dV�q>W|jd��rldS||d
fVqWdS) Nr
r��XrcSsg|]}|d�qS)r
r)rZrjrrrrd�sz2_mdiff.<locals>._line_iterator.<locals>.<listcomp>z-?+?r�r%Tz--++ro�--?+�--+�- z-+?z-?+z+--rp�+ �+-rqFr�)r
r
)r�r�r�)r�r��rr�)Nr�T�rr�)r�NT)r.r)�next�join�
startswith)r�Znum_blanks_pendingZnum_blanks_to_yieldri�	from_line�to_line)r��diff_lines_iteratorrr�_line_iterator�sf



$z_mdiff.<locals>._line_iteratorc3s���}gg}}x�xpt|�dks,t|�dkr�yt|�\}}}Wntk
rRdSX|dk	rj|j||f�|dk	r|j||f�qW|jd�\}}|jd�\}}|||p�|fVqWdS)Nr
)r.r��
StopIterationr)r>)Z
line_iterator�	fromlines�tolinesr�r��
found_diffZfromDiffZto_diff)r�rr�_line_pair_iterators

z#_mdiff.<locals>._line_pair_iteratorr%F)NNN)�re�compilerr�r�)r�r��contextrmrnr�r�Zline_pair_iteratorZlines_to_write�indexZcontextLinesr�r�r�r0r)r�r�r�r�r�_mdiffesT"
8X!



r�an
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>
    <meta http-equiv="Content-Type"
          content="text/html; charset=%(charset)s" />
    <title></title>
    <style type="text/css">%(styles)s
    </style>
</head>

<body>
    %(table)s%(legend)s
</body>

</html>aH
        table.diff {font-family:Courier; border:medium;}
        .diff_header {background-color:#e0e0e0}
        td.diff_header {text-align:right}
        .diff_next {background-color:#c0c0c0}
        .diff_add {background-color:#aaffaa}
        .diff_chg {background-color:#ffff77}
        .diff_sub {background-color:#ffaaaa}aZ
    <table class="diff" id="difflib_chg_%(prefix)s_top"
           cellspacing="0" cellpadding="0" rules="groups" >
        <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
        <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
        %(header_row)s
        <tbody>
%(data_rows)s        </tbody>
    </table>a�
    <table class="diff" summary="Legends">
        <tr> <th colspan="2"> Legends </th> </tr>
        <tr> <td> <table border="" summary="Colors">
                      <tr><th> Colors </th> </tr>
                      <tr><td class="diff_add">&nbsp;Added&nbsp;</td></tr>
                      <tr><td class="diff_chg">Changed</td> </tr>
                      <tr><td class="diff_sub">Deleted</td> </tr>
                  </table></td>
             <td> <table border="" summary="Links">
                      <tr><th colspan="2"> Links </th> </tr>
                      <tr><td>(f)irst change</td> </tr>
                      <tr><td>(n)ext change</td> </tr>
                      <tr><td>(t)op</td> </tr>
                  </table></td> </tr>
    </table>c@s�eZdZeZeZeZeZdZdddefdd�Z	dd	d
�dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zddd�ZdS)rr
�NcCs||_||_||_||_dS)N)�_tabsize�_wrapcolumn�	_linejunk�	_charjunk)r�tabsizeZ
wrapcolumnrmrnrrrr�szHtmlDiff.__init__rF�zutf-8)�charsetcCs:|jt|j|j|j||||||d�|d�j|d�j|�S)N)r��numlines)ZstylesZlegend�tabler��xmlcharrefreplace)�_file_templater��_styles�_legend�
make_tabler�r�)rr�r��fromdesc�todescr�r�r�rrr�	make_file�s
zHtmlDiff.make_filecs8�fdd���fdd�|D�}�fdd�|D�}||fS)Ncs6|jdd�}|j�j�}|jdd�}|jdd�jd�S)Nrqr�r�r�)rK�
expandtabsr�r�)rj)rrr�expand_tabs�sz2HtmlDiff._tab_newline_replace.<locals>.expand_tabscsg|]}�|��qSrr)rZrj)r�rrrdsz1HtmlDiff._tab_newline_replace.<locals>.<listcomp>csg|]}�|��qSrr)rZrj)r�rrrdsr)rr�r�r)r�rr�_tab_newline_replace�s
	zHtmlDiff._tab_newline_replacecCs|s|j||f�dSt|�}|j}||ksB||jd�d|krT|j||f�dSd}d}d}xd||kr�||kr�||dkr�|d7}||}|d7}qb||dkr�|d7}d}qb|d7}|d7}qbW|d|�}	||d�}
|r�|	d}	d||
}
|j||	f�|j|d|
�dS)Nr�rTr
rr%r��>)r)r.r��count�_split_line)rZ	data_listZline_numr�rQrVr0r3ZmarkZline1Zline2rrrr�s8

zHtmlDiff._split_lineccs�x�|D]�\}}}|dkr&|||fVq||\}}\}}gg}	}
|j|	||�|j|
||�x@|	sh|
r�|	rx|	jd�}nd}|
r�|
jd�}nd}|||fVq`WqWdS)Nr
rrq)rrq)rrq)r�r>)r�diffs�fromdata�todata�flagZfromlineZfromtextZtolineZtotext�fromlist�tolistrrr�
_line_wrapper;s 

zHtmlDiff._line_wrappercCs�ggg}}}xz|D]r\}}}y4|j|jd|f|���|j|jd|f|���Wn(tk
r||jd�|jd�YnX|j|�qW|||fS)Nr
r%)r)�_format_liner�)rr�r�r��flaglistr�r�r�rrr�_collect_linesWs
zHtmlDiff._collect_linescCsryd|}d|j||f}Wntk
r6d}YnX|jdd�jdd�jdd	�}|jd
d�j�}d|||fS)
Nz%dz
 id="%s%s"r�&z&amp;r�z&gt;�<z&lt;rqz&nbsp;z<<td class="diff_header"%s>%s</td><td nowrap="nowrap">%s</td>)�_prefixr�rKr�)rr�r�Zlinenumr��idrrrr�ls
zHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r�_default_prefixr�)rZ
fromprefix�toprefixrrr�_make_prefix�s

zHtmlDiff._make_prefixcCs�|jd}dgt|�}dgt|�}d\}	}
d}xbt|�D]V\}}
|
r�|
s�d}
|}td||g�}d||	f||<|	d7}	d||	f||<q<d}
q<W|s�dg}dg}dg}d}|r�dg}|}n
d	g}}|ds�d
||d<d|||<|||||fS)
Nr%rr
FTz id="difflib_chg_%s_%d"z"<a href="#difflib_chg_%s_%d">n</a>z2<td></td><td>&nbsp;No Differences Found&nbsp;</td>z(<td></td><td>&nbsp;Empty File&nbsp;</td>z!<a href="#difflib_chg_%s_0">f</a>z#<a href="#difflib_chg_%s_top">t</a>)r
F)r�r.r'rV)rr�r�r�r�r�r��next_id�	next_hrefZnum_chgZ	in_changer�r0r�rrr�_convert_flags�s:

zHtmlDiff._convert_flagsc	CsV|j�|j||�\}}|r"|}nd}t||||j|jd�}|jrL|j|�}|j|�\}	}
}|j|	|
|||�\}	}
}}}
g}d}x`t	t
|��D]P}||dkr�|dkr�|jd�q�|j||
||||	||||
|f�q�W|s�|�rddd|dd|f}nd	}|jt
d	j|�||jd
d�}|jdd
�jdd�jdd�jdd�jdd�S)N)rmrnz1            <tr><td class="diff_next"%s>%s</td>%sz%<td class="diff_next">%s</td>%s</tr>
r
z)        </tbody>        
        <tbody>
z <thead><tr>%s%s%s%s</tr></thead>z!<th class="diff_next"><br /></th>z+<th colspan="2" class="diff_header">%s</th>rr%)Z	data_rows�
header_rowr�z+z<span class="diff_add">z-z<span class="diff_sub">z^z<span class="diff_chg">r�z</span>r�z&nbsp;zV            <tr><td class="diff_next"%s>%s</td>%s<td class="diff_next">%s</td>%s</tr>
)r�r�r�r�r�r�r�r�rr5r.r)�_table_templater�r�r�rK)rr�r�r�r�r�r�Z
context_linesr�r�r�r�rrriZfmtr0rr�rrrr��sJ


zHtmlDiff.make_table)rrFr�)rrFr�)r`rarbr�r�rr�r�rrr�r�r�r�r�r�r�rr�rrrrr�s$7/ccspyddd�t|�}Wn tk
r6td|��YnXd|f}x*|D]"}|dd�|krF|dd�VqFWdS)Nz- z+ )r%r�z)unknown delta choice (must be 1 or 2): %rz  r�)�int�KeyErrorre)ZdeltaZwhichrR�prefixesrjrrrrs
cCsddl}ddl}|j|�S)Nr
)�doctest�difflibZtestmod)rr	rrr�_test,sr
�__main__)rTrc)r�)rrrrrTr�)rrrrrTr�)r�r�r�r�rTr�)#�__all__�heapqrrf�collectionsrZ_namedtuplerrrrrlrr�r��matchrrr�r	r�rr�r
rr�r�r�rr��objectrrr
r`rrrr�<module>s\


0O

H
K
%!	
a 



📁