Ë
    %êñi€2  ã                   óÊ  — d dl 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mZ d dl	Z	d dl
Z
d dl
mZ d dlmZ d dl
mZ 	 d dlmZ d dlmZ d d	lmZ dZe	j4                  d„ «       Ze	j,                  j9                  dd¬«      d„ «       Ze	j,                  j=                  dddgdfdg dfddgdfddgdfdg dfddgdfddgdfdg d ¢d!fd"g dfd#g d$fd#dgd%fgg d&¢¬'«      e	j,                  j=                  d( e	j>                  d)e	j,                  j9                  d)d¬«      ¬*«       e	j>                  de	j,                  j9                  dd¬«      ¬*«      g«      d+„ «       «       Z e	j,                  j9                  dd¬«      d,„ «       Z!e	j,                  j9                  dd¬«      d-„ «       Z"e	j,                  j9                  dd¬«      d.„ «       Z#e	j,                  j9                  dd¬«      d/„ «       Z$e	j,                  j9                  dd¬«      d0„ «       Z%e	j,                  j9                  dd¬«      d1„ «       Z&e	j,                  j9                  dd¬«      d2„ «       Z'e	j,                  j9                  d)d¬«      d3„ «       Z(d4„ Z)e	j,                  j9                  dd¬«      d5„ «       Z*e	j,                  j9                  dd¬«      d6„ «       Z+y# e$ r e	j,                  j/                  d
«      ZY �Œ‘w xY w)7é    N)ÚdateÚdatetime)Úmock)Úpyplot)ÚGcf)Ú_c_internal_utils)ÚQtGui)Ú	QtWidgets)Ú_formlayoutzNo usable Qt bindingsé<   c                 ó   — ddl m} |S )Nr   )ÚQtCore)Úmatplotlib.backends.qt_compatr   )Úrequestr   s     úb/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/matplotlib/tests/test_backend_qt.pyÚqt_corer      s
   € å4Ø€Mó    ÚQtAggT)Úskip_on_importerrorc                  óø   — t        j                   t        j                  «      } t        j                  «       }|j
                  j                  j                  j                  «        | t        j                  k(  sJ ‚y ©N)	Úcopyr   ÚfigsÚpltÚfigureÚcanvasÚmanagerÚwindowÚclose)Ú	init_figsÚfigs     r   Útest_fig_closer"   "   sU   € ô —	‘	œ#Ÿ(™(Ó#€Iô �*‰*‹,€Cð ‡J�J×Ñ×Ñ×#Ñ#Ô%ð œŸ™Ò Ð Ñ r   zqt_key, qt_mods, answerÚKey_AÚShiftModifierÚAÚaÚControlModifierzctrl+aÚ
Key_Aacuteõ   Ã�õ   Ã¡ÚKey_ControlÚAltModifierzalt+controlÚKey_Altzctrl+alt)r'   r,   ÚMetaModifieru   ctrl+alt+meta+Ã¡ÚKey_PlayÚKey_BackspaceÚ	backspacezctrl+backspace)ÚshiftÚlowerÚcontrolÚunicode_upperÚunicode_lowerÚalt_controlÚcontrol_altÚmodifier_orderÚnon_unicode_keyr1   Úbackspace_mod)ÚidsÚbackendÚQt5Agg)Úmarksc                 óT  ‡‡
‡‡‡— ddl mŠmŠ
 t        j                  dk(  r8|�6|j                  dd«      }|j                  dd«      }|j                  dd«      }dŠ‰
j                  j                  j                  Š|D ]%  }‰t        ‰
j                  j                  |«      z  ŠŒ'  G ˆ
ˆˆfd	„d
«      }|j                  t        j                  dˆfd„«       ˆfd„}t        j                  «       j                  }	|	j!                  d|«       |	j#                   |«       «       ‰|k(  sJ ‚y)zª
    Make a figure.
    Send a key_press_event event (using non-public, qtX backend specific api).
    Catch the event.
    Assert sent and caught keys are the same.
    r   )Ú_to_intr   ÚdarwinNÚctrlÚcmdr4   Úmetac                   ó"   •— e Zd Zd„ Zˆ ˆˆfd„Zy)ú test_correct_key.<locals>._Eventc                  ó   — y)NF© )Úselfs    r   ÚisAutoRepeatz-test_correct_key.<locals>._Event.isAutoRepeat{   s   €  ur   c                 óP   •—  ‰t        ‰j                  j                  ‰«      «      S r   )ÚgetattrÚQtÚKey)rJ   r   rA   Úqt_keys    €€€r   Úkeyz$test_correct_key.<locals>._Event.key|   s   ø€ ™g¤g¨f¯i©i¯m©m¸VÓ&DÓEÐEr   N)Ú__name__Ú
