§
    ‚ØjZ  ã                   óÄ  — d dl mZ 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	Z	d dl
Z
d dlZd dlZd dlmZmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dlm$Z$m%Z%m&Z'm(Z(m)Z* d dl+m,Z,m-Z- e
j.        d	k    o e	j/        d
¦  «        duZ0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5ej6         7                    e
j.        dk    pe0 d¬¦  «        d„ ¦   «         Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=ej6         7                    e
j.        dk    pe0 d¬¦  «        d„ ¦   «         Z>d„ Z?ej6         7                    e
j.        dk    d¬¦  «        d„ ¦   «         Z@d„ ZAej6         7                    e
j.        d	k    d ¬¦  «        ej6         7                     eBed!¦  «         d"¬¦  «        ej6         C                    d#¦  «        ej6         C                    d$¦  «        d%„ ¦   «         ¦   «         ¦   «         ¦   «         ZDd&„ ZEd'„ ZFd(„ ZGd)„ ZHd*„ ZId+„ ZJej6         7                    e
j.        dk    d,¬¦  «        d-„ ¦   «         ZKd.„ ZLej6         M                    d/g d0¢¦  «        d1„ ¦   «         ZNd2„ ZOd3„ ZPd4„ ZQd5„ ZRd6„ ZSd7„ ZTdS )8é    )ÚBytesION)ÚPath)ÚImage)Ú	MagicMockÚpatch)ÚfindfontÚfindSystemFontsÚ	FontEntryÚFontPathÚFontPropertiesÚfontManagerÚ	json_dumpÚ	json_loadÚget_fontÚis_opentype_cff_fontÚMSUserFontDirectoriesÚttfFontPropertyÚ_get_font_alt_namesÚ_get_fontconfig_fontsÚ_normalize_weight)ÚcbookÚft2fontÚpyplotÚ
rc_contextÚfigure)Úsubprocess_run_helperÚsubprocess_run_for_testingÚ
emscriptenzfc-listc                  ó  — t          dd¦  «        } t          dd¦  «        }t          | ¦  «        dk    sJ ‚t          | ¦  «        dk    sJ ‚| j        dk    sJ ‚| j        dk    sJ ‚t          j        t          d¬¦  «        5  d| _        d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  d| _        d d d ¦  «         n# 1 swxY w Y   | dk    sJ ‚| t          dd¦  «        k    sJ ‚| | k    sJ ‚| | k    sJ ‚| |k    sJ ‚| |k     sJ ‚| |k    sJ ‚|| k    sJ ‚|| k    sJ ‚| ddd	i}| |v sJ ‚||          dk    sJ ‚|t          dd¦  «                 dk    sJ ‚||vsJ ‚d|vsJ ‚t          dd
¦  «        |vsJ ‚d S )NÚfooé{   iA  zFontPath('foo', 123)zhas no setter)ÚmatchÚbaré   é   r   )r   ÚstrÚreprÚpathÚ
face_indexÚpytestÚraisesÚAttributeError)ÚfpÚfp2Úds      ú—/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_font_manager.pyÚtest_font_pathr1      sc  € Ý	�%˜Ñ	Ô	€BÝ
�5˜#Ñ
Ô
€CÝˆr‰7Œ7�eÒÐÐÐÝ�‰8Œ8Ð-Ò-Ð-Ð-Ð-ØŒ7�eÒÐÐÐØŒ=˜CÒÐÐÐå	Œ•~¨_Ð	=Ñ	=Ô	=ð ð ØˆŒðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•~¨_Ð	=Ñ	=Ô	=ð ð ØˆŒðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �Š;ˆ;ˆ;ˆ;Ø•˜% Ñ%Ô%Ò%Ð%Ð%Ð%Ø�Š8ˆ8ˆ8ˆ8Ø�Š8ˆ8ˆ8ˆ8Ø�Š9ˆ9ˆ9ˆ9Ø�Š8ˆ8ˆ8ˆ8Ø�Š9ˆ9ˆ9ˆ9Ø�Š8ˆ8ˆ8ˆ8Ø�"Š9ˆ9ˆ9ˆ9à	ˆQ��qÐ€AØ�ˆ7ˆ7ˆ7ˆ7ØˆRŒ5�AŠ:ˆ:ˆ:ˆ:Ø�X�e˜SÑ!Ô!Ô" aÒ'Ð'Ð'Ð'Ø�aˆ<ˆ<ˆ<ˆ<Ø˜ˆ>ˆ>ˆ>ˆ>Ý�E˜1ÑÔ QÐ&Ð&Ð&Ð&Ð&Ð&s$   Â BÂBÂBÂ:CÃCÃCc                  óZ  — t          dddgi¬¦  «        5  t          t          dg¬¦  «        ¦  «        } d d d ¦  «         n# 1 swxY w Y   t          | ¦  «        j        dk    sJ ‚t          | ¦  «        }|                     ¦   «         }t          |¦  «        dk    sJ ‚|d	         d
k    sJ ‚d S )Núfont.sans-serifÚcmmi10úBitstream Vera Sans)Úrcz
sans-serif©Úfamilyz
cmmi10.ttféƒ   i"  é   )r   r   r   r   Únamer   Úget_charmapÚlen)ÚfontfileÚfontÚcmaps      r0   Útest_font_priorityrA   =   s  € Ý	ØØÐ,Ð-ð/ð 
0ñ 
0ô 
0ð Cð Cõ �N°<°.ÐAÑAÔAÑBÔBˆðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cõ �‰>Œ>Ô ,Ò.Ð.Ð.Ð.õ �HÑÔ€DØ×ÒÑÔ€DÝˆt‰9Œ9˜ÒÐÐÐØ�Œ:˜ÒÐÐÐÐÐs   •A Á AÁAc                  óª  — dt          j        dd¦  «        k    sJ ‚dt          j        dd¦  «        k    sJ ‚dt          j        dd¦  «        cxk     rt          j        dd¦  «        k     sn J ‚dt          j        dd¦  «        cxk     rt          j        dd¦  «        k     sn J ‚t          j        dd¦  «        t          j        dd¦  «        k    sJ ‚d S )Nr   ÚregularÚboldé�  Únormal)r   Úscore_weight© ó    r0   Útest_score_weightrJ   K   s$  € Ø•Ô(¨°IÑ>Ô>Ò>Ð>Ð>Ð>Ø•Ô(¨°Ñ8Ô8Ò8Ð8Ð8Ð8Ø•Ô(¨¨cÑ2Ô2ð 7ð 7ò 7ð 7ÝÔ$ X¨vÑ6Ô6ò7ð 7ð 7ð 7ð 7ð 7à•Ô(¨°9Ñ=Ô=ð 7ð 7ò 7ð 7ÝÔ$ X¨vÑ6Ô6ò7ð 7ð 7ð 7ð 7ð 7åÔ$ X¨yÑ9Ô9ÝÔ$ S¨#Ñ.Ô.ò/ð /ð /ð /ð /ð /rI   c                 óv  — t          t          | dz  ¦  «         t          | dz  ¦  «        }t          j        ¦   «         5  t          j        dd¦  «         ddidddœdd	ifD ]?}t          di |¤Ž}t          j        |d
¬¦  «        |                     |d
¬¦  «        k    sJ ‚Œ@	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzfontlist.jsonÚignorez findfont: Font family.*not foundr8   ÚSTIXGeneralr5   é¼  ©r8   Úweightzno such font familyF)Úrebuild_if_missingrH   )r   r   r   ÚwarningsÚcatch_warningsÚfilterwarningsr   r   )Útmp_pathÚcopyÚpropr-   s       r0   Útest_json_serializationrX   V   sT  € õ �k˜8 oÑ5Ñ6Ô6Ð6Ý�X Ñ/Ñ0Ô0€DÝ	Ô	 Ñ	"Ô	"ð Að AÝÔ Ð*LÑMÔMÐMØ Ð.Ø 5ÀÐEÐEØÐ 5Ð6ð8ð 	Að 	AˆDõ  Ð'Ð' $Ð'Ð'ˆBÝÔ(¨ÀÐFÑFÔFØ—M’M "¸�MÑ?Ô?ò@ð @ð @ð @ð @ð		AðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As   ¾A"B.Â.B2Â5B2c                  ó:  — d} t          | ¦  «                             ¦   «         rHt          j        t          j        ¦  «        5  t          | ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        D ]¢}d|j	        v r—t          |j	        d¦  «        5 }|                     d¦  «        dk    }d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  |t          |j	        ¦  «        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   Œ£d S )Nz//usr/share/fonts/opentype/freefont/FreeMono.otfÚotfÚrbé   s   OTTO)r   Úexistsr*   ÚwarnsÚmplÚMatplotlibDeprecationWarningr   r   ÚttflistÚfnameÚopenÚread)rb   ÚfÚfdÚress       r0   Útest_otfrh   e   sÉ  € Ø=€EÝˆE�{„{×ÒÑÔð /ÝŒ\�#Ô:Ñ;Ô;ð 	/ð 	/Ý'¨Ñ.Ô.Ð.Ð.Ð.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/åÔ ð <ð <ˆØ�A”GÐÐÝ�a”g˜tÑ$Ô$ð ,¨Ø—g’g˜a‘j”j GÒ+�ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,å”�cÔ>Ñ?Ô?ð <ð <ØÕ2°1´7Ñ;Ô;Ò;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <øð	<ð <s6   ÁA!Á!A%Á(A%ÂB>Â>C	ÃC	Ã'DÄD	ÄD	Úwin32zno fontconfig installed)Úreasonc                  óH   — t          t          ¦   «         ¦  «        dk    sJ ‚d S )Nr$   )r=   r   rH   rI   r0   Útest_get_fontconfig_fontsrl   r   s*   € õ Õ$Ñ&Ô&Ñ'Ô'¨!Ò+Ð+Ð+Ð+Ð+Ð+rI   c                  ó²   — 	 t          d„ t          j        D ¦   «         ¦  «        } | j        dk    sJ ‚d S # t          $ r t          j        d¦  «         Y d S w xY w)Nc              3   óT   K  — | ]#}t          |j        ¦  «        j        d k    ¯|V — Œ$dS )zseguisbi.ttfN)r   rb   r;   )Ú.0Úentrys     r0   ú	<genexpr>z#test_utf16m_sfnt.<locals>.<genexpr>{   sI   è è € ð Bð B˜uÝ˜Uœ[Ñ)Ô)Ô.°.Ò@Ð@ð Ø@Ð@Ð@Ð@ðBð BrI   éX  z0Couldn't find seguisbi.ttf font to test against.)Únextr   ra   rP   ÚStopIterationr*   Úskip)rp   s    r0   Útest_utf16m_sfntrv   x   s‘   € ð	#åð Bð B­Ô(;ð Bñ Bô Bñ Bô Bˆð Œ|˜sÒ"Ð"Ð"Ð"Ð"Ð"øõ ð Hð Hð HÝŒÐFÑGÔGÐGÐGÐGÐGðHøøøs   ‚#4 ´AÁAc                  óD  — t          dg¬¦  «        } t          | ¦  «        }t          |¦  «        j        dk    rt	          j        d¦  «         dD ]y}t          t          |g¬¦  «        d¬¦  «        }|j        |j        k    sJ ‚|j        |j        k    sJ ‚t          |¦  «        }|j	        |j        k    sJ ‚|j        |j        k    sJ ‚Œzt          j        ¦   «         \  }}|                     ddd	| ¬
¦  «         dD ]%}|                     t          ¦   «         |¬¦  «         Œ&d S )NzWenQuanYi Zen Heir7   zwqy-zenhei.ttcz"Font wqy-zenhei.ttc may be missing)zWenQuanYi Zen Hei MonozWenQuanYi Zen Hei SharpF©Úfallback_to_defaultç      à?u   â¿“©Úfontproperties©ÚrawÚsvgÚpdfÚps©Úformat)r   r   r   r;   r*   ru   r(   r)   r   rb   ÚpltÚsubplotsÚtextÚsavefigr   )r-   Úfontpathr;   ÚsubfontpathÚsubfontÚfigÚaxÚfmts           r0   Útest_find_ttcrŽ   …   s@  € Ý	Ð 3Ð4Ð	5Ñ	5Ô	5€BÝ˜‰|Œ|€HÝˆH�~„~ÔÐ.Ò.Ð.ÝŒÐ8Ñ9Ô9Ð9àEð <ð <ˆÝ�~°d°VÐ<Ñ<Ô<ÐRWÐXÑXÔXˆØÔ 8¤=Ò0Ð0Ð0Ð0ØÔ%¨Ô)<Ò<Ð<Ð<Ð<Ý˜;Ñ'Ô'ˆØŒ} Ô 0Ò0Ð0Ð0Ð0ØÔ! [Ô%;Ò;Ð;Ð;Ð;Ð;ÝŒl‰nŒn�G€CˆØ‡G‚GˆB�Ð/À€GÑCÔCÐCØ*ð +ð +ˆØ�Š•G‘I”I cˆÑ*Ô*Ð*Ð*ð+ð +rI   c                  óR  — t          ddg¬¦  «        } t          t          | ¦  «        ¦  «        j        }|dvrt	          j        d|› d�¦  «         t          j        ¦   «         \  }}|                     ddd| ¬	¦  «         d
D ]%}| 	                    t          ¦   «         |¬¦  «         Œ&d S )NzNoto Sans CJK SCzNoto Sans CJK JPr7   )zNotoSansCJKsc-Regular.otfzNotoSansCJK-Regular.ttcz,Noto Sans CJK SC font may be missing (found ú)rz   u   Hello, ä½ å¥½r{   r}   r‚   )r   r   r   r;   r*   ru   r„   r…   r†   r‡   r   )r-   r;   r‹   rŒ   r�   s        r0   Útest_find_notor‘   ˜   s¶   € Ý	Ð 2Ð4FÐGÐ	HÑ	HÔ	H€BÝ•˜‘”ÑÔÔ"€DØÐKÐKÐKÝŒÐJÀ4ÐJÐJÐJÑKÔKÐKåŒl‰nŒn�G€CˆØ‡G‚GˆC��o°b€GÑ9Ô9Ð9Ø*ð +ð +ˆØ�Š•G‘I”I cˆÑ*Ô*Ð*Ð*ð+ð +rI   c                  ó"  —  G d„ d¦  «        } t          d¦  «        }t          j        |¦  «        }t          |¦  «        }|j        |k    sJ ‚t          |¦  «        }|j        |k    sJ ‚t           | |¦  «        ¦  «        }|j        |k    sJ ‚t           | |¦  «        ¦  «        }|j        |k    sJ ‚t          t          |d¦  «        ¦  «        }|j        |k    sJ ‚t          || | |¦  «         | |¦  «        g¦  «        }|j        |k    sJ ‚d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú&test_find_valid.<locals>.PathLikeClassc                 ó   — || _         d S ©N©Úfilename)Úselfr˜   s     r0   Ú__init__z/test_find_valid.<locals>.PathLikeClass.__init__¦   s   € Ø$ˆDŒMˆMˆMrI   c                 ó   — | j         S r–   r—   )r™   s    r0   Ú
__fspath__z1test_find_valid.<locals>.PathLikeClass.__fspath__©   s
   € Ø”=Ð rI   N)Ú__name__Ú
