§
    ¢”j#  ã                   óÜ  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZmZmZ d dlmZ ddlmZ d	ed
ededeee                  deee                  dedededeeeeeeef         fd„Zd	ed
edeeeeef         fd„Zdededededeee                  deee                  deddfd„Zdededeee                  deee                  def
d„Zed	ed
edeee                  deee                  dedededeeeeeeeef                  fd„¦   «         Zd	ed
edeee                  deee                  dedededeeeeeeegee         f         dee         fd„Z	 	 	 	 	 	 d'd	ed
ed"edeee                  deee                  dedededee         fd#„Z	 	 	 	 	 d(d$ed%ee         d	ed
edeee                  deee                  dedededee         fd&„Z dS ))é    N)Úcontextmanager)Úunified_diff)ÚPoolÚ	cpu_count)ÚAnyÚCallableÚIterableÚIteratorÚListÚOptionalÚTextÚTuple)ÚTTFonté   )Úget_file_modtimeÚ
filepath_aÚ
filepath_bÚ
tmpdirpathÚinclude_tablesÚexclude_tablesÚfont_number_aÚfont_number_bÚuse_multiprocessÚreturnc           	      ó*  — t          | |¦  «        \  }}	}
}t          ||¬¦  «        }t          |	|¬¦  «        }t          j                             |d¦  «        }t          j                             |d¦  «        }t          |||||||¦  «         |||
|||	fS )N)Ú
fontNumberzleft.ttxz	right.ttx)Ú_get_pre_post_pathsr   ÚosÚpathÚjoinÚ_mp_save_ttx_xml)r   r   r   r   r   r   r   r   Úpost_pathnameÚpostpathÚpre_pathnameÚprepathÚtt_leftÚtt_rightÚleft_ttxpathÚright_ttxpaths                   úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/diff/diff.pyÚ_get_fonts_and_save_xmlr+      s®   € õ 6IØ�Jñ6ô 6Ñ2€M�8˜\¨7õ �W¨Ð7Ñ7Ô7€GÝ�h¨=Ð9Ñ9Ô9€HÝ”7—<’< 
¨JÑ7Ô7€LÝ”G—L’L ¨[Ñ9Ô9€MÝØØØØØØØñô ð ð ˜¨°g¸}ÈhÐVÐVó    c                 ó   — | }|}| }|}||||fS ©N© )r   r   r%   r#   r$   r"   s         r*   r   r   2   s'   € ð €GØ€HØ€LØ€MØ˜( L°'Ð9Ð9r,   r&   r'   r(   r)   c                 ó  — |rdt          ¦   «         dk    rR| |||f||||fg}t          d¬¦  «        5 }|                     t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S t          | |||¦  «         t          ||||¦  «         d S )Nr   é   )Ú	processes)r   r   ÚstarmapÚ_ttfont_save_xml)	r&   r'   r(   r)   r   r   r   Úmp_args_listÚpools	            r*   r!   r!   =   só   € ð ð R�I™KœK¨!šO˜Oð �l N°NÐCØ�} n°nÐEð
ˆõ ˜AÐÑÔð 	9 $Ø�LŠLÕ)¨<Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9õ 	˜ ,°ÀÑOÔOÐOÝ˜ =°.À.ÑQÔQÐQÐQÐQs   ±AÁAÁ!AÚttfÚfilepathc                 ó6   — |                       |||¬¦  «         dS )z;Writes TTX specification formatted XML to disk on filepath.)ÚtablesÚ
skipTablesT)ÚsaveXML)r7   r8   r   r   s       r*   r4   r4   Y   s!   € ð ‡K‚K� ¸N€KÑKÔKÐKØˆ4r,   c              #   ó’   K  — t          j        ¦   «         5 }t          | |||||||¦  «        V — d d d ¦  «         d S # 1 swxY w Y   d S r.   )ÚtempfileÚTemporaryDirectoryr+   )r   r   r   r   r   r   r   r   s           r*   Ú_saved_ttx_filesr@   d   s¬   è è € õ 
Ô	$Ñ	&Ô	&ð 

