grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hkEã@s,gd¢ZddlmZddlmZddlmZeddƒZ dd„Z Gd d „d ƒZ d9d d„Z dd„Z Gdd„dƒZddlZe d¡jfdd„Zd:dd„Zdd„Zd;dd„Zd d!„Zd) Úget_close_matchesÚndiffÚrestoreÚSequenceMatcherÚDifferÚIS_CHARACTER_JUNKÚ IS_LINE_JUNKÚ context_diffÚ unified_diffÚ diff_bytesÚHtmlDiffÚMatché)Únlargest)Ú namedtuple)Ú GenericAliasr za b sizecCs|rd||SdS)Ng@çð?©)ÚmatchesÚlengthrrú,/opt/alt/python39/lib64/python3.9/difflib.pyÚ_calculate_ratio's rc@szeZdZddd„Zdd„Zdd „Zd d „Zd d „Zddd„Zdd„Z dd„Z d dd„Z dd„Z dd„Z dd„ZeeƒZdS)!rNÚTcCs(||_d|_|_||_| ||¡dS©N)ÚisjunkÚaÚbÚautojunkÚset_seqs)ÚselfrrrrrrrÚ__init__xs; zSequenceMatcher.__init__cCs| |¡| |¡dSr)Úset_seq1Úset_seq2)rrrrrrr¸s zSequenceMatcher.set_seqscCs$||jurdS||_d|_|_dSr)rÚmatching_blocksÚopcodes)rrrrrr Äs zSequenceMatcher.set_seq1cCs2||jurdS||_d|_|_d|_| ¡dSr)rr"r#Ú fullbcountÚ_SequenceMatcher__chain_b)rrrrrr!Þs   zSequenceMatcher.set_seq2c Csè|j}i|_}t|ƒD]\}}| |g¡}| |¡qtƒ|_}|j}|r~| ¡D]}||ƒrV|  |¡qV|D] }||=qrtƒ|_ }t |ƒ} |j rä| dkrä| dd} |  ¡D]\}} t | ƒ| kr´|  |¡q´|D] }||=qØdS)NéÈédé)rÚb2jÚ enumerateÚ setdefaultÚappendÚsetÚbjunkrÚkeysÚaddZbpopularÚlenrÚitems) rrr)ÚiÚeltÚindicesZjunkrZpopularÚnZntestZidxsrrrZ __chain_b s,           zSequenceMatcher.__chain_br cCsT|j|j|j|jjf\}}}}|dur.t|ƒ}|dur>t|ƒ}||d} } } i} g} t||ƒD]€}| j}i}| ||| ¡D]\}||krŒq~||kr˜qÜ||ddƒd}||<|| kr~||d||d|} } } q~|} q`| |k�r@| |k�r@||| dƒ�s@|| d|| dk�r@| d| d| d} } } qâ| | |k�r”| | |k�r”||| | ƒ�s”|| | || | k�r”| d7} �q@| |k�rô| |k�rô||| dƒ�rô|| d|| dk�rô| d| d| d} } } �q”| | |k�rH| | |k�rH||| | ƒ�rH|| | || | k�rH| d} �qôt| | | ƒS©Nr r() rrr)r.Ú __contains__r1ÚrangeÚgetr )rÚaloÚahiÚbloÚbhirrr)ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr3Zj2lengetZnewj2lenÚjÚkrrrÚfind_longest_match1sZ:"ÿþÿþ ÿþ ÿþ z"SequenceMatcher.find_longest_matchcCs||jdur|jSt|jƒt|jƒ}}d|d|fg}g}|rÊ| ¡\}}}}| ||||¡\} } } } | r8| | ¡|| kr–|| kr–| || || f¡| | |kr8| | |kr8| | | || | |f¡q8| ¡d} }}g}|D]V\}}}| ||k�r|||k�r||7}qæ|�r,| | ||f¡|||} }}qæ|�rT| | ||f¡| ||df¡tt t j |ƒƒ|_|jS©Nr ) r"r1rrÚpoprAr,ÚsortÚlistÚmapr Ú_make)rÚlaÚlbZqueuer"r;r<r=r>r3r?r@ÚxÚi1Új1Zk1Z non_adjacentÚi2Új2Zk2rrrÚget_matching_blocks¥s8    z#SequenceMatcher.get_matching_blockscCs°|jdur|jSd}}g|_}| ¡D]€\}}}d}||krN||krNd}n||kr\d}n ||krhd}|r€| |||||f¡||||}}|r*| d||||f¡q*|S)Nr rÚreplaceÚdeleteÚinsertÚequal)r#rOr,)rr3r?ZanswerÚaiÚbjÚsizeÚtagrrrÚ get_opcodesìs$  zSequenceMatcher.get_opcodeséc csn| ¡}|sdg}|dddkrZ|d\}}}}}|t|||ƒ|t|||ƒ|f|d<|dddkr¢|d\}}}}}||t|||ƒ|t|||ƒf|d<||}g} |D]Š\}}}}}|dk�r(|||k�r(|  ||t|||ƒ|t|||ƒf¡| Vg} t|||ƒt|||ƒ}}|  |||||f¡q²| �rjt| ƒdk�rd| dddk�sj| VdS)N)rSr r(r r(r rSéÿÿÿÿr()rXÚmaxÚminr,r1) rr6ZcodesrWrKrMrLrNZnnÚgrouprrrÚget_grouped_opcodes#s(&&(&z#SequenceMatcher.get_grouped_opcodescCs0tdd„| ¡Dƒƒ}t|t|jƒt|jƒƒS)Ncss|]}|dVqdS)rZNr)Ú.0ZtriplerrrÚ kóz(SequenceMatcher.ratio..)ÚsumrOrr1rr)rrrrrÚratioUszSequenceMatcher.ratiocCsª|jdur4i|_}|jD]}| |d¡d||<q|j}i}|jd}}|jD]>}||ƒrf||}n | |d¡}|d||<|dkrP|d}qPt|t|jƒt|jƒƒSr7)r$rr:r8rrr1)rr$r4ZavailZavailhasrZnumbrrrÚ quick_rations         zSequenceMatcher.quick_ratiocCs*t|jƒt|jƒ}}tt||ƒ||ƒSr)r1rrrr\)rrHrIrrrÚreal_quick_ratio‹sz SequenceMatcher.real_quick_ratio)NrrT)r Nr N)rY)Ú__name__Ú __module__Ú __qualname__rrr r!r%rArOrXr^rcrdreÚ classmethodrÚ__class_getitem__rrrrr,sL @ ,' tG7 2 rrYç333333ã?cCs°|dkstd|fƒ‚d|kr*dks:ntd|fƒ‚g}tƒ}| |¡|D]D}| |¡| ¡|krR| ¡|krR| ¡|krR| | ¡|f¡qRt||ƒ}dd„|DƒS)Nr zn must be > 0: %rgrz cutoff must be in [0.0, 1.0]: %rcSsg|] \}}|‘qSrr)r_ZscorerJrrrÚ Èraz%get_close_matches..) Ú ValueErrorrr!r rerdrcr,Ú _nlargest)ZwordZ possibilitiesr6ÚcutoffÚresultÚsrJrrrršs"    ÿ þ rcCsd dd„t||ƒDƒ¡S)Nrcss*|]"\}}|dkr| ¡r|n|VqdS)ú N)Úisspace)r_ÚcZtag_crrrr`Ísÿz$_keep_original_ws..)ÚjoinÚzip)rqZtag_srrrÚ_keep_original_wsËs þrwc@sFeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rNcCs||_||_dSr©ÚlinejunkÚcharjunk)rryrzrrrr*szDiffer.__init__c cs®t|j||ƒ}| ¡D]’\}}}}}|dkrB| ||||||¡} n\|dkr\| d|||¡} nB|dkrv| d|||¡} n(|dkr�| d|||¡} ntd|fƒ‚| EdHqdS) NrPrQú-rRú+rSrrúunknown tag %r)rryrXÚ_fancy_replaceÚ_dumprm) rrrÚcruncherrWr;r<r=r>ÚgrrrÚcompareAszDiffer.compareccs&t||ƒD]}d|||fVq dS)Nz%s %s)r9)rrWrJÚloÚhir3rrrrjsz Differ._dumpc csn||||kr2| d|||¡}| d|||¡}n | d|||¡}| d|||¡}||fD]} | EdHqZdS)Nr|r{)r) rrr;r<rr=r>ÚfirstÚsecondr�rrrÚ_plain_replaceos zDiffer._plain_replaceccs:d\}}t|jƒ} d\} } t||ƒD]Œ} || } |  | ¡t||ƒD]j}||}|| krl| durD|| } } qD|  |¡|  ¡|krD|  ¡|krD|  ¡|krD|  ¡|| }}}qDq$||krò| durà| ||||||¡EdHdS| | d}}}nd} |  ||||||¡EdH||||}}| du�r d}}|   ||¡|   ¡D]¨\}}}}}||||}}|dk�rŒ|d|7}|d|7}nb|dk�r¤|d|7}nJ|d k�r¼|d |7}n2|d k�rà|d |7}|d |7}nt d |fƒ‚�qH|  ||||¡EdHn d|V|  ||d|||d|¡EdHdS)N)g®Gáz®ç?gè?)NNrrrPú^rQr{rRr|rSrrr}ú r()rrzr9r!r rerdrcr‡Ú _fancy_helperrrXrmÚ_qformat)rrr;r<rr=r>Z best_ratioror€ZeqiZeqjr?rUr3rTZbest_iZbest_jZaeltZbeltÚatagsÚbtagsrWZai1Zai2Zbj1Zbj2rHrIrrrr~}s\      ÿ þ         zDiffer._fancy_replaceccsbg}||kr<||kr*| ||||||¡}qT| d|||¡}n||krT| d|||¡}|EdHdS)Nr{r|)r~r)rrr;r<rr=r>r�rrrrŠÛszDiffer._fancy_helperccsXt||ƒ ¡}t||ƒ ¡}d|V|r8d|›d�Vd|V|rTd|›d�VdS)Nú- z? Ú ú+ )rwÚrstrip)rZalineZblinerŒr�rrrr‹çs  zDiffer._qformat)NN) rfrgrhrr‚rr‡r~rŠr‹rrrrrÔsV )^ rNz \s*(?:#\s*)?$cCs ||ƒduSrr)ÚlineZpatrrrrsrú cCs||vSrr)ZchZwsrrrr%srcCs:|d}||}|dkr"d |¡S|s.|d8}d ||¡S©Nr(z{}z{},{}©Úformat©ÚstartÚstopZ beginningrrrrÚ_format_range_unified<s ršrr�ccsPt|||||||ƒd}td||ƒ |¡D�]} |s|d}|rFd |¡nd} |rXd |¡nd} d || |¡Vd || |¡V| d| d} } t| d | d ƒ}t| d | d ƒ}d  |||¡V| D]‚\}}}}}|dkrú|||…D]}d|VqèqÆ|dv�r"|||…D]}d|V�q|dvrÆ|||…D]}d|V�q6qÆq*dS)NFTú {}rú --- {}{}{}z +++ {}{}{}r rZr(érYéz@@ -{} +{} @@{}rSrr>rPrQr{>rRrPr|)Ú _check_typesrr^r–rš)rrÚfromfileÚtofileÚ fromfiledateÚ tofiledater6ÚlinetermÚstartedr]ÚfromdateÚtodater…ÚlastÚ file1_rangeÚ file2_rangerWrKrMrLrNr’rrrr Gs0)  r cCsB|d}||}|s|d8}|dkr.d |¡Sd |||d¡Sr”r•r—rrrÚ_format_range_context�s r«ccs”t|||||||ƒtddddd�}d} td||ƒ |¡D�]R} | sŒd} |rVd |¡nd } |rhd |¡nd } d  || |¡Vd  || |¡V| d | d } }d|Vt| d|dƒ}d ||¡Vtdd„| Dƒƒ�r| D]8\}}}}}|dkrà|||…D]}|||V�qqàt| d|dƒ}d ||¡Vtdd„| Dƒƒr:| D]<\}}}}}|dk�rP|||…D]}|||V�qt�qPq:dS)Nr�rŽz! r‰)rRrQrPrSFTr›rz *** {}{}{}rœr rZz***************r(r�z *** {} ****{}css |]\}}}}}|dvVqdS)>rPrQNr©r_rWÚ_rrrr`Ùrazcontext_diff..rRrYržz --- {} ----{}css |]\}}}}}|dvVqdS)>rRrPNrr¬rrrr`ârarQ)rŸÚdictrr^r–r«Úany)rrr r¡r¢r£r6r¤Úprefixr¥r]r¦r§r…r¨r©rWrKrMr­r’rªrLrNrrrrœs4,  rcGs†|r0t|dtƒs0tdt|dƒj|dfƒ‚|r`t|dtƒs`tdt|dƒj|dfƒ‚|D]}t|tƒsdtd|fƒ‚qddS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)Ú isinstanceÚstrÚ TypeErrorÚtyperf)rrÚargsÚargrrrrŸèsÿÿ rŸraó c cs~dd„} tt| |ƒƒ}tt| |ƒƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}|||||||||ƒ} | D]} |  dd¡VqfdS)Nc SsTz| dd¡WStyN}z(dt|ƒj|f}t|ƒ|‚WYd}~n d}~00dS)NÚasciiÚsurrogateescapez(all arguments must be bytes, not %s (%r))ÚdecodeÚAttributeErrorr´rfr³)rqÚerrÚmsgrrrrºs ÿzdiff_bytes..decoder¸r¹)rErFÚencode) Zdfuncrrr r¡r¢r£r6r¤rºÚlinesr’rrrr ùs r cCst||ƒ ||¡Sr)rr‚)rrryrzrrrrs#rc#s†ddl}| d¡‰t||||ƒ‰ddgf‡fdd„ ‰‡‡fdd„‰‡fdd„}|ƒ}|durj|EdH�n|d 7}d}ddg|} } d } | d urÚzt|ƒ\} } } Wnty¸YdS0| |}| | | f| |<| d 7} qŠ| |krîd V|}n| }d} |�r | |}| d 7} | |V|d 8}qö|d }z@|�rft|ƒ\} } } | �rN|d }n|d 8}| | | fV�q*Wqvt�y~YdS0qvdS) Nr z (\++|\-+|\^+)c sö||d7<|dur2||| d¡dd…fS|dkrÀ| d¡| d¡}}g}|fdd„}ˆ ||¡t|ƒD]<\}\} } |d| …d||| | …d|| d…}qt|dd…}n*| d¡dd…}|sÚd }d||d}|||fS) Nr(r r�ú?cSs&| | d¡d| ¡g¡| d¡S)Nr(r )r,r]Úspan)Z match_objectÚsub_inforrrÚrecord_sub_info‡sz3_mdiff.._make_line..record_sub_infoúúrr)rCÚsubÚreversed) r¿Z format_keyÚsideZ num_linesÚtextZmarkersrÂrÃÚkeyZbeginÚend)Ú change_rerrÚ _make_linefs   2z_mdiff.._make_linec3sng}d\}}t|ƒdkr*| tˆdƒ¡q d dd„|Dƒ¡}| d¡rP|}�nÄ| d¡r|ˆ|dd ƒˆ|dd ƒd fVq �n˜| d ¡r¨|d 8}ˆ|d d ƒdd fVq �nl| d¡rÖˆ|d d ƒd}}|d d }}�n>| d¡�rˆ|dd ƒˆ|dd ƒd fVq �n| d¡�r0ˆ|dd ƒˆ|dd ƒd fVq nä| d ¡�r\|d 8}ˆ|d d ƒdd fVq n¸| d¡�rˆ|d 7}dˆ|dd ƒd fVq nŒ| d¡�r¶dˆ|dd ƒ}}|d d }}n^| d¡�râ|d 7}dˆ|dd ƒd fVq n2| d¡�rˆ|dd…dd ƒˆ|dd ƒdfVq |d k�r0|d 7}dV�q|d k�rL|d 8}dV�q0| d¡�r\dS||d fVq dS)N)r r ržÚXrcSsg|] }|d‘qS)r r©r_r’rrrrl´raz2_mdiff.._line_iterator..z-?+?rÀr r(Tz--++r{)z--?+z--+rŽz-+?z-?+z+--r|)r�z+-rrF)N©rr�T)rÐNT)r1r,ÚnextruÚ startswith)r¿Znum_blanks_pendingZnum_blanks_to_yieldrqÚ from_lineÚto_line)rÍÚdiff_lines_iteratorrrÚ_line_iteratoržsd            $     z_mdiff.._line_iteratorc3s°ˆƒ}gg}}t|ƒdks(t|ƒdkr~zt|ƒ\}}}WntyNYdS0|durf| ||f¡|dur| ||f¡q| d¡\}}| d¡\}}|||p¤|fVqdSrB)r1rÑÚ StopIterationr,rC)Z line_iteratorÚ fromlinesÚtolinesrÓrÔÚ found_diffZfromDiffZto_diff)rÖrrÚ_line_pair_iteratorös   z#_mdiff.._line_pair_iteratorr(F)NNN)ÚreÚcompilerrÑr×)rØrÙÚcontextryrzrÜrÛZline_pair_iteratorZlines_to_writeÚindexZ contextLinesrÚrÓrÔr3r)rÖrÍrÌrÕrÚ_mdiff<sR" 8X !     ràan %(table)s%(legend)s 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 %(header_row)s %(data_rows)s
aõ
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op
c@s„eZdZeZeZeZeZdZdddefdd„Z dd d œd d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zddd„ZdS)r r éNcCs||_||_||_||_dSr)Ú_tabsizeÚ _wrapcolumnÚ _linejunkÚ _charjunk)rÚtabsizeZ wrapcolumnryrzrrrr˜s zHtmlDiff.__init__rFézutf-8)Úcharsetc Cs:|jt|j|j|j||||||d�|d� |d¡ |¡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| dd¡}| ˆj¡}| dd¡}| dd¡ d¡S)NrrrÄú r�)rPÚ expandtabsrâr‘)r’)rrrÚ expand_tabsÎs   z2HtmlDiff._tab_newline_replace..expand_tabscsg|] }ˆ|ƒ‘qSrrrÏ©rõrrrl×raz1HtmlDiff._tab_newline_replace..csg|] }ˆ|ƒ‘qSrrrÏrörrrlØrar)rrØrÙr)rõrrÚ_tab_newline_replaceÄs zHtmlDiff._tab_newline_replacec Cs|s| ||f¡dSt|ƒ}|j}||ksB|| d¡d|krT| ||f¡dSd}d}d}||krÂ||krÂ||dkr–|d7}||}|d7}q`||dkr°|d7}d}q`|d7}|d7}q`|d|…} ||d…} |rò| d} d|| } | || f¡| |d| ¡dS)NrÄrYr rr(rÅú>)r,r1rãÚcountÚ _split_line) rZ data_listZline_numrÉrVr[r3r6ZmarkZline1Zline2rrrrúÛs8        zHtmlDiff._split_linec cs |D]–\}}}|dur$|||fVq||\}}\}}gg} } | | ||¡| | ||¡| sd| r| rt|  d¡}nd}| rˆ|  d¡}nd}|||fVq\qdS)Nr )rrr)rúrC) rÚdiffsÚfromdataÚtodataÚflagZfromlineZfromtextZtolineZtotextÚfromlistÚtolistrrrÚ _line_wrappers     zHtmlDiff._line_wrapperc Cs”ggg}}}|D]t\}}}z8| |jd|g|¢RŽ¡| |jd|g|¢RŽ¡Wn&ty|| d¡| d¡Yn0| |¡q|||fSr7)r,Ú _format_liner³)rrûrÿrÚflaglistrürýrþrrrÚ_collect_lines.s   zHtmlDiff._collect_linescCspzd|}d|j||f}Wnty4d}Yn0| dd¡ dd¡ dd ¡}| d d ¡ ¡}d |||fS) Nz%dz id="%s%s"rú&z&røz>ú%s%s)Ú_prefixr³rPr‘)rrÈrþZlinenumrÉÚidrrrrCs  ÿzHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r()r Ú_default_prefixr)rZ fromprefixÚtoprefixrrrÚ _make_prefixZs  zHtmlDiff._make_prefixcCsô|jd}dgt|ƒ}dgt|ƒ}d\} } d} t|ƒD]V\} } | rŒ| s�d} | } td| |gƒ} d|| f|| <| d7} d|| f|| <q:d} q:|sÆdg}dg}dg}d} |r¼d g}|}n d g}}|dsÚd ||d<d ||| <|||||fS) Nr(r)r Fr Tz id="difflib_chg_%s_%d"z"nFz2 No Differences Found z( Empty File z!fz#t)rr1r*r[)rrÿrrrÞrér Únext_idÚ next_hrefZnum_chgZ in_changer¨r3rþrrrÚ_convert_flagses< ÿ    zHtmlDiff._convert_flagsc CsR| ¡| ||¡\}}|r"|}nd}t||||j|jd�}|jrL| |¡}| |¡\} } } | | | | ||¡\} } } } } g}d}t t | ƒƒD]P}| |dur°|dkrÜ|  d¡qŒ|  || || || || || |f¡qŒ|sè|�rddd|dd|f}nd}|j t d |¡||jd d �}| d d ¡ d d¡ dd¡ dd¡ dd¡S)NrxzV %s%s%s%s r z) z %s%s%s%sz!
z+%srr()Z data_rowsÚ header_rowr°z+zz-zz^zrÅzrór)r r÷ràrärårãrrrr9r1r,Ú_table_templater®rurrP)rrØrÙrðrñrÞréZ context_linesrûrÿrrrr rqZfmtr3rrêrrrrï”sZ ÿ  ÿ   ÿ  üý ÿþýüzHtmlDiff.make_table)rrFrç)rrFrç)rfrgrhrìrírrîr rrròr÷rúrrrr rrïrrrrr ‚s.ÿ ÿÿ 7 /ÿr ccslzdddœt|ƒ}Wn ty6td|ƒd‚Yn0d|f}|D]"}|dd…|vrD|dd…VqDdS)NrŽr�)r(r�z)unknown delta choice (must be 1 or 2): %rr‰r�)ÚintÚKeyErrorrm)ZdeltaZwhichrWÚprefixesr’rrrrãs ÿÿrcCsddl}ddl}| |¡SrB)ÚdoctestÚdifflibZtestmod)rrrrrÚ_testsrÚ__main__)rYrk)r“)rrrrrYr�)rrrrrYr�)rararararYr·)%Ú__all__ÚheapqrrnÚ collectionsrZ _namedtupleÚtypesrr rrrrwrrÜrÝÚmatchrrršr r«rrŸr rràrìrírrîÚobjectr rrrfrrrrÚs`    r 1 A  ÿ I ÿ Lÿ %ÿ   a