__module__Ú__qualname__rš   rœ   rH   rI   r0   ÚPathLikeClassr”   ¥   s2   € € € € € ð	%ð 	%ð 	%ð	!ð 	!ð 	!ð 	!ð 	!rI   r    úDejaVu Sansr   )r   ÚosÚfsencoder   rb   r   )r    Úfile_strÚ
file_bytesr?   s       r0   Útest_find_validr¦   ¤   sU  € ð!ð !ð !ð !ð !ñ !ô !ð !õ ˜Ñ&Ô&€HÝ”˜XÑ&Ô&€Jå�HÑÔ€DØŒ:˜Ò!Ð!Ð!Ð!Ý�JÑÔ€DØŒ:˜Ò#Ð#Ð#Ð#Ý�M�M (Ñ+Ô+Ñ,Ô,€DØŒ:˜Ò!Ð!Ð!Ð!Ý�M�M *Ñ-Ô-Ñ.Ô.€DØŒ:˜Ò#Ð#Ð#Ð#Ý•H˜X qÑ)Ô)Ñ*Ô*€DØŒ:˜Ò!Ð!Ð!Ð!õ �X˜zØ"�] 8Ñ,Ô,¨m¨m¸JÑ.GÔ.GðIñ Jô J€DàŒ:˜Ò!Ð!Ð!Ð!Ð!Ð!rI   c                 óÎ  — t          j        t          ¦  «        5  t          | dz  ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          t	          | dz  ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          t          | dz  ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nznon-existent-font-name.ttf)r*   r+   ÚFileNotFoundErrorr   r&   Úbytes)rU   s    r0   Útest_find_invalidrª   À   s§  € å	ŒÕ(Ñ	)Ô	)ð :ð :Ý�Ð8Ñ8Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ 
ŒÕ(Ñ	)Ô	)ð ?ð ?Ý•�XÐ <Ñ<Ñ=Ô=Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ 
ŒÕ(Ñ	)Ô	)ð Að AÝ•�xÐ">Ñ>Ñ?Ô?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As1   š9¹=Á =Á B	Â	BÂBÂ- CÃCÃ!CÚlinuxz$only Linux with fontconfig installedc                 ó®  ‡— dŠt          ¦   «         }t          ˆfd„|D ¦   «         ¦  «        rt          j        ‰› d�¦  «         |                      d¦  «        }|                     d¬¦  «         t          j        t          t          ¦  «        j
        dz  ‰z  |                     ‰¦  «        ¦  «         |                     ¦   «         5 }|                     dt          | ¦  «        ¦  «         t          j        ¦   «          t          ¦   «         }t          ˆfd	„|D ¦   «         ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «          d S )