__module__Ú__qualname__rK   rQ   )r   rA   rP   s   €€€r   Ú_EventrG   z   s	   ø„ Ú,ßEr   rU   ÚkeyboardModifiersc                 ó   •— ‰S r   rI   )rJ   Úqt_mods    €r   ú<lambda>z"test_correct_key.<locals>.<lambda>   s   ø€  V€ r   c                 ó   •— | j                   Šy r   )rQ   )ÚeventÚresults    €r   Úon_key_pressz&test_correct_key.<locals>.on_key_press�   s   ø€ à—‘‰r   Úkey_press_event)r   rA   r   ÚsysÚplatformÚreplacerN   ÚKeyboardModifierÚ
NoModifierrM   Úsetattrr
   ÚQApplicationr   r   r   Úmpl_connectÚkeyPressEvent)r=   r   rP   Úqt_modsÚanswerÚmonkeypatchÚmodrU   r]   Ú	qt_canvasr   rA   rX   r\   s     `       @@@@r   Útest_correct_keyrm   4   sÿ   ü€ ÷v >ä
‡|�|�xÒ FÐ$6Ø—‘ ¨Ó.ˆØ—‘ 	¨5Ó1ˆØ—‘ ¨Ó/ˆØ€FØ�Y‰Y×'Ñ'×2Ñ2€FØò ;ˆØ”'˜&Ÿ)™)×4Ñ4°cÓ:Ñ:‰ð;÷Fõ Fð ×Ñœ	×.Ñ.Ð0CÛ+ô-ôô —
‘
“×#Ñ#€IØ×ÑÐ+¨\Ô:Ø×Ñ™F›HÔ%Ø�VÒÐÑr   c                 ó   ‡ ‡
‡— d}t        j                  |«      5 Š
d‰
_        t        j                  dd¬«      }|j
                  Š‰j                  «        ˆ
ˆˆ fd„}‰j                  j                  «        ‰j                  «        ‰j                  «        ‰j                  «       }g d¢}|D ]º  \  }}}}	|� ||«       |j                  |k(  sJ ‚‰j                  j                  |k(  sJ ‚‰j                  j                  |	k(  sJ ‚|j                  «       d	k(  sJ ‚|j                  «       d
k(  sJ ‚‰j                  «       dk(  sJ ‚|j!                  «       dk(  j#                  «       rŒºJ ‚ 	 ddd«       y# 1 sw Y   yxY w)z}
    Make sure that if the pixel ratio changes, the figure dpi changes but the
    widget remains the same logical size.
    z?matplotlib.backends.backend_qt.FigureCanvasQT.devicePixelRatioFé   )é   é   éx   )ÚfigsizeÚdpic                 ó  •— | ‰_         ‰j                  «       j                  «       }t        d„ ‰j	                  «       j                  dd«      d d D «       «      }|dk\  rJ‰j                  j                  |‰j                  ‰j                  j                  j                  «      «       n)|j                  «       j                  j                  d«       ‰j                  «        ‰j                  «        ‰j                   | k(  sJ ‚y )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Úint)Ú.0Úxs     r   ú	<genexpr>zQtest_device_pixel_ratio_change.<locals>.set_device_pixel_ratio.<locals>.<genexpr>ž   s   è ø€ ò $FØ”�A—ñ$Fùs   ‚ú.rq   )é   r|   é`   )Úreturn_valuer   ÚwindowHandleÚtupleÚqVersionÚsplitÚQCoreApplicationÚ	sendEventÚQEventÚTypeÚDevicePixelRatioChangeÚscreenÚlogicalDotsPerInchChangedÚemitÚdrawÚflush_eventsÚdevice_pixel_ratio)Úratior   Úcurrent_versionÚprl   r   s      €€€r   Úset_device_pixel_ratioz>test_device_pixel_ratio_change.<locals>.set_device_pixel_ratioš   sÜ   ø€ Ø"ˆAŒNà×%Ñ%Ó'×4Ñ4Ó6ˆFÜ#ñ $FØ '× 0Ñ 0Ó 2× 8Ñ 8¸¸aÓ @ÀÀ!Ð Dô$Fó FˆOà &Ò(Ø×(Ñ(×2Ñ2ØØ—N‘N 7§>¡>×#6Ñ#6×#MÑ#MÓNõPð —‘“×9Ñ9×>Ñ>¸rÔBà�N‰NÔØ×"Ñ"Ô$ð ×/Ñ/°5Ò8Ð8Ñ8r   ))Néh  é  éÐ  )ro   r’   r“   r”   )rq   éð   i°  ià  )g      ø?é´   i„  r’   NéX  r•   )r—   r•   )r   Úpatchr~   r   r   r   Úshowr   r‹   rŒ   Úsizert   ÚrendererÚwidthÚheightÚget_width_heightÚget_size_inchesÚall)r   Úpropr!   r‘   rš   ÚoptionsrŽ   rt   rœ   r�   r�   rl   s   `         @@r   Útest_device_pixel_ratio_changer£   ‹   sj  ú€ ð M€DÜ	�‰�DÓ	ð 6;˜QØˆŒä�j‰j ¨SÔ1ˆØ—J‘Jˆ	Ø�‰Ôö	9ð. 	×Ñ×ÑÔ Ø�‰ÔØ×ÑÔ Ø�~‰~Óˆò
