ó
    “’¤j1e  ã                   óÆ  • S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJ	r
  S SKrS SKrS SKJrJrJr  S SKJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJrJ r   S SK!J"r"J#r#  S SK$J%r%  \#" S/SS9S 5       r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0\%S 5       r1S r2\#" S/SS9S 5       r3\#" S /SS9S! 5       r4\Rj                  Rm                  S"5      \"" S#S$/S%9S& 5       5       r7\%S' 5       r8S( r9\#" S)/SS9S* 5       r:S+ r;\#" S,/SS9S- 5       r<\#" S./SS9S/ 5       r=\#" S0/SS9S1 5       r>\#" S2/SS9S3 5       r?\R€                  Rƒ                  S4S5S6/5      S7 5       rB\#" S8/SS9S9 5       rC\R€                  R‰                  \ " S:5      (       + S;S<9\#" S=/SS9S> 5       5       rE\R€                  R‰                  \ " S?5      (       + S@S<9\#" SA/SS9SB 5       5       rF\R€                  R‰                  \ " SC5      (       + SDS<9\#" SE/SS9SF 5       5       rGSG rH\"" S#/S%9SH 5       rI\"" S#/S%9SI 5       rJ\"" S#/S%9SJ 5       rK\"" S#/S%9SK 5       rL\"" S#/S%9SL 5       rM\"" S#/SMSN9SO 5       rNg)Pé    N)ÚPath)Úparse)ÚpyplotÚrcParamsÚfont_manager)Ú_get_data_path)ÚFT2Font)Úget_glyphs_subsetÚfont_as_file)ÚPdfPages)Ú	Rectangle)Ú_gen_multi_font_textÚ_has_tex_package)Úcheck_figures_equalÚimage_comparison)Úneeds_usetexzpdf_use14corefonts.pdfÚ_classic_test)Ústylec            	      óü   • S[         S'   S[         S'   S[         S'   S/[         S'   S	[         S
'   Sn [        R                  " 5       u  pUR                  S5        UR	                  SSU SSSS9  UR                  SSS9  g )NTzpdf.use14corefontsz
sans-serifzfont.familyé   z	font.sizeÚ	Helveticazfont.sans-serifr   úpdf.compressionu�   A three-line text positioned just above a blue line
and containing some French characters and the euro symbol:
"Merci pÃ©pÃ© pour les 10 â‚¬"z0Test PDF backend with option use14corefonts=Trueç      à?ÚcenterÚbottomé   )ÚhorizontalalignmentÚverticalalignmentÚfontsize)Ú	linewidth)r   ÚpltÚsubplotsÚ	set_titleÚtextÚaxhline)r$   ÚfigÚaxs      Ú¯C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\matplotlib/tests/test_backend_pdf.pyÚtest_use14corefontsr)      s�   € à%)„HÐ!Ñ"Ø*„Hˆ]ÑØ„Hˆ[ÑØ#. -„HÐÑØ"#„HÐÑð"€Dô �lŠl‹n�G€CØ‡L�LÐCÔDØ‡G�GˆC��d°Ø&Øð ñ ð ‡J�Jˆs˜c€JÒ"ó    c                  óŽ  • [        [        R                  " 5       5       n U R                  5       S:X  d   e[        R
                  " 5       u  pUR                  / SQ5        UR                  U SS9  U R                  5       S:X  d   eU R                  5         U R                  5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   )é   é   é   Úpdf©Úformatr,   r-   )r   ÚioÚBytesIOÚget_pagecountr!   r"   ÚplotÚsavefig)r/   r&   r'   s      r(   Útest_multipage_pagecountr7   -   s•   € Ü	”"—*’*“,Ô	 3Ø× Ñ Ó" aÓ'Ð'Ð'Ü—,’,“.‰ˆØ
�‰’	ÔØ�‰�C ˆÑ&Ø× Ñ Ó" aÓ'Ð'Ð'Ø�‰ŒØ× Ñ Ó" aÓ'Ð'Ñ'÷ 
 ×	Ö	ús   ŸBB6Â6
Cc                  ó|  • [         R                  " 5       n [        U 5       n[        S5       H;  n[        R
                  " 5       u  p4UR                  S5        UR                  USS9  M=     S S S 5        U R                  5       nUR                  S5      S:X  d   e[        U5      S:  d   eg ! , (       d  f       NG= f)Né
   zThis is a long titler/   r0   s	   startxrefr,   i@œ  )r2   r3   r   Úranger!   r"   r#   r6   ÚgetvalueÚcountÚlen)Úpdfior/   Úir&   r'   Úss         r(   Útest_multipage_properfinalizerA   8   s�   € Ü�JŠJ‹L€EÜ	�%Œ˜CÜ�r–ˆAÜ—l’l“n‰GˆCØ�L‰LÐ/Ô0Ø�K‰K˜ EˆKÓ*ñ ÷ 
ð
 	�‰Ó€AØ�7‰7�<Ó  AÓ%Ð%Ð%Üˆq‹6�E‹>Ð‰>÷ 