Númpltest.ttfc              3   ó    •K  — | ]}‰|v V — Œ	d S r–   rH   ©ro   r?   Úfont_test_files     €r0   rq   z(test_user_fonts_linux.<locals>.<genexpr>Ó   ó(   øè è € Ð
4Ð
4 dˆ>˜TÐ!Ð
4Ð
4Ð
4Ð
4Ð
4Ð
4rI   ú already exists in system fontsÚfontsT)ÚdirÚdataÚXDG_DATA_HOMEc              3   ó    •K  — | ]}‰|v V — Œ	d S r–   rH   r¯   s     €r0   rq   z(test_user_fonts_linux.<locals>.<genexpr>á   s(   øè è € Ð<Ð<¨d�> TÐ)Ð<Ð<Ð<Ð<Ð<Ð<rI   )r	   Úanyr*   ru   ÚjoinÚensureÚshutilÚcopyfiler   Ú__file__ÚparentÚcontextÚsetenvr&   r   Úcache_clear)ÚtmpdirÚmonkeypatchr³   Úuser_fonts_dirÚmr°   s        @r0   Útest_user_fonts_linuxrÆ   Ì   s—  ø€ ð #€Nõ ÑÔ€EÝ
Ð
4Ð
4Ð
4Ð
4¨eÐ
4Ñ
4Ô
4Ñ4Ô4ð HÝŒ�~ÐFÐFÐFÑGÔGÐGð —[’[ Ñ)Ô)€NØ×Ò˜dÐÑ#Ô#Ð#Ý
„O•D�‘N”NÔ)¨FÑ2°^ÑCØ"×'Ò'¨Ñ7Ô7ñ9ô 9ð 9ð 
×	Ò	Ñ	Ô	ð = !Ø	�Š�¥# f¡+¤+Ñ.Ô.Ð.ÝÔ)Ñ+Ô+Ð+åÑ!Ô!ˆÝÐ<Ð<Ð<Ð<°eÐ<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ Ô%Ñ'Ô'Ð'Ð'Ð's   ÃA"D7Ä7D;Ä>D;c                 óB  ‡— dŠt          t          ¦  «        j        dz  ‰z  }	 t          j        |¦  «         t          j        d¦  «        t          |d¦  «        k    sJ ‚|                      ¦   «         5 }t          j	        t          ¦  «        5  |                     dd¦  «         t          j        dd¬¦  «         d	d	d	¦  «         n# 1 swxY w Y   d	d	d	¦  «         n# 1 swxY w Y   ˆfd
„t          j        D ¦   «         \  }t          j                             |¦  «         ˆfd„t          j        D ¦   «         }|D ]!}t          j                             |¦  «         Œ"d	S # ˆfd„t          j        D ¦   «         }|D ]!}t          j                             |¦  «         Œ"w xY w)z/Smoke test that addfont() accepts pathlib.Path.r­   rµ   zmpltest:weight=500r   ÚMPL_IGNORE_SYSTEM_FONTSÚtrueFrx   Nc              3   óP   •K  — | ] }|j                              ‰¦  «        ¯|V — Œ!d S r–   ©rb   Úendswithr¯   s     €r0   rq   z'test_addfont_as_path.<locals>.<genexpr>ñ   sK   øè è € ð :ð :˜4Ø”Z×(Ò(¨Ñ8Ô8ð:�$ð :ð :ð :ð :ð :ð :rI   c                 óH   •— g | ]}|j                              ‰¦  «        ¯|‘ŒS rH   rË   r¯   s     €r0   ú
<listcomp>z(test_addfont_as_path.<locals>.<listcomp>õ   s=   ø€ ð =ð =ð =˜dØœ
×+Ò+¨NÑ;Ô;ð=�Tð =ð =ð =rI   )r   r½   r¾   r   Úaddfontr   r   r¿   r*   r+   Ú
ValueErrorrÀ   ra   Úremove)rÃ   r(   rÅ   ÚaddedÚ	to_remover?   r°   s         @r0   Útest_addfont_as_pathrÔ   ç   sn  ø€ à"€NÝ•‰>Œ>Ô  6Ñ)¨NÑ:€Dð-ÝÔ˜DÑ!Ô!Ð!ÝÔ#Ð$8Ñ9Ô9½XÀdÈAÑ=NÔ=NÒNÐNÐNÐNØ× Ò Ñ"Ô"ð 	R a­¬µzÑ)BÔ)Bð 	Rð 	RØ�HŠHÐ.°Ñ7Ô7Ð7ÝÔ Ð!5È5ÐQÑQÔQÐQð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð:ð :ð :ð :¥;Ô#6ð :ñ :ô :‰ˆåÔ×"Ò" 5Ñ)Ô)Ð)ð=ð =ð =ð =¥kÔ&9ð =ñ =ô =ˆ	àð 	-ð 	-ˆDÝÔ×&Ò& tÑ,Ô,Ð,Ð,ð	-ð 	-øð=ð =ð =ð =¥kÔ&9ð =ñ =ô =ˆ	àð 	-ð 	-ˆDÝÔ×&Ò& tÑ,Ô,Ð,Ð,ð	-øøøsT   ¤AE  Á4CÂ-CÂ;CÃC	ÃCÃC	ÃCÃE  ÃC"Ã"E  Ã%C"Ã&<E  Å >FzWindows onlyc                  óT  ‡— t           j                             d¦  «        s3t           j                             d¦  «        st          j        d¦  «         t          j        d¦  «         dŠt          ¦   «         } t          ˆfd„| D ¦   «         ¦  «        rt          j        ‰› d�¦  «         t          d         }t          j	        |¦  «         t          j        t          t          ¦  «        j        d	z  ‰z  |¦  «         t          ¦   «         } t          ˆfd
„| D ¦   «         ¦  «        sJ ‚d S )NÚAPPVEYORÚTF_BUILDznThis test should only run on CI (appveyor or azure) as the developer's font directory should remain unchanged.z4We need to update the registry for this test to workr­   c              3   ó    •K  — | ]}‰|v V — Œ	d S r–   rH   r¯   s     €r0   rq   z(test_user_fonts_win32.<locals>.<genexpr>  r±   rI   r²   r   rµ   c              3   ó    •K  — | ]}‰|v V — Œ	d S r–   rH   r¯   s     €r0   rq   z(test_user_fonts_win32.<locals>.<genexpr>  s(   øè è € Ð8Ð8¨$ˆ~ Ð%Ð8Ð8Ð8Ð8Ð8Ð8rI   )r¢   ÚenvironÚgetr*   Úxfailr	   r¸   ru   r   Úmakedirsr»   rV   r   r½   r¾   )r³   rÄ   r°   s     @r0   Útest_user_fonts_win32rÞ   û   s*  ø€ åŒJ�NŠN˜:Ñ&Ô&ð #­"¬*¯.ª.¸Ñ*DÔ*Dð #ÝŒð "ñ 	#ô 	#ð 	#õ „LÐGÑHÔHÐHØ"€Nõ ÑÔ€EÝ
Ð
4Ð
4Ð
4Ð
4¨eÐ
4Ñ
4Ô
4Ñ4Ô4ð HÝŒ�~ÐFÐFÐFÑGÔGÐGå*¨1Ô-€Nõ „K�ÑÔÐõ „K••X‘”Ô%¨Ñ.°Ñ?ÀÑPÔPÐPõ ÑÔ€EÝÐ8Ð8Ð8Ð8°%Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8rI   c                 óž   — t          j        ¦   «         \  }}|                     t          ¦   «         d¬¦  «         t          j        ¦   «          d S )Nr€   r‚   )r„   r…   r‡   r   Úclose)Ú_r‹   rŒ   s      r0   Ú_model_handlerrâ     s:   € ÝŒl‰nŒn�G€CˆØ‡K‚K•‘	”	 %€KÑ(Ô(Ð(Ý„I�K„K€K€K€KrI   z(emscripten does not support subprocessesÚregister_at_forkz Cannot register at_fork handlersz2ignore:.*multi-threaded.*fork.*:DeprecationWarningz.ignore:.*multi-threaded.*fork.*:RuntimeWarningc                  óú   — t          d¦  «         t          j        d¦  «        } |                      d¬¦  «        5 }|                     t           t          d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Úforkr%   )Ú	processes)râ   ÚmultiprocessingÚget_contextÚPoolÚmapÚrange)ÚctxÚpools     r0   Ú	test_forkrî     s±   € õ �1ÑÔÐÝ
Ô
% fÑ
-Ô
-€CØ	�Š˜AˆÑ	Ô	ð + $Ø�Š•¥ q¡¤Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   º)A0Á0A4Á7A4c                 óÐ   — dgt           j        d<   |                      d¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   d„ | j        D ¦   «         ddgk    sJ ‚d S )Nzthis-font-does-not-existr3   ÚWARNINGÚsansc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rH   )Ú
getMessage©ro   Úrecs     r0   rÎ   z'test_missing_family.<locals>.<listcomp>/  s"   € Ð7Ð7Ð7 ˆC�NŠNÑÔÐ7Ð7Ð7rI   zFfindfont: Font family ['sans'] not found. Falling back to DejaVu Sans.zufindfont: Generic family 'sans' not found because none of the following families were found: this-font-does-not-exist)r„   ÚrcParamsÚat_levelr   Úrecords)Úcaplogs    r0   Útest_missing_familyrú   +  sÈ   € Ø'AÐ&B…C„LÐ"Ñ#Ø	�Š˜Ñ	#Ô	#ð ð Ý�ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à7Ð7¨¬Ð7Ñ7Ô7ð	'ð	Bð<ò ð ð ð ð ð s   ¦AÁAÁ	Ac                  óf  ‡‡‡‡‡— dd l ŠddlmŠ dd lmŠ d„ } | ‰_        d}‰                     |¦  «        Šˆˆˆfd„Šˆˆfd„t          |¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ];}| 	                    d¬¦  «         | 
                    ¦   «         rt          d	¦  «        ‚Œ<d S )