ˆð *1ò 	;Ñ%ˆE�3˜˜vØÐ Ù& uÔ-ð —7‘7˜c’>Ð!�>Ø×%Ñ%×+Ñ+¨uÒ4Ð4Ð4Ø×%Ñ%×,Ñ,°Ò6Ð6Ð6ð —:‘:“< 3Ò&Ð&Ð&Ø—;‘;“= CÒ'Ð'Ð'Ø×-Ñ-Ó/°:Ò=Ð=Ð=Ø×'Ñ'Ó)¨VÑ3×8Ñ8Õ:Ð:Ð:ñ	;÷S6;÷ 6;ñ 6;ús   ›EE4Å'E4Å4E=c                  óæ   — t        j                  «       \  } }t        j                  dd„ «      5  | j                  j
                  j                  j                  «        d d d «       y # 1 sw Y   y xY w)Nú#matplotlib.backends.qt_compat._execc                  ó   — y r   rI   ©Úobjs    r   rY   z"test_subplottool.<locals>.<lambda>Ï   ó   � r   )r   Úsubplotsr   r˜   r   r   ÚtoolbarÚconfigure_subplots©r!   Úaxs     r   Útest_subplottoolr¯   Ì   sR   € ä�l‰l‹n�G€CˆÜ	�‰Ð9Ñ;KÓ	Lñ 8Ø�
‰
×Ñ×"Ñ"×5Ñ5Ô7÷8÷ 8ñ 8ús   ¯/A'Á'A0c                  ó�  — t        j                  «       \  } }|j                  ddg«       |j                  dgg«       |j	                  t        d«      t        d«      t        d«      ¬«       t        j                  dd„ «      5  | j                  j                  j                  j                  «        d d d «       y # 1 sw Y   y xY w)Né   rq   ro   )Úcr¥   c                  ó   — y r   rI   r§   s    r   rY   z$test_figureoptions.<locals>.<lambda>Ù   r©   r   )r   rª   ÚplotÚimshowÚscatterÚranger   r˜   r   r   r«   Úedit_parametersr­   s     r   Útest_figureoptionsr¹   Ó   s�   € ä�l‰l‹n�G€CˆØ‡G�GˆQ�ˆF„OØ‡I�I�ˆsˆeÔØ‡J�JŒu�Q‹xœ˜q›¤U¨1£X€JÔ.Ü	�‰Ð9Ñ;KÓ	Lñ 5Ø�
‰
×Ñ×"Ñ"×2Ñ2Ô4÷5÷ 5ñ 5ús   Â/B<Â<Cc                 ó4  — t        j                  «       \  }}|j                  dgg«       | dz  }d}t        j                  |t        |«      d f¬«      5  |j                  j                  j                  j                  «       }|t        |«      k(  sJ ‚|j                  «       sJ ‚	 d d d «       t        j                  |d¬«      5  |j                  j                  j                  j                  «       }|�J ‚	 d d d «       y # 1 sw Y   Œ]xY w# 1 sw Y   y xY w)Nr±   z
foobar.pngzCmatplotlib.backends.qt_compat.QtWidgets.QFileDialog.getSaveFileName)r~   )NN)r   rª   rµ   r   r˜   Ústrr   r   r«   Úsave_figureÚexists)Útmp_pathr!   r®   Úexpectedr¡   Úfnames         r   Útest_save_figure_returnrÁ   Ý   sî   € ä�l‰l‹n�G€CˆØ‡I�I�ˆsˆeÔØ˜,Ñ&€HØP€DÜ	�‰�D¬¨H«°tÐ'<Ô	=ñ !Ø—
‘
×"Ñ"×*Ñ*×6Ñ6Ó8ˆØœ˜H›Ò%Ð%Ð%Ø�‰Ô Ð Ñ ÷!ô 
�‰�D |Ô	4ñ Ø—
‘
×"Ñ"×*Ñ*×6Ñ6Ó8ˆØˆ}Ð‰}÷ð ÷	!ð !ú÷ð ús   ÁADÃ3DÄDÄDc                  óB  — t        j                  «       \  } }t        ddd¬«      t        ddd¬«      g}|j                  ||«       t	        j
                  dd„ «      5  | j                  j                  j                  j                  «        d d d «       y # 1 sw Y   y xY w)Néå  r±   ©ÚyearÚmonthÚdayrq   r¥   c                  ó   — y r   rI   r§   s    r   rY   z7test_figureoptions_with_datetime_axes.<locals>.<lambda>ô   r©   r   )
r   rª   r   r´   r   r˜   r   r   r«   r¸   )r!   r®   Úxydatas      r   Ú%test_figureoptions_with_datetime_axesrÊ   ì   s�   € ä�l‰l‹n�G€Cˆä�d !¨Ô+Ü�d !¨Ô+ð€Fð ‡G�GˆF�FÔÜ	�‰Ð9Ñ;KÓ	Lñ 5Ø�
‰
×Ñ×"Ñ"×2Ñ2Ô4÷5÷ 5ñ 5ús   Á/BÂBc                  óX  — t        j                  «       \  } }| j                  j                  «        | j                  j                  j
                  }d\  }}| j                  ||«       | j                  j                  «       |t        j                  d   z  k(  sJ ‚| j                  j                  «       |t        j                  d   z  k(  sJ ‚|j                  «       }|j                  «       }| j                  ||«       |j                  «       |k(  sJ ‚|j                  «       |k(  sJ ‚y )N)ro   rq   z
figure.dpi)r   rª   r   r‹   r   r   Úset_size_inchesrœ   Ú
matplotlibÚrcParamsr�   )r!   r®   r   ÚwÚhÚ	old_widthÚ
old_heights          r   Útest_double_resizerÓ   ø   só   € ô �l‰l‹n�G€CˆØ‡J�J‡O�OÔØ�Z‰Z×Ñ×&Ñ&€Fà�D€A€qØ×Ñ˜˜1ÔØ�:‰:×ÑÓ ¤Z×%8Ñ%8¸Ñ%FÑ!FÒFÐFÐFØ�:‰:×ÑÓ !¤j×&9Ñ&9¸,Ñ&GÑ"GÒGÐGÐGà—‘“€IØ—‘“€Jà×Ñ˜˜1ÔØ�<‰<‹>˜YÒ&Ð&Ð&Ø�=‰=‹?˜jÒ(Ð(Ñ(r   c                  ó‚   ‡— ddl m}  dŠˆfd„}t        j                  «       \  }}||_         | |«      }d|_        ‰sJ ‚y )Nr   )ÚFigureCanvasQTAggFc                 ó>   •— | j                   j                  «        dŠy )NT)r   Ú	draw_idle)r!   ÚstaleÚcalleds     €r   Úcrashing_callbackz-test_canvas_reinit.<locals>.crashing_callback  s   ø€ à�
‰
×ÑÔØ‰r   T)Ú!matplotlib.backends.backend_qtaggrÕ   r   rª   Ústale_callbackrØ   )rÕ   rÚ   r!   r®   r   rÙ   s        @r   Útest_canvas_reinitrÝ     sA   ø€ åCà€Fôô
 �l‰l‹n�G€CˆØ*€CÔá˜sÓ#€FØ€C„IÙ€M‰6r   c                  ó
  — ddl m}   | «        dt        ddd¬«      fdt        ddd¬«      fg}t	        j
                  |«      }|j                  «        |j                  «       }|t        ddd¬«      t        ddd¬«      gk(  sJ ‚y )	Nr   )Ú_create_qAppzDatetime fieldrÃ   ro   é   rÄ   z