¨*Ý%ØØØØØØØØñ	
ô 	
ð 		
ð 		
ð 		
ð

ð 

ð 

ñ 

ô 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

øøøð 

ð 

ð 

ð 

ð 

ð 

s   –<¼A ÁA Úcreate_differc           	   #   ó    K  — t          | ||||||¦  «        5 \  }}	}
}}} |||	|
|||¦  «        E d {V —† d d d ¦  «         d S # 1 swxY w Y   d S r.   )r@   )r   r   r   r   r   r   r   rA   r(   r)   r$   r%   r"   r#   s                 r*   Ú_diff_with_saved_ttx_filesrC   {   sç   è è € õ 
ØØØØØØØñ
ô 
ð 
ñ
ØØØØØØà �=ØØØØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð!
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ˜AÁAÁ
Aé   éÿÿÿÿTÚcontext_linesc              #   óÈ   ‡K  — dt           dt           dt           dt           dt           dt           dt          t                    fˆfd„}t          | |||||||¦  «        E d	{V —† d	S )
aª  Performs a unified diff on a TTX serialized data format dump of font binary data using
    a modified version of the Python standard libary difflib module.

    filepath_a: (string) pre-file local file path
    filepath_b: (string) post-file local file path
    context_lines: (int) number of context lines to include in the diff (default=3)
    include_tables: (list of str) Python list of OpenType tables to include in the diff
    exclude_tables: (list of str) Python list of OpentType tables to exclude from the diff
    use_multiprocess: (bool) use multi-processor optimizations (default=True)

    include_tables and exclude_tables are mutually exclusive arguments.  Only one should
    be defined

    :returns: Generator of ordered diff line strings that include newline line endings
    :raises: KeyError if include_tables or exclude_tables includes a mis-specified table
    that is not included in filepath_a OR filepath_b
    r(   r)   r$   r%   r"   r#   r   c           	   3   ól  •K  — t          | ¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        5 }|                     ¦   «         }	d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }
t          |¦  «        }t          ||	|||
|‰¬¦  «        E d {V —† d S )N)Ún)ÚopenÚ	readlinesr   r   )r(   r)   r$   r%   r"   r#   ÚffÚ	fromlinesÚtfÚtolinesÚfromdateÚtodaterF   s               €r*   Ú_create_unified_diffz$u_diff.<locals>._create_unified_diffÂ   sS  øè è € õ �,ÑÔð 	' 2ØŸš™œˆIð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'å�-Ñ Ô ð 	% BØ—l’l‘n”nˆGð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ $ GÑ,Ô,ˆÝ! (Ñ+Ô+ˆåØØØØØØØð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
s   “4´8»8ÁA/Á/A3Á6A3N©r   r	   rC   )	r   r   rF   r   r   r   r   r   rR   s	     `      r*   Úu_diffrT   ¦   s¿   øè è € ð8
Ýð
åð
õ ð
õ ð	
õ
 ð
õ ð
õ 
•$Œð
ð 
ð 
ð 
ð 
ð 
õ4 *ØØØØØØØØñ	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r,   Ú	diff_toolÚ	diff_argsc	              #   óÌ   ‡ ‡K  — dt           dt           dt           dt           dt           dt           dt          t                    fˆˆ fd„}	t          ||||||||	¦  «        E d	{V —† d	S )
a'  Performs a unified diff on a TTX serialized data format dump of font binary data using
    an external diff executable that is requested by the caller via `command`

    diff_tool: (string) command line executable string
    diff_args: (list of strings) arguments for the diff tool
    filepath_a: (string) pre-file local file path
    filepath_b: (string) post-file local file path
    include_tables: (list of str) Python list of OpenType tables to include in the diff
    exclude_tables: (list of str) Python list of OpentType tables to exclude from the diff
    use_multiprocess: (bool) use multi-processor optimizations (default=True)

    include_tables and exclude_tables are mutually exclusive arguments.  Only one should
    be defined

    :returns: Generator of ordered diff line strings that include newline line endings
    :raises: KeyError if include_tables or exclude_tables includes a mis-specified table
    that is not included in filepath_a OR filepath_b
    :raises: IOError if exception raised during execution of `command` on TTX files
    r(   r)   Ú_pre_pathnameÚ_prepathÚ_post_pathnameÚ	_postpathr   c              3   óê   •K  — ‰g‰
z   | |gz   }t          j        |t           j        t           j        d¬¦  «        }|j        D ]}|V — Œ|j                             ¦   «         }	|	rt          |	¦  «        ‚d S )NÚutf8)ÚstdoutÚstderrÚencoding)Ú
subprocessÚPopenÚPIPEr^   r_   ÚreadÚIOError)r(   r)   rX   rY   rZ   r[   ÚcommandÚprocessÚlineÚerrrV   rU   s             €€r*   Ú_create_external_diffz0run_external_diff.<locals>._create_external_diff  s•   øè è € ð �+ 	Ñ)¨\¸=Ð,IÑIˆÝÔ"ØÝ”?Ý”?Øð	
ñ 
ô 
ˆð ”Nð 	ð 	ˆDØˆJˆJˆJˆJØŒn×!Ò!Ñ#Ô#ˆØð 	Ý˜#‘,”,Ðð	ð 	r,   NrS   )
rU   rV   r   r   r   r   r   r   r   rj   s
   ``        r*   Úrun_external_diffrk   è   sÅ   øøè è € ð>Ýðåðõ ðõ ð	õ
 ðõ ðõ 
•$Œðð ð ð ð ð ð õ, *ØØØØØØØØñ	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r,   )rD   NNrE   rE   T)NNrE   rE   T)!r   ra   r>   Ú
contextlibr   Údifflibr   Úmultiprocessingr   r   Útypingr   r   r	   r
   r   r   r   r   ÚfontTools.ttLibr   Úutilsr   ÚintÚboolr+   r   r!   r4   r@   rC   rT   rk   r/   r,   r*   ú<module>rt      sá  ðØ 	€	€	€	Ø Ð Ð Ð Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qà "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #ðWØðWàðWð ðWð ˜T $œZÔ(ð	Wð
 ˜T $œZÔ(ðWð ðWð ðWð ðWð ˆ4��t˜T 4¨Ð-Ô.ðWð Wð Wð Wð<:Øð:àð:ð ˆ4��t˜TÐ!Ô"ð:ð :ð :ð :ðRØðRàðRð ðRð ð	Rð
 ˜T $œZÔ(ðRð ˜T $œZÔ(ðRð ðRð 
ðRð Rð Rð Rð8Ø	ðàðð ˜T $œZÔ(ðð ˜T $œZÔ(ð	ð
 
ðð ð ð ð ð
Øð
àð
ð ˜T $œZÔ(ð
ð ˜T $œZÔ(ð	
ð
 ð
ð ð
ð ð
ð ˆe�D˜$  d¨D°$Ð6Ô7Ô8ð
ð 
ð 
ñ „ð
ð,!
Øð!
àð!
ð ˜T $œZÔ(ð!
ð ˜T $œZÔ(ð	!
ð
 ð!
ð ð!
ð ð!
ð ˜T 4¨¨t°T¸4Ð@À(È4Ä.ÐPÔQð!
ð ˆd„^ð!
ð !
ð !
ð !
ð\ Ø+/Ø+/ØØØ!ð?ð ?Øð?àð?ð ð?ð ˜T $œZÔ(ð	?ð
 ˜T $œZÔ(ð?ð ð?ð ð?ð ð?ð ˆd„^ð?ð ?ð ?ð ?ðN ,0Ø+/ØØØ!ð>ð >Øð>à�DŒzð>ð ð>ð ð	>ð
 ˜T $œZÔ(ð>ð ˜T $œZÔ(ð>ð ð>ð ð>ð ð>ð ˆd„^ð>ð >ð >ð >ð >ð >r,   