Nr   )Ú	LoadFlagsc                 ó    — t          d¦  «        ‚)Nzerror in thread!)ÚRuntimeError)Úargss    r0   Úloud_excepthookz(_test_threading.<locals>.loud_excepthook<  s   € ÝÐ-Ñ.Ô.Ð.rI   é
   c                 óü   •— ‰                      d¬¦  «         t          d¦  «        D ]T}‰                     ‰                     d¦  «        ¦  «        }|                     t          | ¦  «        d‰j        ¬¦  «         ŒUd S )Né   ©Útimeoutéd   r¡   g        )Úflags)Úwaitrë   r   r   Úset_textr&   Ú
NO_HINTING)ÚnÚjr?   rü   ÚbÚfms      €€€r0   Úbad_ideaz!_test_threading.<locals>.bad_ideaD  s{   ø€ Ø	�Š�qˆÑÔÐÝ�s‘”ð 	Cð 	CˆAØ—;’;˜rŸ{š{¨=Ñ9Ô9Ñ:Ô:ˆDØ�MŠM�#˜a™&œ& #¨YÔ-AˆMÑBÔBÐBÐBð	Cð 	CrI   c                 óH   •— g | ]}‰                      ‰d |› �|f¬¦  «        ‘ŒS )Úbad_thread_)Útargetr;   rÿ   )ÚThread)ro   r  r  Ú	threadings     €€r0   rÎ   z#_test_threading.<locals>.<listcomp>J  sI   ø€ ð ð ð àð 	×Ò Ð/@¸QÐ/@Ð/@ÈÀtÐÑLÔLðð ð rI   é	   r  zthread failed to join)r  Úmatplotlib.ft2fontrü   Úmatplotlib.font_managerÚfont_managerÚ
excepthookÚBarrierrë   Ústartr¹   Úis_aliverþ   )	r   ÚNÚthreadsÚtrü   r  r  r  r  s	       @@@@@r0   Ú_test_threadingr   7  s6  øøøøø€ ØÐÐÐØ,Ð,Ð,Ð,Ð,Ð,Ø(Ð(Ð(Ð(Ð(Ð(ð/ð /ð /ð +€IÔà
€AØ×Ò˜!ÑÔ€AðCð Cð Cð Cð Cð Cð Cðð ð ð ð å�q‘”ðñ ô €Gð
 ð ð ˆØ	�Š‰	Œ	ˆ	ˆ	àð 8ð 8ˆØ	�Š�qˆÑÔÐØ�:Š:‰<Œ<ð 	8ÝÐ6Ñ7Ô7Ð7ð	8ð8ð 8rI   c                  óZ   — t          j        d¦  «         t          t          d¬¦  «         d S )Nr  r  r  )r*   Úimportorskipr   r   rH   rI   r0   Útest_fontcache_thread_safer#  X  s,   € Ý
Ô˜Ñ$Ô$Ð$å�/°2Ð6Ñ6Ô6Ð6Ð6Ð6rI   c                 ó~   — t          t          j        ddgi t          j        ¥dt          | ¦  «        i¥d¬¦  «        }d S )Nz-czlimport matplotlib;import os;p = matplotlib.get_cachedir();os.chmod(p, 0o555);import matplotlib.font_manager;ÚMPLCONFIGDIRT)ÚenvÚcheck)r   ÚsysÚ
executabler¢   rÚ   r&   )rU   Úprocs     r0   Útest_lockfilefailurer+  ^  sM   € õ &åŒNØð.ð	
ð :�rŒzÐ9˜>­3¨x©=¬=Ð9Ð9Øðñ ô €D€D€DrI   c                  ó  — t          d¬¦  «        } |                      ¦   «         }t          j        t	          |¦  «        ¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚|                      ¦   «         }|                     d¦  «        sJ ‚d S )Nú	font-name©r;   r   z<img src="data:image/png;base64)	r
   Ú