Date field)Úmatplotlib.backends.backend_qtrß   r   r   r   Ú
FormWidgetÚsetupÚget)rß   ÚformÚwidgetÚvaluess       r   Ú2test_form_widget_get_with_datetime_and_date_fieldsrè     sŠ   € å;Ù„Nð 
œ8¨°Q¸BÔ?Ð@Ø	”t ¨Q°BÔ7Ð8ð€Dô ×#Ñ# DÓ)€FØ
‡L�L„NØ�Z‰Z‹\€FØÜ�d !¨Ô,Ü�$˜a RÔ(ðò ð ñ r   c            
      ó~  — g } dD �cg c]
  }|gd|dœf‘Œ c}D �]  \  }}d }|D �cg c]$  }t         j                  j                  |«      rŒ#|‘Œ& }}t        j                  dk(  rt        j                  «       sd}nL|r!dj                  dj                  |«      «      }n)|d   d	k(  r!t        j                  j                  d
«      rd}g }|r5|j                  t        j                  j                  d|› d|› �¬«      «       | j                  t        j                   ||t#        |«      ¬«      «       �Œ | S c c}w c c}w )N)ÚPyQt6ÚPySide6ÚPyQt5ÚPySide2Úqtagg)Ú
MPLBACKENDÚQT_APIÚlinuxz'$DISPLAY and $WAYLAND_DISPLAY are unsetz{} cannot be importedz, rï   ÚmacosxÚTF_BUILDzmacosx backend fails on Azurez	Skipping z	 because )Úreason)r?   Úid)Ú	importlibÚutilÚ	find_specr_   r`   r   Údisplay_is_validÚformatÚjoinÚosÚenvironrä   ÚappendÚpytestÚmarkÚskipÚparamr»   )ÚenvsÚqt_apiÚdepsÚenvrô   ÚdepÚmissingr?   s           r   Ú_get_testable_qt_backendsr	  1  s,  € Ø€Dð Cöàð ˆX g¸Ñ@ÒAòó A‰	ˆˆcð ˆØ"&ÖL˜3¬i¯n©n×.FÑ.FÀsÕ.K’3ÐLˆÐLÜ�L‰L˜GÒ#Ü%×6Ñ6Ô8Ø>‰FÙØ,×3Ñ3°D·I±I¸gÓ4FÓG‰FØ�Ñ (Ò*¬r¯z©z¯~©~¸jÔ/IØ4ˆFØˆÙØ�L‰LœŸ™×)Ñ)Ø" 3 % y°°Ð9ð *ó ;ô <à�‰”F—L‘L ¨E´c¸#³hÔ?Ö@ð#Að$ €Kùò%ùò
 Ms   ‡D5¦$D:ÁD:c                 óÀ  ‡ ‡— ddl m} t        j                  «        d Šˆˆ fd„}‰ j                  j                  d|«       t        j                  t        j                  «      }d„ }t        j                  t        j                  |«       	 t        j                  j                  j                  j                  «        ‰|k7  sJ ‚t        j                  t        j                  «      |k(  sJ ‚t        j                  t        j                  fD ]�  }‰ j                  j                  d|«       t        j                  t        j                  |«       |j                  «        ‰|k(  sJ ‚t        j                  t        j                  «      |k(  rŒ�J ‚ 	 t        j                  t        j                  |«       y # t        j                  t        j                  |«       w xY w)Nr   )Ú_BackendQT5c                  ó€   •— t        j                  t         j                  «      Š ‰j                  j	                  «        y r   )ÚsignalÚ	getsignalÚSIGINTrƒ   Úexit)Úevent_loop_handlerr   s   €€r   Úfire_signal_and_quitz6test_fig_sigint_override.<locals>.fire_signal_and_quitR  s.   ø€ ô $×-Ñ-¬f¯m©mÓ<Ðð 	× Ñ ×%Ñ%Õ'r   c                  ó   — y r   rI   )ÚsignumÚframes     r   Úcustom_handlerz0test_fig_sigint_override.<locals>.custom_handlera  s   € Ør   )Úmatplotlib.backends.backend_qt5r  r   r   ÚQTimerÚ
singleShotr  r  r  rÍ   ÚbackendsÚ
backend_qtÚ
_BackendQTÚmainloopÚSIG_DFLÚSIG_IGN)r   r  r  Úoriginal_handlerr  r  s   `    @r   Útest_fig_sigint_overrider!  H  s^  ù€ å;ä‡J�J„Lð Ðõ(ð ‡N�N×Ñ˜aÐ!5Ô6ô ×'Ñ'¬¯©Ó6Ðòô ‡M�M”&—-‘- Ô0ð7ô 	×Ñ×&Ñ&×1Ñ1×:Ñ:Ô<ð " ^Ò3Ð3Ð3ô ×Ñ¤§¡Ó.°.Ò@Ð@Ð@ô  &Ÿ~™~¬v¯~©~Ð>ò 	EˆNØ�N‰N×%Ñ% aÐ)=Ô>Ü�M‰Mœ&Ÿ-™-¨Ô8à× Ñ Ô"à%¨Ò7Ð7Ð7Ü×#Ñ#¤F§M¡MÓ2°nÓDÐDÐDñ	Eô 	�‰”f—m‘mÐ%5Õ6øŒ�‰”f—m‘mÐ%5Õ6ús   ÂDF7 ÆF7 Æ7&Gc                  ó*   — ddl m}   | dddddœ«       y )Nr   ©Úipython_in_subprocessÚqtrî   r   r>   ))é   é   )r&  é   )é   r   )Úmatplotlib.testingr$  r#  s    r   Útest_ipythonr+  �  s   € å8Ù˜$¨'¸GÈXÑ VÕWr   ),r   rö   rü   r  r_   r   r   Úunittestr   rÿ   rÍ   r   r   Úmatplotlib._pylab_helpersr   r   r   r	   r
   Úmatplotlib.backends.qt_editorr   ÚImportErrorr   r  Ú
pytestmarkÚ_test_timeoutÚfixturer   r=   r"   Úparametrizer  rm   r£   r¯   r¹   rÁ   rÊ   rÓ   rÝ   rè   r	  r!  r+  rI   r   r   ú<module>r4     s}  ðÛ Û Û 	Û Û 
ç #Ý ã ã Ý $Ý )Ý (ð;Ý3Ý7Ý9ð
 €ð ‡�ñó ðð
 ‡�×Ñ�W°$ÐÓ7ñ!ó 8ð!ð" ‡�×ÑØà	�?Ð# SÐ)Ø	�"�cÐØ	Ð$Ð%¨Ð2àØÐØ3ð	
ð
 
�rÐ@ÐAØ	˜˜¨-Ð9Ø	Ð&Ð'¨Ð4àÚ>Ø@ð	
ð 
�R˜ÐØ	˜"˜kÐ*àØÐØð	
ð+ò6	ð; ó *ðV ‡�×Ñ˜à€F‡L�LØØ�k‰k×!Ñ! (ÀÐ!ÓEôGð €F‡L�LØØ�k‰k×!Ñ! '¸tÐ!ÓDôFð%ó ñ óóW*ðh ðF ‡�×Ñ�W°$ÐÓ7ñ=;ó 8ð=;ð@ ‡�×Ñ�W°$ÐÓ7ñ8ó 8ð8ð ‡�×Ñ�W°$ÐÓ7ñ5ó 8ð5ð ‡�×Ñ�W°$ÐÓ7ñó 8ðð ‡�×Ñ�W°$ÐÓ7ñ5ó 8ð5ð ‡�×Ñ�W°$ÐÓ7ñ)ó 8ð)ð& ‡�×Ñ�W°$ÐÓ7ñó 8ðð$ ‡�×Ñ�X°4ÐÓ8ñó 9ðò"ð. ‡�×Ñ�W°$ÐÓ7ñ57ó 8ð57ðp ‡�×Ñ�W°$ÐÓ7ñXó 8ñXøð[ ò ;Ø—‘×!Ñ!Ð"9Ó:ƒJð;ús   ¾J> Ê> K"Ë!K"