�ús   ¡AB-Â-
B;c                 óR  • U S-  n[        U5       n S S S 5        UR                  5       (       a   eU S-  n[        U5       nUR                  [        R                  " 5       5        S S S 5        UR                  5       (       d   eg ! , (       d  f       Nz= f! , (       d  f       N7= f)Nza.pdfzb.pdf)r   Úexistsr6   r!   Úfigure)Útmp_pathÚfnr/   s      r(   Útest_multipage_keep_emptyrG   D   sy   € à	�GÑ	€BÜ	�"Œ˜Ø÷ 
à�y‰y�{‰{Ðˆ?ð 
�GÑ	€BÜ	�"Œ˜Ø�‰”C—J’J“LÔ!÷ 
à�9‰9�;‰;Ð‰;÷ 
�ú÷ 
�ús   ‘BÁ%BÂ
BÂ
B&c                  ój  • [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  p[         R                  " US-  5      n[        R
                  " 5       u  p4UR                  SS5        UR                  U/ SQS9  UR                  US S S	2   / S
QS9  S[        R                  S'   [        [        R                  " 5       5       nUR                  USS9  [        UR                  R                  5      S:X  d   e S S S 5        S[        R                  S'   [        [        R                  " 5       5       nUR                  USS9  [        UR                  R                  5      S:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Néûÿÿÿé   r,   r-   r   r.   )r   r,   r   r,   )Úextentéÿÿÿÿ)r-   r.   r   r,   Tzimage.composite_imager/   r0   F)ÚnpÚmeshgridÚarangeÚsinr!   r"   Úset_xlimÚimshowr   r   r2   r3   r6   r=   Ú_fileÚ_images)ÚXÚYÚZr&   r'   r/   s         r(   Útest_composite_imagerX   R   s=  € ô �;Š;”r—y’y  Q¨Ó*¬B¯IªI°b¸!¸QÓ,?Ó@�D€AÜ
�Šˆq�A‰v‹€AÜ�lŠl‹n�G€CØ‡K�K��1ÔØ‡I�Iˆaš€IÑ%Ø‡I�Iˆa‘�"�‰gšl€IÑ+Ø,0„C‡L�LÐ(Ñ)Ü	”"—*’*“,Ô	 3Ø�‰�C ˆÑ&Ü�3—9‘9×$Ñ$Ó%¨Ó*Ð*Ñ*÷ 
 ð -2„C‡L�LÐ(Ñ)Ü	”"—*’*“,Ô	 3Ø�‰�C ˆÑ&Ü�3—9‘9×$Ñ$Ó%¨Ó*Ð*Ñ*÷ 
 Ð	÷	 
 Õ	ú÷ 
 Õ	ús   Ã#6FÅ6F$Æ
F!Æ$
F2c                  ó�  • [         R                  " S5      n [        R                  " S[        R                  S9n[        R
                  " S5      US S 2SS4'   S[        S'   [        R                  " 5       nUR                  USS9  [        R                  " 5       nUR                  US	S
S9  U R                  R                  U5       nUR                  u  n[!        U R"                  5      [!        S5      :  a  UR$                  R'                  5       u  nO UR)                  5       R'                  5       u  nU R+                  U5      nUR,                  (       d   eUR/                  5       n[        R0                  " UR3                  S5      5      n	S S S 5        [        R4                  R7                  UW	5        g ! , (       d  f       N/= f)NÚpikepdf)é   r,   r.   )Údtyper[   r   Tr   )Úresizer/   rD   )r1   Údpiz10.9.0ÚRGB)ÚpytestÚimportorskiprM   ÚzerosÚuint8rO   r   r!   rD   Úfigimager2   r3   r6   ÚPdfÚopenÚpagesÚparse_versionÚ__version__ÚimagesÚvaluesÚ
get_imagesÚPdfImageÚindexedÚas_pil_imageÚasarrayÚconvertÚtestingÚassert_array_equal)
rZ   Údatar&   Úbufr/   ÚpageÚimageÚ	pdf_imageÚ	pil_imageÚrgbs
             r(   Útest_indexed_imager{   e   sL  € ä×!Ò! )Ó,€Gä�8Š8�K¤r§x¡xÑ0€DÜ—I’I˜c“N€DŠˆAˆqˆ�Mà"&„HÐÑÜ
�*Š*‹,€CØ‡L�L�˜d€LÑ#Ü
�*Š*‹,€CØ‡K�K�˜E x€KÑ0à	�‰×	Ñ	˜#Ô	 #Ø—	‘	‰ˆÜ˜×,Ñ,Ó-´¸hÓ0GÓGØ—[‘[×'Ñ'Ó)‰F‰Eà—_‘_Ó&×-Ñ-Ó/‰FˆEØ×$Ñ$ UÓ+ˆ	Ø× × Ð Ð Ø×*Ñ*Ó,ˆ	Ü�jŠj˜×*Ñ*¨5Ó1Ó2ˆ÷ 
ô ‡J�J×!Ñ! $¨Õ,÷ 
Õ	ús   ÃCF7Æ7
Gc                 óÜ  • [         R                  " S5      nU R                  SS5        [        R                  " 5       u  p#UR                  [        S5      5        SSSS[        R                  " S	S
S[        R                  " [        R                  " S5      5      S9SS.n[        R                  " 5       nUR                  XTSS9  UR                  R                  U5       nUR                  R!                  5        VVs0 s H  u  pxU[#        U5      _M     n	nnS S S 5        W	SSS[$        R&                   S3SSS[$        R&                   3SSSS.	:X  d   eg s  snnf ! , (       d  f       NJ= f)NrZ   ÚSOURCE_DATE_EPOCHÚ0rJ   ÚmeúMultipage PDFú	Test pageútest,pdf,multipageé°  r   r,   r   ©ÚtzinfoÚTrue©ÚAuthorÚTitleÚSubjectÚKeywordsÚModDateÚTrappedr/   )Úmetadatar1   úD:19700101000000ZúMatplotlib vú, https://matplotlib.orgúD:19680801000000ZúMatplotlib pdf backend vú/True©	z/Authorz/CreationDatez/Creatorz	/Keywordsz/ModDatez	/Producerz/Subjectz/Titlez/Trapped)r`   ra   Úsetenvr!   r"   r5   r:   ÚdatetimeÚtimezoneÚ	timedeltar2   r3   r6   re   rf   ÚdocinfoÚitemsÚstrÚmplri   ©
ÚmonkeypatchrZ   r&   r'   Úmdru   r/   ÚkÚvÚinfos
             r(   Útest_savefig_metadatar¤   €   sF  € Ü×!Ò! )Ó,€GØ×ÑÐ*¨CÔ0ä�lŠl‹n�G€CØ‡G�GŒE�!‹HÔð Ø ØØ(Ü×$Ò$Ø�!�Qœx×0Ò0´×1CÒ1CÀAÓ1FÓGñIàñ
€Bô �*Š*‹,€CØ‡K�K�¨€KÑ/à	�‰×	Ñ	˜#Ô	 #Ø&)§k¡k×&7Ñ&7Ô&9Ô:Ò&9™d˜a�”3�q“6’	Ñ&9ˆÑ:÷ 
ð ØØ,Ø"¤3§?¡?Ð"3Ð3KÐLØ)Ø'Ø/´·±Ð/@ÐAØØ!Øñ
ó 
ð 
ñ 
ùó ;÷ 
Õ	ús   Ã EÃ>EÄEÅEÅ
E+c                  óú  • [         R                  " 5       u  p[        R                  " [        SS9   U R                  [        R                  " 5       SSS0S9  S S S 5        [        R                  " [        SS9   U R                  [        R                  " 5       SSS	0S9  S S S 5        [        R                  " [        S
S9   U R                  [        R                  " 5       SSS0S9  S S S 5        [        R                  " [        SS9   U R                  [        R                  " 5       SSS0S9  S S S 5        g ! , (       d  f       Nç= f! , (       d  f       N°= f! , (       d  f       Ny= f! , (       d  f       g = f)Nz#Unknown infodict keyword: 'foobar'.)Úmatchr/   ÚfoobarÚinvalid)r1   rŽ   z%not an instance of datetime.datetime.rŒ   z
1968-08-01z'not one of {"True", "False", "Unknown"}r�   Úfooznot an instance of str.r‰   iÒ  )r!   r"   r`   ÚwarnsÚUserWarningr6   r2   r3   ©r&   r'   s     r(   Útest_invalid_metadatar­   £   s  € Ü�lŠl‹n�G€Cä	�Š”kØAó
Cà�‰”B—J’J“L¨¸(ÀIÐ9NˆÑO÷
Cô 
�Š”kØCó
Eà�‰”B—J’J“L¨Ø'¨Ð6ð 	ñ 	8÷
Eô
 
�Š”kØEó
Gà�‰”B—J’J“L¨¸)ÀUÐ9KˆÑL÷
Gô 
�Š”kÐ)BÓ	CØ�‰”B—J’J“L¨¸'À4¸ˆÑI÷ 
DÐ	C÷
Cõ 
Cú÷
Eõ 
Eú÷

Gõ 
Gú÷ 
DÕ	Cús/   ±'D9Á9'E
Ã'EÄ	'E,Ä9
EÅ

EÅ
E)Å,
E:c                 óF  • [         R                  " S5      nU R                  SS5        [        R                  " 5       u  p#UR                  [        S5      5        SSSS[        R                  " S	S
S[        R                  " [        R                  " S5      5      S9SS.n[        R                  " 5       n[        XTS9 nUR                  U5        UR                  U5        S S S 5        UR                  R                  U5       nUR                   R#                  5        VVs0 s H  u  pxU[%        U5      _M     n	nnS S S 5        W	SSS[&        R(                   S3SSS[&        R(                   3SSSS.	:X  d   eg ! , (       d  f       N = fs  snnf ! , (       d  f       N[= f)NrZ   r}   r~   rJ   r   r€   r�   r‚   rƒ   r   r,   r   r„   r†   r‡   )rŽ   r�   r�   r‘   r’   r“   r”   r•   )r`   ra   r–   r!   r"   r5   r:   r—   r˜   r™   r2   r3   r   r6   re   rf   rš   r›   rœ   r�   ri   rž   s
             r(   Útest_multipage_metadatar¯   ·   sg  € Ü×!Ò! )Ó,€GØ×ÑÐ*¨CÔ0ä�lŠl‹n�G€CØ‡G�GŒE�!‹HÔð Ø ØØ(Ü×$Ò$Ø�!�Qœx×0Ò0´×1CÒ1CÀAÓ1FÓGñIàñ
€Bô �*Š*‹,€CÜ	�#Ò	# sØ�‰�CÔØ�‰�CÔ÷ 
$ð 
�‰×	Ñ	˜#Ô	 #Ø&)§k¡k×&7Ñ&7Ô&9Ô:Ò&9™d˜a�”3�q“6’	Ñ&9ˆÑ:÷ 
ð ØØ,Ø"¤3§?¡?Ð"3Ð3KÐLØ)Ø'Ø/´·±Ð/@ÐAØØ!Øñ
ó 
ð 
ñ 
÷ 
$Õ	#üó
 ;÷ 
Õ	ús*   Â>#E;ÄFÄ"FÄ:FÅ;
F	ÆFÆ
F c                  ó–  ^^• [         R                  " S5      n Sm[        R                  " SS9nUR	                  SSST S3S9  UR	                  SS	S
T S3S9  [
        R                  " 5        nUR                  USS9  U R                  R                  U5       nUR                  S   R                  nS H^  u  nm[        UU4S jU 5       S 5      nUc   e[        USS 5      b   eUR                  S   [        R                   " U5      S-  :X  a  M^   e   S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrZ   ú&https://test_text_urls.matplotlib.org/©r-   r,   ©Úfigsizeçš™™™™™¹?ztest plain 123Úplain)Úurlgš™™™™™Ù?ztest mathtext $123$Úmathtextr/   r0   r   ))z0.1r¶   )z0.4r¸   c              3   óf   >#   • U  H&  oR                   R                  T T 3:X  d  M"  Uv •  M(     g 7f©N©ÚAÚURI)Ú.0ÚaÚfragmentÚtest_urls     €€r(   Ú	<genexpr>Ú!test_text_urls.<locals>.<genexpr>ï   s)   øé € ÐM¢˜1¯#©#¯'©'¸°zÀ(ÀÐ5LÑ*L—Q‘Q¢ùs   ƒ!1¨	1Ú
QuadPointsr,   éH   )r`   ra   r!   rD   r$   r2   r3   r6   re   rf   rg   ÚAnnotsÚnextÚgetattrÚRectÚdecimalÚDecimal)	rZ   r&   Úfdr/   ÚannotsÚyÚannotrÀ   rÁ   s	          @@r(   Útest_text_urlsrÐ   Ü   s+  ù€ Ü×!Ò! )Ó,€Gà7€Hä
�*Š*˜VÑ
$€CØ‡H�HˆS�#Ð'°¨z¸Ð-?€HÑ@Ø‡H�HˆS�#Ð,°X°J¸hÐ2G€HÑHä	�ŠŒ˜Ø�‰�B˜uˆÑ%à�[‰[×Ñ˜bÔ! SØ—Y‘Y˜q‘\×(Ñ(ˆFó  G‘��8ÜÝM¡ÓMØó�ð Ñ(Ð(Ð(Ü˜u l°DÓ9ÑAÐAÐAà—z‘z !‘}¬¯ª¸Ó(:¸RÑ(?Õ?Ð?Ð?ñ  G÷ "÷ 
ˆ÷ "Õ!ú÷ 
�ús+   Á.,D:ÂA6D)ÄD)ÄD:Ä)
D7	Ä3D:Ä:
Ec                  ój  ^• [         R                  " S5      n Sm[        R                  " SS9nUR	                  SSSST S9  [
        R                  " 5        nUR                  US	S
9  U R                  R                  U5       nUR                  S   R                  n[        U4S jU 5       S 5      nUc   e[        USS 5      c   eUR                  S   UR                  S   [         R"                  " S5      -
  :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrZ   r±   )r,   r,   r³   rµ   ÚNé-   )Úrotationr·   r/   r0   r   c              3   ó`   >#   • U  H#  oR                   R                  T :X  d  M  Uv •  M%     g 7frº   r»   ©r¾   r¿   rÁ   s     €r(   rÂ   Ú)test_text_rotated_urls.<locals>.<genexpr>  s"   øé € Ð?šF�q§c¡c§g¡g°H°:Ñ&>—‘šFùs   ƒ.¥	.rÄ   é   z0.00001)r`   ra   r!   rD   r$   r2   r3   r6   re   rf   rg   rÆ   rÇ   rÈ   rÉ   rÄ   rÊ   rË   ©rZ   r&   rÌ   r/   rÍ   rÏ   rÁ   s         @r(   Útest_text_rotated_urlsrÚ   ÷   s  ø€ Ü×!Ò! )Ó,€Gà7€Hä
�*Š*˜VÑ
$€CØ‡H�HˆS�#�s R°¨z€HÑ;ä	�ŠŒ˜Ø�‰�B˜uˆÑ%à�[‰[×Ñ˜bÔ! SØ—Y‘Y˜q‘\×(Ñ(ˆFô Ü?™FÓ?ØóˆEð Ñ$Ð$Ð$Ü˜5 ,°Ó5ÑAÐAÐAà—:‘:˜a‘=Ø×Ñ Ñ"¤W§_¢_°YÓ%?Ñ?ó@ð @ñ @÷ "÷ 
ˆ÷ "Õ!ú÷ 
�ús%   Á,D$ÂA>DÄD$Ä
D!	ÄD$Ä$
D2c                  ó4  ^• [         R                  " S5      n Sm[        R                  " SS9nUR	                  SSSST S	3S
9  [
        R                  " 5        nUR                  USS9  U R                  R                  U5       nUR                  S   R                  n[        U4S jU 5       S 5      nUc   eUR                  S   [        R                  " S5      S-  :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrZ   r±   r²   r³   rµ   gffffffæ?ztest tex $123$TÚtex)Úusetexr·   r/   r0   r   c              3   ód   >#   • U  H%  oR                   R                  T S 3:X  d  M!  Uv •  M'     g7f)rÜ   Nr»   rÖ   s     €r(   rÂ   Ú%test_text_urls_tex.<locals>.<genexpr>#  s'   øé € ÐBšF�q§c¡c§g¡g°H°:¸SÐ1AÑ&A—‘šFùs   ƒ 0§	0r,   z0.7rÅ   )r`   ra   r!   rD   r$   r2   r3   r6   re   rf   rg   rÆ   rÇ   rÉ   rÊ   rË   rÙ   s         @r(   Útest_text_urls_texrà     sì   ø€ ä×!Ò! )Ó,€Gà7€Hä
�*Š*˜VÑ
$€CØ‡H�HˆS�#Ð'°¸X¸JÀcÐ:J€HÑKä	�ŠŒ˜Ø�‰�B˜uˆÑ%à�[‰[×Ñ˜bÔ! SØ—Y‘Y˜q‘\×(Ñ(ˆFô ÜB™FÓBØóˆEð Ñ$Ð$Ð$à—:‘:˜a‘=¤G§O¢O°EÓ$:¸RÑ$?Ó?Ð?Ñ?÷ "÷ 
ˆ÷ "Õ!ú÷ 
�ús%   Á,D	ÂA!C8Ã'D	Ã8
D	ÄD	Ä	
Dc                 óœ   • [        U S-  5       nUR                  [        R                  " 5       5        S S S 5        g ! , (       d  f       g = f)Nz
unused.pdf)r   r6   r!   rD   )rE   r/   s     r(   Útest_pdfpages_fspathrâ   *  s/   € Ü	�(˜\Ñ)Ô	*¨cØ�‰”C—J’J“LÔ!÷ 
+×	*Ö	*ús	   �%=½
Azhatching_legend.pdfÚmpl20c                 ó”   • [         R                  " SS9n[        SS/SSSSS9n[        SS/SSSSS9nUR                  X#X#// SQ5        g	)
z.Test for correct hatching on patches in legend)r,   r-   r³   r   ÚgreenÚXXXX)Ú	facecolorÚhatchÚblue)Ú rê   rê   rê   N)r!   rD   r   Úlegend)Útext_placeholdersr&   r¿   Úbs       r(   Útest_hatching_legendrî   /  sS   € ô �*Š*˜VÑ
$€Cä�1�a�&˜!˜Q¨'¸Ñ@€AÜ�1�a�&˜!˜Q¨&¸Ñ?€Að ‡J�J��aˆ|Ò-Õ.r*   zgrayscale_alpha.pdfc                  ó<  • [         R                  SSS2SSS24   u  p[         R                  " U S-  US-  -   * 5      n[         R                  X"S:  '   [        R
                  " 5       u  p4UR                  USSS9  UR                  / 5        UR                  / 5        g)z9Masking images with NaN did not work for grayscale imageséþÿÿÿr-   rµ   ÚnoneÚgray_r)ÚinterpolationÚcmapN)	rM   ÚogridÚexpÚnanr!   r"   rR   Ú
set_xticksÚ
set_yticks)ÚxrÎ   Úddr&   r'   s        r(   Útest_grayscale_alpharü   <  s‡   € ô �8‰8�B�q˜�G˜R  "˜WÐ$Ñ%�D€AÜ	�Š�!�Q‘$˜˜A™‘+�Ó	€BÜ—&‘&€BˆB�w�KÜ�lŠl‹n�G€CØ‡I�Iˆb ¨X€IÑ6Ø‡M�M�"ÔØ‡M�M�"Õr*   Údefaultr/   Úeps)Ú
extensionsc           	      óú   • U R                  5       nUR                  5         UR                  [        R                  " [        R
                  " SSS5      5      SSS9  UR                  5       nUR                  5         g )NrI   rJ   éd   r¢   rñ   ©Úc)Úadd_subplotÚset_axis_offr5   rM   rP   Úlinspace)Úfig_testÚfig_refÚax_testÚax_refs       r(   Ú'test_pdf_eps_savefig_when_color_is_noner  H  s`   € ð ×"Ñ"Ó$€GØ×ÑÔØ‡L�L”—’œŸš B¨¨3Ó/Ó0°#¸€LÑ@Ø× Ñ Ó"€FØ
×ÑÕr*   c                  óæ   • [         R                  " SSS9  [        R                  " [        5         [         R
                  " [        R                  " 5       SS9  SSS5        g! , (       d  f       g= f)z"Test failing latex subprocess callz$22_2_2$T)rÝ   r/   r0   N)r!   Úxlabelr`   ÚraisesÚRuntimeErrorr6   r2   r3   © r*   r(   Útest_failing_latexr  R  s>   € ô ‡J‚Jˆz $Ò'Ü	�Š”|Õ	$Ü�Š”B—J’J“L¨Ò/÷ 
%×	$Ö	$ús   °)A"Á"
A0c                  óš   • [         R                  " 5       u  pUR                  / / SS9  U R                  [        R
                  " 5       SS9  g )NT)Ú
rasterizedr/   r0   )r!   r"   r5   r6   r2   r3   r¬   s     r(   Útest_empty_rasterizedr  Z  s7   € ä�lŠl‹n�G€CØ‡G�GˆB�˜t€GÑ$Ø‡K�K”—
’
“ U€KÒ+r*   zkerning.pdfc                  óz   • [         R                  " 5       n SnU R                  SSUSS9  U R                  SSUSS9  g )Nu   AVAVAVAVAVAVAVAVâ‚¬AAVVr   g      Ð?rJ   ©Úsizeg      è?é   )r!   rD   r$   )r&   r@   s     r(   Útest_kerningr  a  s:   € ä
�*Š*‹,€CØ!€AØ‡H�HˆQ��Q˜Q€HÑØ‡H�HˆQ��Q˜R€HÒ r*   c                  óŽ  • [        [        S5      5      n Sn[        U 5      nUR                  U5        UR	                  5       nU Vs1 s H  oC[        U5         iM     nn[        [        R                  " U S5      U5       n[        [        UR                  5      5      nS S S 5        WR                  U5        UR	                  5       n1 UkU V	s1 s H  n	[        U	5      iM     sn	:X  d   e[        U5      [        U5      :  d   eUR                  5       UR                  5       :X  d   eg s  snf ! , (       d  f       N—= fs  sn	f )Nzfonts/ttf/DejaVuSerif.ttfz%these should be subsetted! 1234567890r   )rœ   r   r	   Úset_textÚget_charmapÚordr
   ÚfmÚFontPathr   ÚfontÚchrr=   Úget_num_glyphs)
ÚfpathÚcharsÚ	nosubfontÚ	nosubcmapr  Úglyph_indicesÚsubsetÚsubfontÚsubcmapÚkeys
             r(   Útest_glyphs_subsetr,  i  s  € Ü”Ð:Ó;Ó<€EØ3€Eô ˜“€IØ×Ñ�uÔØ×%Ñ%Ó'€Iñ 16Ó6²¨1œs 1›vÔ&±€MÐ6Ü	œ2Ÿ;š; u¨aÓ0°-Ô	@ÀFÜœ, v§{¡{Ó3Ó4ˆ÷ 
Aà×Ñ�UÔØ×!Ñ!Ó#€Gð ˆUˆ8©GÓ4ªG Sœ˜Cž©GÑ4Ó4Ð4Ð4ô ˆw‹<œ#˜i›.Ó(Ð(Ð(ð ×!Ñ!Ó# y×'?Ñ'?Ó'AÓAÐAÑAùò 7ß	@Õ	@üò 5s   ÁD,ÂD1ÃEÄ1
D?zmulti_font_type3.pdfc                  óÀ   • [        5       u  p[        R                  " SU SS9  [        R                  " SSS9  [        R                  " SS9nUR	                  S	S	US
S
S9  g )Nr   é   ©Úfamilyr  r/   r.   ©Úfonttype©r   rØ   r³   r   r   ©r   r   ©r   r!   ÚrcrD   r$   ©ÚfontsÚtest_strr&   s      r(   Útest_multi_font_type3r:  ƒ  sU   € ä*Ó,�O€EÜ‡F‚Fˆ6˜% bÒ)Ü‡F‚Fˆ5˜1Òä
�*Š*˜VÑ
$€CØ‡H�HˆS�#�xØ!)¸Xð ò Gr*   zmulti_font_type42.pdfc                  óÀ   • [        5       u  p[        R                  " SU SS9  [        R                  " SSS9  [        R                  " SS9nUR	                  S	S	US
S
S9  g )Nr   r.  r/  r/   é*   r1  r3  r³   r   r   r4  r5  r7  s      r(   Útest_multi_font_type42r=  Ž  sU   € ä*Ó,�O€EÜ‡F‚Fˆ6˜% bÒ)Ü‡F‚Fˆ5˜2Òä
�*Š*˜VÑ
$€CØ‡H�HˆS�#�xØ!)¸Xð ò Gr*   zttc_type3.pdfc            
      óú  • [         R                  " S/S9n [        [         R                  " U 5      5      R                  S:w  a  [
        R                  " S5        SS/n[        R                  " SSS9  [        R                  " S	S
S9  [        R                  " S[        U5      S-  4S9R                  [        U5      5      n[        X5       H,  u  p4UR                  SSU S[        R                   3USSS9  M.     g )NúWenQuanYi Zen Hei©r0  úwqy-zenhei.ttcú"Font wqy-zenhei.ttc may be missingúWenQuanYi Zen Hei Monor   r.  r  r/   r.   r1  é   r-   r³   r   ú: r   ©r   r   r   ©r  ÚFontPropertiesr   ÚfindfontÚnamer`   Úskipr!   r6  rD   r=   Ú
subfiguresÚzipr$   ÚstringÚascii_uppercase©Úfpr8  Úfigsr   r&   s        r(   Útest_ttc_type3rS  ™  sÒ   € ä	×	Ò	Ð#6Ð"7Ñ	8€BÜŒB�KŠK˜‹OÓ×!Ñ!Ð%5Ó5Ü�ŠÐ8Ô9à Ð":Ð;€EÜ‡F‚Fˆ6˜ÒÜ‡F‚Fˆ5˜1Òä�:Š:˜q¤# e£*¨q¡.Ð1Ñ2×=Ñ=¼cÀ%»jÓI€DÜ˜Ö%‰	ˆØ�‰��c˜d˜V 2¤f×&<Ñ&<Ð%=Ð>ÀTØ%-Àð 	ó 	Kò &r*   zttc_type42.pdfc            
      óú  • [         R                  " S/S9n [        [         R                  " U 5      5      R                  S:w  a  [
        R                  " S5        SS/n[        R                  " SSS9  [        R                  " S	S
S9  [        R                  " S[        U5      S-  4S9R                  [        U5      5      n[        X5       H,  u  p4UR                  SSU S[        R                   3USSS9  M.     g )Nr?  r@  rA  rB  rC  r   r.  r  r/   r<  r1  rD  r-   r³   r   rE  r   rF  rG  rP  s        r(   Útest_ttc_type42rU  ©  sÒ   € ä	×	Ò	Ð#6Ð"7Ñ	8€BÜŒB�KŠK˜‹OÓ×!Ñ!Ð%5Ó5Ü�ŠÐ8Ô9à Ð":Ð;€EÜ‡F‚Fˆ6˜ÒÜ‡F‚Fˆ5˜2Òä�:Š:˜q¤# e£*¨q¡.Ð1Ñ2×=Ñ=¼cÀ%»jÓI€DÜ˜Ö%‰	ˆØ�‰��c˜d˜V 2¤f×&<Ñ&<Ð%=Ð>ÀTØ%-Àð 	ó 	Kò &r*   zfamily_name, file_name)z	Noto SanszNotoSans-Regular.otf)ÚFreeMonozFreeMono.otfc                 ó€  • [         R                  " U /S9n[        [         R                  " U5      5      R                  U:w  a  [
        R                  " SU  S35        [        R                  " SU /SS9  [        R                  " 5       nUR                  SSS	5        UR                  [        R                  " 5       S
S9  g )Nr@  zFont z may be missingr   é   r/  g333333Ã?gffffffÞ?u   ÐŸÑ€Ð¸Ð²ÐµÑ‚ Ð¼Ð¸Ñ€!r/   r0   )r  rH  r   rI  rJ  r`   rK  r!   r6  rD   r$   r6   r2   r3   )Úfamily_nameÚ	file_namerQ  r&   s       r(   Útest_otf_font_smoker[  ¹  sŠ   € ô
 
×	Ò	 ; -Ñ	0€BÜŒB�KŠK˜‹OÓ×!Ñ! YÓ.Ü�Š�e˜K˜=¨Ð8Ô9ä‡F‚Fˆ6˜;˜-¨bÒ1ä
�*Š*‹,€CØ‡H�HˆT�5Ð0Ô1Ø‡K�K”—
’
“ U€KÒ+r*   ztruetype-conversion.pdfc                 óö   • S[         R                  S'   [        R                  " 5       u  pUR	                  SSS[        [        5      R                  S-  SS9  UR                  / 5        UR                  / 5        g )Nr.   zpdf.fonttyper   ÚABCDEzdata/mpltest.ttfrÅ   )r   r   )
r�   r   r!   r"   r$   r   Ú__file__Úparentrø   rù   )Úrecwarnr&   r'   s      r(   Útest_truetype_conversionra  É  sd   € ð $%„C‡L�L�Ñ Ü�lŠl‹n�G€CØ‡G�GˆAˆq�'Ü”h“×&Ñ&Ð);Ñ;Àbð ñ Jà‡M�M�"ÔØ‡M�M�"Õr*   Ú
heuristicazLaTeX lacks heuristica package)Úreasonzfont-heuristica.pdfc                  óà   • SR                  S5      [        R                  S'   [        R                  " 5       u  pUR                  SSSSSS9  UR                  / 5        UR                  / 5        g )	NÚ
)z\usepackage{heuristica}ú\usepackage[T1]{fontenc}ú\usepackage[utf8]{inputenc}útext.latex.preamblerµ   zBHTem fi ffl 1234Té2   ©rÝ   r   ©Újoinr�   r   r!   r"   r$   rø   rù   r¬   s     r(   Útest_font_heuristicarm  Õ  s_   € ð
 +/¯)©)ð 5ó +„C‡L�LÐ&Ñ'ô
 �lŠl‹n�G€CØ‡G�GˆC�Ð*°4À"€GÑEØ‡M�M�"ÔØ‡M�M�"Õr*   Ú
DejaVuSanszLaTeX lacks DejaVuSans packagezfont-dejavusans.pdfc                  ó  • SR                  S5      [        R                  S'   [        R                  " 5       u  pUR                  SSSSSS9  UR                  SS	S
SSS9  UR                  / 5        UR                  / 5        g )Nre  )z\usepackage{DejaVuSans}rf  rg  rh  rµ   u   \textsf{Ã±Ã¤Ã¶ ABCDabcd}Tri  rj  ç333333Ó?z\textsf{fi ffl 1234}rk  r¬   s     r(   Útest_font_dejavusansrq  å  sv   € ð
 +/¯)©)ð 5ó +„C‡L�LÐ&Ñ'ô �lŠl‹n�G€CØ‡G�GˆC�Ð1¸$È€GÑLØ‡G�GˆC�Ð-°dÀR€GÑHØ‡M�M�"ÔØ‡M�M�"Õr*   ÚcharterzLaTeX lacks charter packagezfont-bitstream-charter.pdfc                  ó  • SR                  S5      [        R                  S'   [        R                  " 5       u  pUR                  SSSSSS9  UR                  SS	S
SSS9  UR                  / 5        UR                  / 5        g )Nre  )z\usepackage{charter}rf  rg  rh  rµ   u   Ã¥Ã¼Å¡ ABCDabcdTri  rj  rp  zfi ffl 1234rk  r¬   s     r(   Útest_font_bitstream_charterrt  ÷  su   € ð +/¯)©)ð 5ó +„C‡L�LÐ&Ñ'ô
 �lŠl‹n�G€CØ‡G�GˆC�Ð(°À€GÑCØ‡G�GˆC��n¨T¸B€GÑ?Ø‡M�M�"ÔØ‡M�M�"Õr*   c                  óÖ  • [         R                  R                  S5      n SnU R                  U5      S-  nU R                  U5      S-  nU R                  U5      n[        R                  " 5       u  pVUR                  X#US9  UR                  SS5        UR                  SS5        [        R                  " 5       nUR                  USS9  UR                  5       n[        R                  " U5        [        R                  " 5       u  pšU
R                  / / 5        U
R                  SS5        U
R                  SS5        [        R                  " 5       nU	R                  USS9  UR                  5       n[        R                  " U	5        [        R                  " 5       u  pÞUR                  US-   US-   US9  UR                  SS5        UR                  SS5        [        R                  " 5       nUR                  USS9  UR                  5       n[        R                  " U5        XŒS	-   :  d   S
U SU S35       eUUS-   :”  d   SU SU S35       eUUS-   :”  d   SU SU S35       eg)a  
Test that off-axis scatter plots with per-point colors don't bloat PDFs.

Regression test for issue #2488. When scatter points with per-point colors
are completely outside the visible axes, the PDF backend should skip
writing those markers to significantly reduce file size.
é!N,éè  r9   r  r  é   r/   r0   iˆ  zOff-axis colored scatter PDF (z< bytes) is too large. Expected close to empty scatter size (z- bytes). Markers may not be properly skipped.i˜:  zVisible scatter PDF (z* bytes) should be much larger than empty (z bytes) to validate the test.z- bytes) should be much larger than off-axis (z! bytes) to validate optimization.N)rM   ÚrandomÚdefault_rngr!   r"   ÚscatterrQ   Úset_ylimr2   r3   r6   ÚtellÚclose)ÚrngÚn_pointsrú   rÎ   r  Úfig1Úax1Úbuf1Úsize_offaxis_coloredÚfig2Úax2Úbuf2Ú
size_emptyÚfig3Úax3Úbuf3Úsize_visibles                    r(   Ú%test_scatter_offaxis_colored_pdf_sizer�    sC  € ô �)‰)×
Ñ
 Ó
)€Cà€HØ�
‰
�8Ó˜rÑ!€AØ�
‰
�8Ó˜rÑ!€AØ�
‰
�8Ó€Aô —’“�I€DØ‡K�K�˜€KÑØ‡L�L��RÔØ‡L�L��RÔä�:Š:‹<€DØ‡L�L�˜e€LÑ$ØŸ9™9›;ÐÜ‡I‚Iˆd„Oô —’“�I€DØ‡K�K��BÔØ‡L�L��RÔØ‡L�L��RÔä�:Š:‹<€DØ‡L�L�˜e€LÑ$Ø—‘“€JÜ‡I‚Iˆd„Oô —’“�I€DØ‡K�K��B‘˜˜B™ !€KÑ$Ø‡L�L��RÔØ‡L�L��RÔä�:Š:‹<€DØ‡L�L�˜e€LÑ$Ø—9‘9“;€LÜ‡I‚Iˆd„Oð  ¨uÑ"4Ó4ð Ø
(Ð)=Ð(>ð ?1Ø1;°ð =/ð	0óÐ4ð ˜* vÑ-Ó-ð Ø
 ˜~ð .Ø!�lÐ"?ð	AóÐ-ð Ð.°Ñ7Ó7ð Ø
 ˜~ð .Ø.Ð/Ð/Pð	RóÑ7r*   c                 óÌ  • [         R                  R                  S5      nSnUR                  U5      S-  nUR                  U5      S-  nUR                  U5      nU R                  5       nUR	                  XEUSS9  UR                  SS5        UR                  SS5        UR                  5       nUR	                  XEUSS9  UR                  SS5        UR                  SS5        g)	z¡
Test that on-axis scatter with per-point colors still renders correctly.

Ensures the optimization for off-axis markers doesn't break normal
scatter rendering.
rv  r  rJ   ri  ©r  r@   r   r9   N)rM   ry  rz  r"   r{  rQ   r|  ©	r  r  r  r€  rú   rÎ   r  r	  r
  s	            r(   Ú#test_scatter_offaxis_colored_visualr‘  N  sÑ   € ô �)‰)×
Ñ
 Ó
)€Cà€HØ�
‰
�8Ó˜qÑ €AØ�
‰
�8Ó˜qÑ €AØ�
‰
�8Ó€Að ×ÑÓ!€GØ‡O�O�A˜A €OÑ$Ø×Ñ�Q˜ÔØ×Ñ�Q˜Ôð ×ÑÓ€FØ
‡N�N�1˜1 €NÑ#Ø
‡O�O�A�rÔØ
‡O�O�A�rÕr*   c                 ó�  • [         R                  R                  S5      nSnUR                  U5      S-  nUR                  U5      S-  nUR                  U5      S-  S-   nUR                  U5      S-  S-   n[         R                  " XF/5      n[         R                  " XW/5      n	UR                  SU-  5      n
U R	                  5       nUR                  X‰U
SS9  UR                  SS5        UR                  SS5        UR	                  5       nUR                  XEU
S	U SS9  UR                  SS5        UR                  SS5        g	)
z¬
Test scatter with some points on-axis and some off-axis.

Ensures the optimization correctly handles the common case where only
some markers are outside the visible area.
rv  ri  rJ   é   r-   r�  r   r9   N)rM   ry  rz  Úconcatenater"   r{  rQ   r|  )r  r  r  r€  Úx_onÚy_onÚx_offÚy_offrú   rÎ   r  r	  r
  s                r(   Útest_scatter_mixed_onoff_axisr™  j  s-  € ô �)‰)×
Ñ
 Ó
)€Cð €HØ�:‰:�hÓ !Ñ#€DØ�:‰:�hÓ !Ñ#€DØ�J‰J�xÓ  1Ñ$ rÑ)€EØ�J‰J�xÓ  1Ñ$ rÑ)€Eä
�Š˜�}Ó%€AÜ
�Š˜�}Ó%€AØ�
‰
�1�x‘<Ó €Að ×ÑÓ!€GØ‡O�O�A˜A €OÑ$Ø×Ñ�Q˜ÔØ×Ñ�Q˜Ôð ×ÑÓ€FØ
‡N�N�4  9 H °€NÑ4Ø
‡O�O�A�rÔØ
‡O�O�A�rÕr*   c                 ó¨  • [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      nU R                  5       nUR                  X#USS9  UR	                  SS5        UR                  SS5        UR                  5       nUR                  X#USS9  UR	                  SS5        UR                  SS5        g)	zÌ
Test that large markers are rendered when partially visible.

Addresses reviewer concern: markers with centers outside the canvas but
with edges extending into the visible area should still be rendered.
)ç      à¿g      %@rJ   )rJ   rJ   r›  )gš™™™™™É?r   gš™™™™™é?iô  r�  r   r9   N)rM   Úarrayr"   r{  rQ   r|  )r  r  rú   rÎ   r  r	  r
  s          r(   Ú'test_scatter_large_markers_partial_clipr�  Œ  s®   € ô 	�Š’Ó!€AÜ
�Š’Ó€AÜ
�Š’Ó!€Að ×ÑÓ!€GØ‡O�O�A˜A €OÑ%Ø×Ñ�Q˜ÔØ×Ñ�Q˜Ôð ×ÑÓ€FØ
‡N�N�1˜1 €NÑ$Ø
‡O�O�A�rÔØ
‡O�O�A�rÕr*   c                 ó`  • [         R                  R                  S5      nSnSUR                  U5      S-  -  nSUR                  U5      S-  -  nUR                  U5      nU R                  5       nUR	                  XEUSS9  UR                  S5        UR                  S5        UR                  SS5        UR                  SS5        UR                  5       nUR	                  XEUSS9  UR                  S5        UR                  S5        UR                  SS5        UR                  SS5        g	)
z}
Test scatter optimization with logarithmic scales.

Ensures bounds checking works correctly in log-transformed coordinates.
rv  ri  r9   é   r�  Úlogr  rw  N)	rM   ry  rz  r"   r{  Ú
set_xscaleÚ
set_yscalerQ   r|  r�  s	            r(   Útest_scatter_logscaler£  ¨  s  € ô �)‰)×
Ñ
 Ó
)€Cð €HØ
ˆs�z‰z˜(Ó# aÑ'Ñ(€AØ
ˆs�z‰z˜(Ó# aÑ'Ñ(€AØ�
‰
�8Ó€Að ×ÑÓ!€GØ‡O�O�A˜A €OÑ$Ø×Ñ�uÔØ×Ñ�uÔØ×Ñ�S˜$ÔØ×Ñ�S˜$Ôð ×ÑÓ€FØ
‡N�N�1˜1 €NÑ#Ø
×Ñ�eÔØ
×Ñ�eÔØ
‡O�O�C˜ÔØ
‡O�O�C˜Õr*   c                 óª  • [         R                  R                  S5      nSnUR                  U5      S-  [         R                  -  nUR                  U5      S-  nUR                  U5      nU R	                  SS0S9nUR                  XEUSS9  UR                  S	S5        UR	                  SS0S9nUR                  XEUSS9  UR                  S	S5        g
)zr
Test scatter optimization with polar coordinates.

Ensures bounds checking works correctly in polar projections.
rv  ri  r-   r.   Ú
projectionÚpolar)Ú
subplot_kwr�  r   N)rM   ry  rz  Úpir"   r{  r|  )	r  r  r  r€  ÚthetaÚrr  r	  r
  s	            r(   Útest_scatter_polarr«  È  sÐ   € ô �)‰)×
Ñ
 Ó
)€Cà€HØ�J‰J�xÓ  1Ñ$¤r§u¡uÑ,€EØ�
‰
�8Ó˜qÑ €AØ�
‰
�8Ó€Að ×Ñ¨L¸'Ð+BÐÐC€GØ‡O�O�E  R€OÑ(Ø×Ñ�Q˜Ôð ×Ñ¨,¸Ð)@ÐÐA€FØ
‡N�N�5˜q B€NÑ'Ø
‡O�O�A�qÕr*   g      ð?)rÿ   Útolc                 óà  • [         R                  R                  S5      nUR                  SS9nUR                  SS9nU R	                  5       nUR                  X4SSS9  UR                  SS5        UR                  SS5        UR                  5         UR	                  5       nUR                  US-   US-   SSS9  UR                  S	S
5        UR                  S	S
5        UR                  5         g)a8  
Test path collection culling with non-canvas-space offsets.

Hexbin uses a repeated polygon path with offsets transformed by
AffineDeltaTransform.  The transformed offsets are displacements, not the
final canvas-space marker centers, so PDF backend culling must account for
the transformed path bounds as well.
rv  i'  r  é   rñ   )ÚgridsizeÚ
edgecolorsg       Àg       @g        g      @N)	rM   ry  rz  Únormalr"   ÚhexbinrQ   r|  r  )r  r  r  rú   rÎ   r	  r
  s          r(   Útest_hexbin_negative_offsetsr³  á  sÖ   € ô �)‰)×
Ñ
 Ó
)€CØ�
‰
˜ˆ
Ð€AØ�
‰
˜ˆ
Ð€Aà×ÑÓ!€GØ‡N�N�1 "°€NÑ8Ø×Ñ�T˜3ÔØ×Ñ�T˜3ÔØ×ÑÔà×ÑÓ€FØ
‡M�M�!�c‘'˜1˜s™7¨R¸F€MÑCØ
‡O�O�C˜ÔØ
‡O�O�C˜ÔØ
×ÑÕr*   )Or—   rÊ   r2   Úpathlibr   rN  ÚnumpyrM   Úpackaging.versionr   rh   r`   Ú
matplotlibr�   r   r!   r   r   r  Úmatplotlib.cbookr   Úmatplotlib.ft2fontr	   Ú#matplotlib.backends._backend_pdf_psr
   r   Úmatplotlib.backends.backend_pdfr   Úmatplotlib.patchesr   Úmatplotlib.testingr   r   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.testing._markersr   r)   r7   rA   rG   rX   r{   r¤   r­   r¯   rÐ   rÚ   rà   râ   rî   rü   r   Úcontextr  r  r  r  r,  r:  r=  rS  rU  ÚmarkÚparametrizer[  ra  Úskipifrm  rq  rt  r�  r‘  r™  r�  r£  r«  r³  r  r*   r(   Ú<module>rÄ     sÂ  ðÛ Û Û 	Ý Û ã Ý 4Û ã ÷ñ õ ,Ý &ß OÝ 4Ý (ß Eß OÝ 4ñ Ð+Ð,°OÑDñ#ó Eð#ò&(ò	òò+ò&-ò6 òFJò("òJ@ò6@ð4 ñ@ó ð@ò0"ñ
 Ð(Ð)°Ñ9ñ	/ó :ð	/ñ Ð(Ð)°ÑAñó Bðð ‡�×Ñ�9ÓÙ ¨ Ñ/ñó 0ó ðð ñ0ó ð0ò,ñ �=�/¨Ñ1ñ!ó 2ð!òBñ4 Ð)Ð*°'Ñ:ñGó ;ðGñ Ð*Ð+°7Ñ;ñGó <ðGñ �?Ð#¨7Ñ3ñKó 4ðKñ Ð#Ð$¨GÑ4ñKó 5ðKð ‡�×ÑÐ1Ø?Ø6ð8ó9ñ
,ó9ð
,ñ Ð,Ð-°WÑ=ñó >ðð ‡�×ÑÑ(¨Ó6Ô6Ø;ð ð =áÐ(Ð)°ÑAñ
ó Bó=ð
ð ‡�×ÑÑ(¨Ó6Ô6Ø;ð ð =áÐ(Ð)°ÑAñó Bó=ðð ‡�×ÑÑ(¨Ó3Ô3Ø8ð ð :áÐ/Ð0¸ÑHñ
ó Ió:ð
òDñN   Ñ(ñó )ðñ6   Ñ(ñó )ðñB   Ñ(ñó )ðñ6   Ñ(ñó )ðñ>   Ñ(ñó )ðñ0   ¨SÑ1ñó 2ñr*   