_repr_png_r   rc   r   ÚwidthÚheightÚ_repr_html_Ú
startswith)ÚfontentÚpngÚimgÚhtmls       r0   Útest_fontentry_dataclassr8  t  s†   € Ý˜[Ð)Ñ)Ô)€Gà
×
Ò
Ñ
Ô
€CÝ
Œ*•W˜S‘\”\Ñ
"Ô
"€CØŒ9�qŠ=ˆ=ˆ=ˆ=ØŒ:˜Š>ˆ>ˆ>ˆ>à×ÒÑ Ô €DØ�?Š?Ð=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>rI   c                  ó´   — t          j        t          ¦  «        5  t          dd¬¦  «        } |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz/randomr-  )rb   r;   )r*   r+   r¨   r
   r2  )r4  s    r0   Ú%test_fontentry_dataclass_invalid_pathr:  €  s›   € Ý	ŒÕ(Ñ	)Ô	)ð ð Ý )°+Ð>Ñ>Ô>ˆØ×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   š&AÁAÁAzLinux or OS onlyc                  ó"  — d„ dD ¦   «         } t          | d¬¦  «        }t          d¬¦  «        }t          ¦   «         }||z   D ]§}	 t          j        |¦  «        }t	          |¦  «        }|                     |j        ¦  «         t          d|j        ¦  «        D ]A}t          j        ||¬¦  «        }t	          |¦  «        }|                     |j        ¦  «         ŒBŒ˜# t          $ r Y Œ¤w xY w|t          t          j        ¦   «         ¦  «        k    sJ ‚d S )Nc                 ó8   — g | ]}t          j        d |¦  «        ‘ŒS )r³   )r   Ú_get_data_path)ro   Úsubdirs     r0   rÎ   z'test_get_font_names.<locals>.<listcomp>ˆ  s%   € ÐMÐMÐM¸6•Ô% g¨vÑ6Ô6ÐMÐMÐMrI   )Úttfr?  )Úfontextr$   )r)   )r	   Úsetr   ÚFT2Fontr   Úaddr;   rë   Ú	num_facesÚ	Exceptionr   Úget_font_names)Ú	paths_mplÚ	fonts_mplÚfonts_systemÚ	ttf_fontsr(   r?   rW   r)   s           r0   Útest_get_font_namesrK  †  s-  € àMÐMÀWÐMÑMÔM€IÝ 	°5Ð9Ñ9Ô9€IÝ"¨5Ð1Ñ1Ô1€LÝ‘”€IØ˜LÑ(ð 
ð 
ˆð		Ý”? 4Ñ(Ô(ˆDÝ" 4Ñ(Ô(ˆDØ�MŠM˜$œ)Ñ$Ô$Ð$Ý# A t¤~Ñ6Ô6ð )ð )�
Ý” t¸
ÐCÑCÔC�Ý& tÑ,Ô,�Ø—’˜dœiÑ(Ô(Ð(Ð(ð)øõ ð 	ð 	ð 	ØˆDð	øøøð
 ��KÔ6Ñ8Ô8Ñ9Ô9Ò9Ð9Ð9Ð9Ð9Ð9s   ÁBCÃ
C&Ã%C&c           
      ó>  — d}d}g |¢d‘R d                      d¦  «        g |¢d‘R d                      d¦  «        g |¢d‘R d	                      d¦  «        g |¢d‘R d
                      d¦  «        i}t          ¦   «         }||j        _        t	          |d¦  «        dgk    sJ ‚t	          |d¦  «        dgk    sJ ‚g |¢d‘R d                      d¦  «        g |¢d‘R d                      d¦  «        g |¢d‘R d                      d¦  «        i}t          ¦   «         }||j        _        t	          |d¦  «        dgk    sJ ‚g |¢d‘R d                      d¦  «        g |¢d‘R d                      d¦  «        i}t          ¦   «         }||j        _        t	          |d¦  «        g k    sJ ‚t          ¦   «         }	t
          |	j        _        t	          |	d¦  «        g k    sJ ‚t          | dz  ¦  «        }
t          |
dddddd¬¦  «        }t          d|¬¦  «        5  t          d|¬¦  «        5  t          j                             t          j        ¦  «        }g |_        g |_        t          ¦   «         |_        t          ¦   «         |j        _        |                     |
¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   d„ |j        D ¦   «         }|ddgk    sJ ‚|j        d         }|j        dk    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚dS )aM  
    Fonts that advertise different family names across platforms or name IDs
    should be registered under all of those names so users can address the font
    by any of them.

    Two real-world patterns are covered:

    - **MS platform ID 1 differs from Mac platform ID 1** (e.g. Ubuntu Light):
      FreeType returns the Mac ID 1 value as ``family_name``; the MS ID 1
      value ("Ubuntu Light") is an equally valid name that users expect to work.
    - **Name ID 16 (Typographic Family) differs from ID 1** (older fonts):
      some fonts store a broader family name in ID 16.
    )r$   r   r   ©é   r$   i	  r$   úTest Familyzlatin-1úTest Family Lightú	utf-16-ber%   ÚLightÚRegular)rP  rE   )rO  é,  é   zfake.ttfrF   rT  Úscalable)rb   r;   ÚstyleÚvariantrP   ÚstretchÚsizez'matplotlib.font_manager.ft2font.FT2Font)Úreturn_valuez'matplotlib.font_manager.ttfFontPropertyNc                 ó   — g | ]	}|j         ‘Œ
S rH   r.  )ro   Úes     r0   rÎ   z2test_addfont_alternative_names.<locals>.<listcomp>ê  s   € Ð1Ð1Ð1˜ˆQŒVÐ1Ð1Ð1rI   rE   )Úencoder   Úget_sfntr[  r   rÐ   Úside_effectr&   r
   r   Úfm_modÚFontManagerÚ__new__ra   ÚafmlistÚ_findfont_cachedrÁ   rÏ   rP   rW  rb   )rU   Úmac_keyÚms_keyÚubuntu_style_sfntÚ	fake_fontÚ	id16_sfntÚfake_font_id16Ú	same_sfntÚfake_font_sameÚfake_font_no_sfntÚ	fake_pathÚprimary_entryÚfm_instanceÚnamesÚ	alt_entrys                  r0   Útest_addfont_alternative_namesrt  �  s-  € ð €GØ€Fð 	ˆ'ˆ�1ˆˆ�}×+Ò+¨IÑ6Ô6Øˆ&ˆ�1ˆˆÐ*×1Ò1°+Ñ>Ô>Øˆ'ˆ�1ˆˆ�w—~’~ iÑ0Ô0Øˆ&ˆ�1ˆˆ�y×'Ò'¨Ñ4Ô4ð	Ðõ ‘”€IØ&7€IÔÔ#å˜y¨-Ñ8Ô8Ð=WÐ<XÒXÐXÐXÐXÝ˜yÐ*=Ñ>Ô>ØðCò ð ð ð ð 	ˆ'ˆ�1ˆˆ˜×,Ò,¨YÑ7Ô7Øˆ&ˆ�1ˆˆ˜×,Ò,¨[Ñ9Ô9Øˆ&ˆ�2ˆˆÐ+×2Ò2°;Ñ?Ô?ð€Iõ
 ‘[”[€NØ+4€NÔÔ(åØ˜ñô à
$Ð	%ò&ð &ð &ð &ð 	ˆ'ˆ�1ˆˆ�}×+Ò+¨IÑ6Ô6Øˆ&ˆ�1ˆˆ�}×+Ò+¨KÑ8Ô8ð€Iõ ‘[”[€NØ+4€NÔÔ(Ý˜~¨}Ñ=Ô=ÀÒCÐCÐCÐCõ "™œÐÝ-7ÐÔÔ*ÝÐ0°-Ñ@Ô@ÀBÒFÐFÐFÐFå�H˜zÑ)Ñ*Ô*€IÝ I°MØ$,°hØ%(°(ÀðMñ Mô M€Mõ 
Ð8Ø%ð
'ñ 
'ô 
'ð 	'ð 	'å	Ð8Ø)ð
+ñ 
+ô 
+ð	'ð 	'õ Ô(×0Ò0µÔ1CÑDÔDˆØ ˆÔØ ˆÔÝ'0¡{¤{ˆÔ$Ý3<±;´;ˆÔ$Ô0Ø×Ò˜IÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 2Ð1˜[Ô0Ð1Ñ1Ô1€EØ�]Ð$7Ð8Ò8Ð8Ð8Ð8ØÔ# AÔ&€IØÔ˜sÒ"Ð"Ð"Ð"ØŒ?˜mÔ1Ò1Ð1Ð1Ð1ØŒ?˜mÔ1Ò1Ð1Ð1Ð1Ð1Ð1s7   ÈJ9ÈA8J"ÊJ9Ê"J&	Ê&J9Ê)J&	Ê*J9Ê9J=Ë J=zsubfam,expected))ÚThinr  )Ú
ExtraLightéÈ   )Ú
UltraLightrw  )Ú	DemiLighté^  )Ú	SemiLightrz  )rR  rT  )ÚBooki|  )rS  rE   )ÚNormalrE   )ÚMediuméô  )ÚDemiBoldrr   )ÚDemirr   )ÚSemiBoldrr   )Ú	ExtraBoldé   )Ú	SuperBoldr„  )Ú	UltraBoldr„  )ÚBoldrN   )Ú
UltraBlackéè  )Ú
SuperBlackr‰  )Ú
ExtraBlackr‰  )ÚUltrar‰  )ÚBlacké„  )ÚHeavyrŽ  )Ú rE   c                 óÜ   — d}t          ¦   «         }g |¢d‘R d                     d¦  «        g |¢d‘R |                      d¦  «        i|j        _        t	          |d¦  «        }|d|fgk    sJ ‚dS )zD_get_font_alt_names derives weight from the paired subfamily string.rM  r$   z
Family AltrQ  r%   ÚFamilyN)r   r^  r_  r[  r   )ÚsubfamÚexpectedrg  ri  Úresults        r0   Ú#test_alt_name_weight_from_subfamilyr–  ò  s‡   € ð8 €FÝ‘”€Iàˆ&ˆ�!ˆˆ�l×)Ò)¨+Ñ6Ô6Øˆ&ˆ�!ˆˆ�f—m’m KÑ0Ô0ð'€IÔÔ#õ ! ¨HÑ5Ô5€FØ�| XÐ.Ð/Ò/Ð/Ð/Ð/Ð/Ð/rI   c                  ó´   ‡—  G d„ d¦  «        Šˆfd„}  | ¦   «          t          j        ¦   «         D ]&}t          |‰¦  «        rt          j        d¦  «         Œ'd S )Nc                   ó   — e Zd ZdS )ú/test_donot_cache_tracebacks.<locals>.SomeObjectN)r�   rž   rŸ   rH   rI   r0   Ú
SomeObjectr™    s   € € € € € ØˆrI   rš  c                  ó–  •—  ‰¦   «         } t          j        ¦   «         }|                     ¦   «         }|                     dddd¬¦  «         t	          ¦   «         5 }t          j        ¦   «         5  t          j        d¦  «         |                     |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nrz   ÚaardvarkÚdoesnotexistr7   rL   r~   r‚   )	ÚmfigureÚFigurer…   r†   r   rR   rS   rT   r‡   )Úxr‹   rŒ   Úoutrš  s       €r0   Úinnerz*test_donot_cache_tracebacks.<locals>.inner  s8  ø€ ØˆJ‰LŒLˆÝŒnÑÔˆØ�\Š\‰^Œ^ˆØ�Š��R˜¨NˆÑ;Ô;Ð;Ý‰YŒYð 	/˜#ÝÔ(Ñ*Ô*ð /ð /ÝÔ'¨Ñ1Ô1Ð1Ø—’˜C¨�Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s6   ÁB>Á.,B&ÂB>Â&B*	Â*B>Â-B*	Â.B>Â>CÃCz#object from inner stack still alive)ÚgcÚget_objectsÚ
isinstancer*   Úfail)r¢  Úobjrš  s     @r0   Útest_donot_cache_tracebacksr¨    s–   ø€ ðð ð ð ð ñ ô ð ð/ð /ð /ð /ð /ð 
€E�G„G€GåŒ~ÑÔð ?ð ?ˆÝ�c˜:Ñ&Ô&ð 	?ÝŒKÐ=Ñ>Ô>Ð>øð?ð ?rI   c                  óJ  — t          j        t          j        ¦  «        5  t	          dd¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  t	          dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  t	          dg¦  «         ddd¦  «         n# 1 swxY w Y   t	          dd¬¦  «         t	          d¬¦  «         t	          d¦  «         t	          d¦  «         t	          d¬¦  «         dS )	aS  
    Test the deprecated API of FontProperties.__init__.

    The deprecation does not change behavior, it only adds a deprecation warning
    via a decorator. Therefore, the purpose of this test is limited to check
    which calls do and do not issue deprecation warnings. Behavior is still
    tested via the existing regular tests.
    ÚTimesÚitalicNr  )rZ  )r8   rW  r7   z"serif-24:style=oblique:weight=bold)r*   r^   r_   r`   r   rH   rI   r0   Ú$test_fontproperties_init_deprecationr¬  .  sÐ  € õ 
Œ•cÔ6Ñ	7Ô	7ð *ð *å�w Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ 
Œ•cÔ6Ñ	7Ô	7ð )ð )å�w RÐ(Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
Œ•cÔ6Ñ	7Ô	7ð "ð "å˜�yÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ
 ˜'¨Ð2Ñ2Ô2Ð2Ý˜'Ð"Ñ"Ô"Ð"Ý�7ÑÔÐÝÐ7Ñ8Ô8Ð8õ Ð>Ð?Ñ?Ô?Ð?Ð?Ð?s3   Ÿ<¼A ÁA Á%BÂBÂ
BÂ,C	Ã	CÃCc                  óþ  — t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d	¦  «        dk    sJ ‚t          d
¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT  Ú
ultralightr  Úlightrw  rF   rE   rC   ÚbookÚmediumr  ÚromanÚsemiboldrr   ÚdemiboldÚdemirD   rN   Úheavyr„  z
extra boldÚblackrŽ  Úinvalid)r   r*   r+   ÚKeyErrorrH   rI   r0   Útest_normalize_weightsrº  U  sû  € Ý˜SÑ!Ô! SÒ(Ð(Ð(Ð(Ý˜\Ñ*Ô*¨cÒ1Ð1Ð1Ð1Ý˜WÑ%Ô%¨Ò,Ð,Ð,Ð,Ý˜XÑ&Ô&¨#Ò-Ð-Ð-Ð-Ý˜YÑ'Ô'¨3Ò.Ð.Ð.Ð.Ý˜VÑ$Ô$¨Ò+Ð+Ð+Ð+Ý˜XÑ&Ô&¨#Ò-Ð-Ð-Ð-Ý˜WÑ%Ô%¨Ò,Ð,Ð,Ð,Ý˜ZÑ(Ô(¨CÒ/Ð/Ð/Ð/Ý˜ZÑ(Ô(¨CÒ/Ð/Ð/Ð/Ý˜VÑ$Ô$¨Ò+Ð+Ð+Ð+Ý˜VÑ$Ô$¨Ò+Ð+Ð+Ð+Ý˜WÑ%Ô%¨Ò,Ð,Ð,Ð,Ý˜\Ñ*Ô*¨cÒ1Ð1Ð1Ð1Ý˜WÑ%Ô%¨Ò,Ð,Ð,Ð,Ý	Œ•xÑ	 Ô	 ð %ð %Ý˜)Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   ÅE2Å2E6Å9E6c                 ó‚   — d}t          t          |gd¬¦  «        ¦  «         d|› d�}d„ | j        D ¦   «         }||v sJ ‚d S )Nr¡   iî  rO   z-findfont: Failed to find font weight 750 for z, now using 700.c                 ó   — g | ]	}|j         ‘Œ
S rH   )Úmessagerô   s     r0   rÎ   z+test_font_match_warning.<locals>.<listcomp>m  s   € Ð2Ð2Ð2˜CˆCŒKÐ2Ð2Ð2rI   )r   r   rø   )rù   r?   r”  Úlogss       r0   Útest_font_match_warningr¿  i  s`   € Ø€DÝ�^ D 6°#Ð6Ñ6Ô6Ñ7Ô7Ð7ØU¸tÐUÐUÐU€HØ2Ð2 6¤>Ð2Ñ2Ô2€DØ�tÐÐÐÐÐÐrI   c                  óÜ   — t          ¦   «         } t          | ¦  «                             d¦  «        sJ ‚|                      d¦  «         t          | ¦  «                             d¦  «        sJ ‚d S )NúDejaVuSans.ttfrD   úDejaVuSans-Bold.ttf)r   r   rÌ   Ú
set_weight)r-   s    r0   Ú,test_mutable_fontproperty_cache_invalidationrÄ  q  sg   € Ý	Ñ	Ô	€BÝ�B‰<Œ<× Ò Ð!1Ñ2Ô2Ð2Ð2Ð2Ø‡M‚M�&ÑÔÐÝ�B‰<Œ<× Ò Ð!6Ñ7Ô7Ð7Ð7Ð7Ð7Ð7rI   c                  óÒ   — dt           j        d<   t          d¦  «                             d¦  «        sJ ‚dt           j        d<   t          d¦  «                             d¦  «        sJ ‚d S )NrF   zfont.weightr¡   rÁ  rD   rÂ  )r_   rö   r   rÌ   rH   rI   r0   Ú,test_fontproperty_default_cache_invalidationrÆ  x  sf   € Ø"*…C„L�ÑÝ�MÑ"Ô"×+Ò+Ð,<Ñ=Ô=Ð=Ð=Ð=Ø"(…C„L�ÑÝ�MÑ"Ô"×+Ò+Ð,AÑBÔBÐBÐBÐBÐBÐBrI   )UÚior   r£  rç   r¢   Úpathlibr   ÚPILr   r»   r(  rR   r*   Úunittest.mockr   r   Ú
matplotlibr_   r  r  ra  r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r„   r   r   rž  Úmatplotlib.testingr   r   ÚplatformÚwhichÚ
has_fclistr1   rA   rJ   rX   rh   ÚmarkÚskipifrl   rv   rŽ   r‘   r¦   rª   rÆ   rÔ   rÞ   râ   ÚhasattrrT   rî   rú   r   r#  r+  r8  r:  rK  rt  Úparametrizer–  r¨  r¬  rº  r¿  rÄ  rÆ  rH   rI   r0   ú<module>rÔ     s_  ðØ Ð Ð Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€à €€€à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð
 TÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ PÐ PÐ PÐ PÐ PÐ PÐ PÐ Pð Œ\˜\Ò)ÐQ¨l¨f¬l¸9Ñ.EÔ.EÈTÐ.Q€
ð'ð 'ð 'ð@ð ð ð0ð 0ð 0ðAð Að Að
<ð 
<ð 
<ð „×Ò�C”L GÒ+Ð=°:¨~Ø4ð ñ 6ô 6ð,ð ,ñ6ô 6ð,ð
#ð 
#ð 
#ð+ð +ð +ð&	+ð 	+ð 	+ð"ð "ð "ð8	Að 	Að 	Að „×Ò�C”L GÒ+Ð=°:¨~ØAð ñ Cô Cð(ð (ñCô Cð(ð2-ð -ð -ð( „×Ò�C”L GÒ+°NÐÑCÔCð9ð 9ñ DÔCð9ð6ð ð ð „×Ò�C”L LÒ0ØEð ñ Gô Gà„×Ò˜˜ Ð$6Ñ7Ô7Ð7Ø=ð ñ ?ô ?ð „×ÒÐPÑQÔQØ„×ÒÐLÑMÔMð+ð +ñ NÔMñ RÔQñ?ô ?ñGô Gð+ð	ð 	ð 	ð8ð 8ð 8ðB7ð 7ð 7ðð ð ð,	?ð 	?ð 	?ðð ð ð „×Ò�C”L GÒ+Ð4FÐÑGÔGð:ð :ñ HÔGð:ð,R2ð R2ð R2ðj „×ÒÐ*ð -ð -ð -ñ ô ð4	0ð 	0ñ5ô ð4	0ð?ð ?ð ?ð,$@ð $@ð $@ðN%ð %ð %ð(ð ð ð8ð 8ð 8ðCð Cð Cð Cð CrI   