Ë
    èÿæiO]  ã                   ól  — d dl Z d dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZmZ d dlmZmZmZ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  G d„ de«      Z G d	„ d
e«      Z  G d„ de«      Z! G d„ de«      Z" G d„ dee«      Z# G d„ de«      Z$e G d„ de«      «       Z%e&dk(  r ejN                  «        yy)é    N)Úproduct)ÚnjitÚtypedÚobjmodeÚprange)Úir_utilsÚir)ÚCompilerErrorÚNumbaPerformanceWarningÚTypingErrorÚUnsupportedBytecodeError)
ÚTestCaseÚunittestÚcaptured_stdoutÚMemoryLeakMixinÚskip_parfors_unsupportedÚskip_unless_scipyÚexpected_failure_py311Úexpected_failure_py312Úexpected_failure_py313Úexpected_failure_py314c                   ó   — e Zd Zy)ÚMyErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_try_except.pyr   r      s   „ Ør   r   c                   ót   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zed„ «       Zd„ Zd„ Zd„ Zy)ÚTestTryBareExceptzrTest the following pattern:

        try:
            <body>
        except Exception:
            <handling>
    c                 óš   ‡— t         d„ «       Št         ˆfd„«       }| j                   |d«      d«       | j                   |d«      d«       y )Nc                 ó   — | rt         ‚y ©N©r   ©Úxs    r   Úinnerz5TestTryBareExcept.test_try_inner_raise.<locals>.inner!   s   € áÜ�ð r   c                 ó&   •— 	  ‰| «       y#  Y yxY w)Nú
not raisedÚcaughtr   )r'   r(   s    €r   Úudtz3TestTryBareExcept.test_try_inner_raise.<locals>.udt&   s   ø€ ð Ù�a”Ø#øð Ùús   ƒ ŒFr*   Tr+   ©r   ÚassertEqual)Úselfr,   r(   s     @r   Útest_try_inner_raisez&TestTryBareExcept.test_try_inner_raise    sS   ø€ Ü	ñ	ó 
ð	ô 
ó	 ó 
ð	 ð 	×Ñ™˜U› \Ô2Ø×Ñ™˜T› HÕ-r   c                 óH  ‡— t         d„ «       Št         ˆfd„«       }| j                  t        «      5 } |d«       d d d «       | j                  t	        j
                  «      d«       | j                   |d«      d«       | j                   |d«      d«       y # 1 sw Y   Œ_xY w)	Nc                 óD   — | dk(  rt        d«      ‚| dk(  rt        d«      ‚y )Né   Úoneé   Útwor%   r&   s    r   r(   z5TestTryBareExcept.test_try_state_reset.<locals>.inner2   s)   € à�AŠvÜ˜e“nÐ$Ø�a’Ü˜e“nÐ$ð r   c                 óJ   •— 	  ‰| «       d}| dk(  r ‰d«       |S #  d}Y ŒxY w)Nr*   r+   r   r5   r   )r'   Úresr(   s     €r   r,   z3TestTryBareExcept.test_try_state_reset.<locals>.udt9   s5   ø€ ðÙ�a”Ø"�ð �AŠvÙ�a”ØˆJøð	Ø’ús   ƒ
 œ"r   r6   r3   r+   éÿÿÿÿr*   )r   ÚassertRaisesr   r.   ÚstrÚ	exception)r/   r,   Úraisesr(   s      @r   Útest_try_state_resetz&TestTryBareExcept.test_try_state_reset1   s“   ø€ Ü	ñ	%ó 
ð	%ô 
ó	ó 
ð	ð ×ÑœwÔ'¨6Ù�ŒF÷ (à×Ñœ˜V×-Ñ-Ó.°Ô6Ø×Ñ™˜Q› Ô*Ø×Ñ™˜R› ,Õ/÷	 (Ð'ús   ±	BÂB!c                 ó   — t         d„ «       }|S )Nc                 ó¼   — | dk(  rt        d«       t        d«      ‚| dk(  rt        d«       t        d«      ‚| dk(  rt        d«       t        d	«      ‚t        d
«       y )Nr3   Úcall_oner4   r5   Úcall_twor6   é   Ú
call_threeÚthreeÚ
call_other©Úprintr   r&   s    r   r(   z-TestTryBareExcept._multi_inner.<locals>.innerK   sV   € à�AŠvÜ�jÔ!Ü˜e“nÐ$Ø�a’Ü�jÔ!Ü˜e“nÐ$Ø�a’Ü�lÔ#Ü˜gÓ&Ð&ä�lÕ#r   )r   )r/   r(   s     r   Ú_multi_innerzTestTryBareExcept._multi_innerJ   s   € Ü	ñ	$ó 
ð	$ð ˆr   c                 óú  ‡— | j                  «       Št        ˆfd„«       }| j                  t        «      5 }t	        «       5 } |ddd«       d d d «       d d d «       | j                  j                  «       j                  «       g d¢«       | j                  t        j                  «      d«       t	        «       5 } |ddd«       d d d «       | j                  |j                  «       j                  «       g d¢«       t	        «       5 } |ddd«       d d d «       | j                  |j                  «       j                  «       g d	¢«       y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¡xY w# 1 sw Y   Œ`xY w)
Nc                 óÚ   •— 	 	 t        d«        ‰| «       t        d«       y #  t        d«        ‰|«       t        d«       Y y xY w#  t        d«        ‰|«       t        d«       Y y xY w)NÚAÚBÚCÚDÚEÚF)rH   )r'   ÚyÚzr(   s      €r   r,   z.TestTryBareExcept.test_nested_try.<locals>.udt^   sY   ø€ ððÜ˜#”JÙ˜!”HÜ˜#•JøðÜ˜#”JÙ˜!”HÜ˜#–JûðÜ�c”
Ù�a”Ü�c–
ús   „# £ AÁA ÁA Á A*r3   r5   rC   )rL   rA   rN   rB   rP   rD   rE   r   )rL   rA   rN   rF   rO   )rL   rA   rN   rB   rP   rF   rQ   )
rI   r   r:   r   r   r.   ÚgetvalueÚsplitr;   r<   )r/   r,   r=   Ústdoutr(   s       @r   Útest_nested_tryz!TestTryBareExcept.test_nested_try[   s5  ø€ Ø×!Ñ!Ó#ˆä	ó	ó 
ð	ð  ×ÑœwÔ'¨6Ü Ô" fÙ�A�q˜!”÷ #÷ (ð 	×ÑØ�O‰OÓ×#Ñ#Ó%ÚAô	
ð 	×Ñœ˜V×-Ñ-Ó.°Ô8ô Ô &Ù��1�aŒL÷ à×ÑØ�O‰OÓ×#Ñ#Ó%Ú5ô	
ô Ô &Ù��1�aŒL÷ à×ÑØ�O‰OÓ×#Ñ#Ó%ÚFõ	
÷' #Ñ"ú÷ (Ñ'ú÷ Ðú÷ Ðús;   µEÁ EÁEÂ:E%ÄE1ÅE	ÅEÅE"Å%E.Å1E:c                 óÀ  ‡— | j                  «       Št        ˆfd„«       }t        «       5 } |dd«      }d d d «       | j                  j	                  «       j                  «       g d¢«       | j                  d«       t        «       5 } |dd«      }d d d «       | j                  |j	                  «       j                  «       g d¢«       | j                  |d«       t        «       5 } |dd«      }d d d «       | j                  |j	                  «       j                  «       g d¢«       | j                  |d	«       y # 1 sw Y   �Œ	xY w# 1 sw Y   Œ·xY w# 1 sw Y   ŒexY w)
Nc                 óš   •— 	 t        d«       t        |«      D ]  }t        |«       || k(  sŒ ‰|«       Œ 	 S #  t        d«       Y S xY w)NrL   rM   )rH   Úrange)r'   ÚnÚir(   s      €r   r,   z/TestTryBareExcept.test_loop_in_try.<locals>.udt‹   sL   ø€ ðÜ�c”
Ü˜qž�AÜ˜!”HØ˜A“vÙ˜a�ñ "ð ˆHøðÜ�c•
ØˆHús   ƒ): ­
: ºA
rC   é   )rL   Ú0Ú1Ú2Ú3rD   rM   r3   )rL   r^   r_   rA   rM   r   )rL   r^   rF   r_   r`   r5   )rI   r   r   r.   rT   rU   )r/   r,   rV   r8   r(   s       @r   Útest_loop_in_tryz"TestTryBareExcept.test_loop_in_tryˆ   s.  ø€ Ø×!Ñ!Ó#ˆä	ó		ó 
ð		ô Ô &Ù�a˜“)ˆC÷ à×ÑØ�O‰OÓ×#Ñ#Ó%Ú8ô	
ð 	×Ñ˜˜aÔ ô Ô &Ù�a˜“)ˆC÷ à×ÑØ�O‰OÓ×#Ñ#Ó%Ú,ô	
ð 	×Ñ˜˜aÔ ô Ô &Ù�a˜“)ˆC÷ à×ÑØ�O‰OÓ×#Ñ#Ó%Ú.ô	
ð 	×Ñ˜˜aÕ ÷1 Ñú÷ Ðú÷ Ðús#   ª
D;Â
EÃ&
EÄ;EÅEÅEc                 óÀ  — t         d„ «       }t        «       5 } |d«      }d d d «       | j                  j                  «       j	                  «       ddg«       | j                  d«       t        «       5 } |d«      }d d d «       | j                  |j                  «       j	                  «       ddg«       | j                  |d«       y # 1 sw Y   Œ©xY w# 1 sw Y   ŒXxY w)	Nc                 óp   — 	 t        d«       | rt        d«      ‚t        d«       y#  t        d«       Y yxY w)NrL   Úmy_errorrM   rN   éA  é{   rG   r&   s    r   r,   z0TestTryBareExcept.test_raise_in_try.<locals>.udt³   s9   € ðÜ�c”
ÙÜ! *Ó-Ð-Ü�c”
ð øðÜ�c”
Ùús   ‚#& ¦5TrL   rN   rf   FrM   rg   ©r   r   r.   rT   rU   ©r/   r,   rV   r8   s       r   Útest_raise_in_tryz#TestTryBareExcept.test_raise_in_try²   sÎ   € Ü	ñ		ó 
ð		ô Ô &Ù�d“)ˆC÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Ø�#ˆJô	
ð 	×Ñ˜˜cÔ"ô Ô &Ù�e“*ˆC÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Ø�#ˆJô	
ð 	×Ñ˜˜cÕ"÷# Ðú÷ Ðúó   —	CÁ4	CÃCÃCc                 óð   ‡— t         ˆfd„«       Št        «       5 } ‰d«      }d d d «       | j                  «       | j                  j	                  «       j                  «       dg«       y # 1 sw Y   ŒJxY w)Nc                 ól   •— | dkD  r	  ‰| dz
  «       | dk(  rt        d«      ‚y #  t        d«       Y yxY w)Nr   r3   ÚCAUGHTé   r<   )rH   Ú
ValueError)r'   Úfoos    €r   rq   z-TestTryBareExcept.test_recursion.<locals>.fooÔ   sD   ø€ à�1ŠuðÙ˜˜A™”Jð �AŠvÜ  Ó-Ð-ð øðÜ˜(”OÙús   ˆ$ ¤3é
   rn   )r   r   ÚassertIsNoner.   rT   rU   )r/   rV   r8   rq   s      @r   Útest_recursionz TestTryBareExcept.test_recursionÓ   sh   ø€ Ü	ó	.ó 
ð	.ô Ô &Ù�b“'ˆC÷ ð 	×Ñ˜#ÔØ×Ñ˜Ÿ™Ó*×0Ñ0Ó2°X°KÕA÷	 Ðús   š	A,Á,A5c                 ó  ‡— t         d„ «       Št         ˆfd„«       }t        «       5 } |d«      }d d d «       | j                  d«       | j                  j                  «       j	                  «       g «       y # 1 sw Y   ŒJxY w)Nc              3   ój   K  — | dkD  r	 d–— t        d«      ‚y # t        $ r t        d«       Y y w xY w­w)Nr   é   r<   rn   )rp   Ú	ExceptionrH   r&   s    r   rq   z)TestTryBareExcept.test_yield.<locals>.fooæ   s>   è ø€ à�1Šuð$Ø’GÜ$ [Ó1Ð1ð øô !ò $Ü˜(–Oð$üs   ‚3‰ ˜3™0­3¯0°3c                 ó&   •— t         ‰| «      «      S r$   )Únext)rS   rq   s    €r   Úbarz)TestTryBareExcept.test_yield.<locals>.barï   s   ø€ ä™˜A›“<Ðr   rr   rw   rh   )r/   r{   rV   r8   rq   s       @r   Ú
test_yieldzTestTryBareExcept.test_yieldå   s|   ø€ Ü	ñ	$ó 
ð	$ô 
ó	 ó 
ð	 ô Ô &Ù�b“'ˆC÷ ð 	×Ñ˜˜aÔ Ø×Ñ˜Ÿ™Ó*×0Ñ0Ó2°BÕ7÷	 Ðús   ¦	A8Á8Bc                 óÈ   — t         d„ «       }t        «       5 } |d«       d d d «       | j                  j                  «       j	                  «       dg«       y # 1 sw Y   Œ9xY w)Nc                 ó   — d„ } |«        y )Nc                  ó>   — 	 t        d«      ‚#  t        d«       Y yxY w)Nr<   rn   ro   ©rp   rH   r   r   r   r{   z9TestTryBareExcept.test_closure2.<locals>.foo.<locals>.barü   s#   € ðÜ$ [Ó1Ð1øðÜ˜(”OÙús   ‚ �r   ©r'   r{   s     r   rq   z,TestTryBareExcept.test_closure2.<locals>.fooú   s   € òñ �Er   rr   rn   rh   ©r/   rq   rV   s      r   Útest_closure2zTestTryBareExcept.test_closure2ù   sW   € Ü	ñ	ó 
ð	ô Ô &Ù�ŒG÷ ð 	×Ñ˜Ÿ™Ó*×0Ñ0Ó2°X°KÕA÷ Ðús   —	AÁA!c                 óö   — t         d„ «       }t        «       5 } |d«      }d d d «       | j                  g d¢«       | j                  j                  «       j	                  «       dgdz  «       y # 1 sw Y   ŒPxY w)Nc                 óJ   — d„ }t        |g d¢«      D � cg c]  } | ‘Œ c} S c c} w )Nc                 óB   — 	 t        d«      ‚#  t        d«       | cY S xY w)Nr<   rn   r€   ©rS   s    r   r{   z9TestTryBareExcept.test_closure3.<locals>.foo.<locals>.bar  s%   € ðÜ$ [Ó1Ð1øðÜ˜(”OØ’Hús   ‚ �©r3   r5   rC   )Úmapr�   s     r   rq   z,TestTryBareExcept.test_closure3.<locals>.foo
  s*   € òô  # 3ª	Ô2Ó3Ñ2˜!’AÐ2Ñ3Ð3ùÒ3s   ”	 rr   rˆ   rn   rC   rh   ©r/   rq   rV   r8   s       r   Útest_closure3zTestTryBareExcept.test_closure3	  sm   € Ü	ñ	4ó 
ð	4ô Ô &Ù�b“'ˆC÷ ð 	×Ñ˜šiÔ(Ø×Ñ˜Ÿ™Ó*×0Ñ0Ó2°X°KÀ!±OÕE÷	 Ðús   —	A/Á/A8c                 óž  — t         d„ «       }t        «       5 } |d«      }d d d «       | j                  j                  «       j	                  «       d«       | j                  «       t        «       5 } |d«      }d d d «       | j                  |j                  «       d«       | j                  |g d¢«       y # 1 sw Y   Œ˜xY w# 1 sw Y   ŒJxY w)Nc                 ót   — d„ }	 t        |ddd| g«      D � cg c]  } | ‘Œ c} S c c} w #  t        d«       Y y xY w)Nc                 ó&   — | dk  rt        d«      ‚| S )Nr   r<   ©rp   r‡   s    r   r{   z9TestTryBareExcept.test_closure4.<locals>.foo.<locals>.bar  s   € Ø�q’5Ü$ [Ó1Ð1Ø�r   r3   r5   rC   rn   )r‰   rH   r�   s     r   rq   z,TestTryBareExcept.test_closure4.<locals>.foo  sC   € òð
 Ü#& s¨Q°°1°a¨LÔ#9Ó:Ñ#9˜ašÐ#9Ñ:Ð:ùÒ:øð Ü�h–ús   …( —	# ( £( ¨7r9   rn   é   Ú )r3   r5   rC   r�   )r   r   r.   rT   Ústriprs   rŠ   s       r   Útest_closure4zTestTryBareExcept.test_closure4  s«   € Ü	ñ		 ó 
ð		 ô Ô &Ù�b“'ˆC÷ ð 	×Ñ˜Ÿ™Ó*×0Ñ0Ó2°HÔ=Ø×Ñ˜#ÔäÔ &Ù�a“&ˆC÷ à×Ñ˜Ÿ™Ó*¨BÔ/Ø×Ñ˜šlÕ+÷ Ðú÷ Ðús   —	B7Á1	CÂ7C ÃCc                 óÆ   — t         d„ «       }t        «       5 } |«        d d d «       | j                  j                  «       j	                  «       dg«       y # 1 sw Y   Œ9xY w)Nc                  ó–   — t        j                  d«      } 	 t         j                  j                  | «      }y #  t	        d«       cY S xY w)N)r�   r�   rn   )ÚnpÚzerosÚlinalgÚcholeskyrH   )ÚaÚchols     r   rq   z0TestTryBareExcept.test_real_problem.<locals>.foo4  s<   € ä—‘˜Ó ˆAðÜ—y‘y×)Ñ)¨!Ó,‘øðÜ�h”Ø’ús	   —7 ·Arn   rh   r‚   s      r   Útest_real_problemz#TestTryBareExcept.test_real_problem2  sU   € ä	ñ	ó 
ð	ô Ô &ÙŒE÷ ð 	×Ñ˜Ÿ™Ó*×0Ñ0Ó2°X°KÕ@÷ Ðús   —AÁA c           	      ó  — t         d„ «       }t        «       5 } |d«       d d d «       | j                  j                  «       j	                  «       dgdz  t        dd«      D �cg c]  }d|z  ‘Œ	 c}z   «       y # 1 sw Y   ŒZxY wc c}w )Nc                 óø   — t        | «      D ]  }	 |dkD  rt        ‚Œ 	 	 	 dkD  rt        ‚y #  t        d«       Y Œ/xY w#  t        d«       t        ‚xY w#  t        d«       t        ‚xY w#  t        d«       Y y xY w)Nr]   rn   ÚCAUGHT1ÚCAUGHT2ÚCAUGHT3)rZ   rp   rH   )r[   r\   s     r   rq   z,TestTryBareExcept.test_for_loop.<locals>.fooC  sŽ   € ô ˜1–X�ð$Ø˜1’uÜ(Ð(ð ð ð%ð	)ð-Ø  1šuÜ&0Ð 0ð  %øð$Ü˜(–Oûð-Ü! )Ô,Ü",Ð,ûð)Ü˜iÔ(Ü(Ð(ûð%Ü˜)Ö$ús)   �, > ¬;¾AÁA ÁA'Á'A* Á*A9rr   rn   r�   r3   zCAUGHT%s)r   r   r.   rT   rU   rZ   )r/   rq   rV   r\   s       r   Útest_for_loopzTestTryBareExcept.test_for_loopB  s‚   € Ü	ñ	%ó 
ð	%ô. Ô &Ù�ŒG÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%ØˆK˜!‰O´u¸QÀ´{ÓC±{°!˜z¨A›~°{ÑCÑCõ	
÷ Ðüò
 Ds   —	A9Á#BÁ9Bc                 óP   — t         d„ «       } |d«      }| j                  |d«       y )Nc                 ó   — 	 	 | S #  Y | S xY wr$   r   r&   s    r   rq   z,TestTryBareExcept.test_try_pass.<locals>.food  s    € ðØð ˆHøðØØˆHús   …
rg   r-   )r/   rq   r8   s      r   Útest_try_passzTestTryBareExcept.test_try_passc  s/   € Ü	ñ	ó 
ð	ñ �#‹hˆØ×Ñ˜˜cÕ"r   c                 óÈ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó&   — 	 t        d«      ‚#  ‚ xY w©NÚERRORr�   r   r   r   r,   z6TestTryBareExcept.test_try_except_reraise.<locals>.udtp  s   € ðÜ  Ó)Ð)øðØús   ‚ �ú4The re-raising of an exception is not yet supported.©r   r:   r   ÚassertInr;   r<   ©r/   r,   r=   s      r   Útest_try_except_reraisez)TestTryBareExcept.test_try_except_reraiseo  óW   € Ü	ñ	ó 
ð	ð ×ÑÔ7Ô8¸FÙŒE÷ 9à�‰ØBÜ�× Ñ Ó!õ	
÷ 9Ð8úó   ¢AÁA!N)r   r   r   Ú__doc__r0   r>   rI   rW   rb   rj   rt   r|   rƒ   r‹   r“   r   rœ   r¢   r¥   r®   r   r   r   r!   r!      sj   „ ñò.ò"0ò2ò"+
òZ(!òT#òBBò$8ò(Bò Fò",ð0 ñAó ðAò
òB
#ó
r   r!   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTryExceptCaughtc                 óx  — t         d„ «       }t        «       5 } |d«       d d d «       | j                  j                  «       j	                  «       g d¢«       t        «       5 } |d«       d d d «       | j                  |j                  «       j	                  «       g d¢«       y # 1 sw Y   Œ…xY w# 1 sw Y   ŒFxY w)Nc                 ó–   — 	 t        d«       | rt        d«      ‚t        d«       t        d«       y # t        $ r t        d«       Y Œ"w xY w)NrL   Ú321rM   rN   rO   ©rH   ÚZeroDivisionErrorrx   r&   s    r   r,   z5TestTryExceptCaught.test_catch_exception.<locals>.udt�  sD   € ðÜ�c”
ÙÜ+¨EÓ2Ð2Ü�c”
ô �#�Jøô ò Ü�c–
ðús   ‚#1 ±AÁAT)rL   rN   rO   F©rL   rM   rO   rh   )r/   r,   rV   s      r   Útest_catch_exceptionz(TestTryExceptCaught.test_catch_exception€  sž   € Ü	ñ	ó 
ð	ô Ô &Ù�ŒI÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Úô	
ô Ô &Ù�ŒJ÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Úõ	
÷ Ðú÷ Ðús   —	B$Á"	B0Â$B-Â0B9c                 óÀ  — t         d„ «       }t        «       5 } |d«      }d d d «       | j                  j                  «       j	                  «       ddg«       | j                  d«       t        «       5 } |d«      }d d d «       | j                  |j                  «       j	                  «       g d¢«       | j                  |d«       y # 1 sw Y   Œ©xY w# 1 sw Y   ŒXxY w)	Nc                 óš   — 	 t        d«       | rt        ‚t        d«       d}t        d«       |S # t        $ r t        d«       d}|cY S w xY w)NrL   rM   rg   rN   rf   rO   r·   )r'   Úrs     r   r,   z5TestTryExceptCaught.test_return_in_catch.<locals>.udtŸ  sS   € ð	Ü�c”
ÙÜ+Ð+Ü�c”
Ø�ô
 �#ŒJØˆHøô ò Ü�c”
Ø�Ø’ðús   ‚ / ¯A
Á	A
TrL   rN   rf   Fr¹   rg   rh   ri   s       r   Útest_return_in_catchz(TestTryExceptCaught.test_return_in_catchž  sÊ   € Ü	ñ	ó 
ð	ô Ô &Ù�d“)ˆC÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Ø�#ˆJô	
ð 	×Ñ˜˜cÔ"ô Ô &Ù�e“*ˆC÷ ð 	×ÑØ�O‰OÓ×#Ñ#Ó%Úô	
ð 	×Ñ˜˜cÕ"÷# Ðú÷ Ðúrk   c                 óÊ   — t         d„ «       }| j                  t        «      5 } |d«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                 óP   — 	 | rt         ‚d}|S # t        $ r}d}|cY d }~S d }~ww xY w)Nrg   rf   )r¸   rx   )r'   r½   Úes      r   r,   z1TestTryExceptCaught.test_save_caught.<locals>.udtÃ  s8   € ðÙÜ+Ð+Ø�ð ˆHøô ò Ø�Ø•ûðús   ‚
 Ž	%— š% %Tz3Exception object cannot be stored into variable (e)r«   r­   s      r   Útest_save_caughtz$TestTryExceptCaught.test_save_caughtÂ  sY   € Ü	ñ	ó 
ð	ð ×ÑÔ7Ô8¸FÙ�ŒI÷ 9à�‰ØAÜ�× Ñ Ó!õ	
÷ 9Ð8ús   ¢	AÁA"c                 óÈ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó6   — 	 t        d«      ‚# t        $ r ‚ w xY wr¨   ©rp   rx   r   r   r   r,   z8TestTryExceptCaught.test_try_except_reraise.<locals>.udtÖ  s$   € ðÜ  Ó)Ð)øÜò Øðús   ‚ �rª   r«   r­   s      r   r®   z+TestTryExceptCaught.test_try_except_reraiseÕ  r¯   r°   c                 óÈ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  óT   — 	 t        d«      ‚# t        $ r 	 ‚ # t        $ r ‚ w xY ww xY wr¨   rÅ   r   r   r   r,   z>TestTryExceptCaught.test_try_except_reraise_chain.<locals>.udtå  s;   € ðÜ  Ó)Ð)øÜò ðØøÜ ò Øðúðús   ‚ �	'—˜#£'rª   r«   r­   s      r   Útest_try_except_reraise_chainz1TestTryExceptCaught.test_try_except_reraise_chainä  sW   € Ü	ñ	ó 
ð	ð ×ÑÔ7Ô8¸FÙŒE÷ 9à�‰ØBÜ�× Ñ Ó!õ	
÷ 9Ð8úr°   c                 ó|   — t         d„ «       }| j                   |d«      d«       | j                   |d«      d«       y )Nc                 ó6   — 	 d| z   d| z  S # t         $ r Y yw xY w)Nr3   é­Þ  )rx   ©rR   s    r   r,   z7TestTryExceptCaught.test_division_operator.<locals>.udtù  s-   € ðØ�A’ð ˜1‘u�øô ò Ùðús   ‚ Œ	—r   rË   r5   g      à?r-   ©r/   r,   s     r   Útest_division_operatorz*TestTryExceptCaught.test_division_operatorö  s@   € ô 
ñ	ó 
ð	ð 	×Ñ™˜Q› Ô(Ø×Ñ™˜Q› Õ%r   N)	r   r   r   rº   r¾   rÂ   r®   rÈ   rÎ   r   r   r   r³   r³     s!   „ ò
ò<"#òH
ò&
ò
ó$&r   r³   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestTryExceptNestedzTests for complicated nestingc                 ó(  — t        «       5 } ||i |¤Ž d d d «       j                  «       }t        «       5 } ||i |¤Ž d d d «       |j                  «       }| j                  ||dj                  ||«      ¬«       y # 1 sw Y   ŒixY w# 1 sw Y   ŒJxY w)Nzargs={} kwargs={})Úmsg)r   rT   r.   Úformat)r/   ÚcfuncÚpyfuncÚargsÚkwargsrV   ÚexpectÚgots           r   Úcheck_comparez!TestTryExceptNested.check_compare	  sˆ   € ÜÔ &Ù�DÐ#˜FÒ#÷ à—‘Ó"ˆäÔ &Ù�4Ð"˜6Ò"÷ à�o‰oÓˆØ×ÑØ�CØ#×*Ñ*¨4°Ó8ð 	õ 	
÷ Ðú÷ Ðús   ‹	A<¶	BÁ<BÂBc           	      óÈ   — t         d„ «       }t        t        ddgd¬«      «      }| j                  |«       |D ](  \  }}}}| j	                  ||j
                  ||||¬«       Œ* y )Nc                 ó,  — t        d«       | rPt        d«       	 t        d«       |rt        d«       t        d«      ‚t        d«       t        d«       t        d«       t        d«       y # t        $ r  t        d«       	 t        d	«       	 t        d
«       |rt        d«       t        d«      ‚t        d«       t        d«       n# t        $ r t        d«       Y nw xY wt        d«       n# t        $ r t        d«       Y nw xY wt        d«       Y Œ¿w xY w)NrL   rM   rN   rO   rR   rP   ÚGrQ   ÚHÚIÚJrS   ÚKÚMÚLÚOÚNÚPÚQÚR©rH   r   rx   ©r'   rR   rS   Úps       r   r,   z5TestTryExceptNested.test_try_except_else.<locals>.udt  sç   € ä�#ŒJÙÜ�c”
ðÜ˜#”JÙÜ˜cœ
Ü% c›lÐ*Ü˜#”Jô* ˜#”JÜ�c”
Ü�#�Jøô- !ò Ü˜#”Jð#Ü˜cœ
ð	'Ü! #œJÙ Ü % c¤
Ü&-¨c£lÐ 2Ü! #œJô " #�Jøô  )ò 'Ü! #žJð'úô ˜c�
øô %ò #Ü˜cž
ð#úô ˜#–Jð%úsY   š.A* Á*DÁ?C+Â.CÂ9C+ÃCÃC+ÃCÃC+ÃDÃ+DÃ?DÄDÄDÄDTFr�   ©Úrepeatrê   ©r   Úlistr   Ú
assertTruerÚ   Úpy_func)r/   r,   Úcasesr'   rR   rS   rë   s          r   Útest_try_except_elsez(TestTryExceptNested.test_try_except_else  so   € Ü	ñ 	ó 
ð 	ôD ”W˜d E˜]°1Ô5Ó6ˆØ�‰˜ÔÛ‰JˆAˆq�!�QØ×ÑØ�S—[‘[Ø�q˜A ð õ ñ  r   c                 óÀ   — t         d„ «       }t        t        ddgd¬«      «      }| j                  |«       |D ]$  \  }}| j	                  ||j
                  ||¬«       Œ& y )Nc                 ó  — 	 t        d«       | rt        d«       t        ‚t        d«       	 t        d«       |rt        d«       t        ‚	 t        d«       t        d	«       y #  t        d«       Y ŒFxY w# t        $ r t        d«       Y Œ4w xY w# t        d	«       w xY w# 	 t        d«       |rt        d«       t        ‚	 t        d«       n# t        $ r t        d«       Y nw xY wt        d	«       w # t        d	«       w xY wxY w)
NrL   rM   rN   rO   rP   rQ   rÞ   rÝ   rß   ré   ©rë   Úqs     r   r,   z8TestTryExceptNested.test_try_except_finally.<locals>.udtC  sÕ   € ðÜ�c”
ÙÜ˜#”JÜ!�MÜ�c”
ð
Ü˜#”JÙÜ˜cœ
Ü%˜ð ô ˜#”Jä˜#•JøðÜ�c–
ûô !ò Ü˜#–Jðûô
 ˜#•Jûð
Ü˜#”JÙÜ˜cœ
Ü%˜ð ô ˜#•Jøô !ò Ü˜#–Jðúô
 ˜#•Jø”E˜#•Jýsv   ‚)A" ¬A4 ÁB Á"A1Á/B Á4BÂB Â
BÂB ÂBÂDÂ CÂ?C1ÃC"ÃC1Ã!C"Ã"C1Ã%DÃ1C>Ã>DTFr5   rì   rö   rî   )r/   r,   rò   rë   r÷   s        r   Útest_try_except_finallyz+TestTryExceptNested.test_try_except_finallyB  sf   € Ü	ñ	ó 
ð	ô, ”W˜d E˜]°1Ô5Ó6ˆØ�‰˜ÔÛ‰DˆAˆqØ×ÑØ�S—[‘[Ø�qð õ ñ r   N)r   r   r   r±   rÚ   ró   rø   r   r   r   rÐ   rÐ     s   „ Ù#ò
ò*óXr   rÐ   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestTryExceptRefctc                 óø   — t         d„ «       } |dd¬«      }| j                  t        |«      t        t        d«      «      «        |dd¬«      }| j                  t        |«      t        t        d«      «      «       y )Nc                 ó¬   — t        j                  «       }	 t        | «      D ]  }||k(  rt        ‚|j	                  |«       Œ  	 |S # t
        $ r |cY S w xY wr$   )r   ÚListrZ   Ú
IndexErrorÚappendrx   )r[   Úraise_atÚlstr\   s       r   r,   z6TestTryExceptRefct.test_list_direct_raise.<locals>.udte  sU   € ä—*‘*“,ˆCðÜ˜qž�AØ˜H’}Ü(Ð(Ø—J‘J˜q•Mñ "ð �
øô ò Ø’
ðús   –,A ÁAÁArr   r]   ©r   ©r   r.   rï   rZ   )r/   r,   Úouts      r   Útest_list_direct_raisez)TestTryExceptRefct.test_list_direct_raised  sf   € Ü	ñ
	ó 
ð
	ñ �"˜qÔ!ˆØ×Ñœ˜c›¤D¬¨q«£NÔ3Ù�"˜rÔ"ˆØ×Ñœ˜c›¤D¬¨r«£OÕ4r   c           	      ó&  ‡— t         d„ «       Št         ˆfd„«       } |dd¬«      }| j                  t        |«      dgt        t        d«      «      z   «        |dd¬«      }| j                  t        |«      dgt        t        d«      «      z   «       y )Nc                 ó^   — t        |«      D ]  }||k(  rt        ‚| j                  |«       Œ  | S r$   )rZ   rþ   rÿ   )r  r[   r   r\   s       r   Úappenderz=TestTryExceptRefct.test_list_indirect_raise.<locals>.appenderx  s/   € ä˜1–X�Ø˜’=Ü$Ð$Ø—
‘
˜1•ð ð ˆJr   c                 óŠ   •— t        j                  «       }|j                  d«       	  ‰|| |«       |S # t        $ r |cY S w xY w)Né¾  )r   rý   rÿ   rx   )r[   r   r  r  s      €r   r,   z8TestTryExceptRefct.test_list_indirect_raise.<locals>.udt€  sH   ø€ ä—*‘*“,ˆCØ�J‰J�vÔðÙ˜˜a Ô*ð �
øô ò Ø’
ðús   ¨
4 ´AÁArr   r]   r  r
  r  )r/   r,   r  r  s      @r   Útest_list_indirect_raisez+TestTryExceptRefct.test_list_indirect_raisew  s‰   ø€ Ü	ñ	ó 
ð	ô 
ó	ó 
ð	ñ �"˜qÔ!ˆØ×Ñœ˜c› V H¬t´E¸!³H«~Ñ$=Ô>Ù�"˜rÔ"ˆØ×Ñœ˜c› V H¬t´E¸"³I«Ñ$>Õ?r   c                 óÈ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       | j                  t	        j
                  «      d«       y # 1 sw Y   Œ/xY w)Nc                  óê   — 	 t        j                  «       } t        d«       | j                  d«       t        d«       | j                  d«       t        d«       | S # t        $ r t        d«       Y y w xY w)NrL   r   rM   ÚfdarN   rO   )r   rý   rH   rÿ   rx   )r  s    r   r,   z<TestTryExceptRefct.test_incompatible_refinement.<locals>.udt‘  sY   € ð	Ü—j‘j“l�Ü�c”
Ø—
‘
˜1”Ü�c”
Ø—
‘
˜5Ô!Ü�c”
Ø�
øÜò Ü�c–
ðús   ‚AA ÁA2Á1A2z@Cannot refine type|cannot safely cast unicode_type to int(32|64))r   r:   r   ÚassertRegexr;   r<   r­   s      r   Útest_incompatible_refinementz/TestTryExceptRefct.test_incompatible_refinement�  sX   € Ü	ñ
	ó 
ð
	ð ×Ñœ{Ô+¨vÙŒE÷ ,à×ÑÜ�× Ñ Ó!ØOõ	
÷ ,Ð+úr°   N)r   r   r   r  r  r  r   r   r   rú   rú   c  s   „ ò5ò&@ó2
r   rú   c                   ót   — e Zd Zd„ Zeeeed„ «       «       «       «       Zeeeed„ «       «       «       «       Z	d„ Z
y)ÚTestTryExceptOtherControlFlowc                 óì   — t         d„ «       }| j                  t         |dd«      «      t        t        d«      «      «       | j                  t         |dd«      «      t        t        d«      «      «       y )Nc              3   ól   K  — t        | «      D ]  }	 ||k(  rt        ‚|–— Œ y # t        $ r Y  y w xY w­wr$   )rZ   rp   rx   )r[   r'   r\   s      r   r,   z5TestTryExceptOtherControlFlow.test_yield.<locals>.udt¨  s>   è ø€ ä˜1–X�ðØ˜A’vÜ(Ð(Ø“Gñ	 øô
 !ò Úðüs   ‚4’$¡4¤	1­4°1±4rr   r]   r  rÍ   s     r   r|   z(TestTryExceptOtherControlFlow.test_yield§  s\   € Ü	ñ	ó 
ð	ð 	×Ñœ™c " a›jÓ)¬4´°a³«>Ô:Ø×Ñœ™c " b›kÓ*¬D´°r³«OÕ<r   c                 óÌ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)Nc                  óˆ   — 	 t        «       5  t        t        «       «       d d d «       y # 1 sw Y   y xY w# t        $ r Y y w xY wr$   )r   rH   Úobjectrx   r   r   r   r,   z7TestTryExceptOtherControlFlow.test_objmode.<locals>.udtº  s0   € ðÜ•YÜœ&›(”O÷ —Y‘Yûäò Ùðús#   ‚
5 Œ) 5 ©2®5 ²5 µ	AÁ Aúlunsupported control flow: with-context contains branches (i.e. break/return/raise) that can leave the block ©r   r:   r
   r¬   r;   r<   )r/   r,   r=   rÒ   s       r   Útest_objmodez*TestTryExceptOtherControlFlow.test_objmodeµ  s`   € ô
 
ñ	ó 
ð	ð ×Ñœ}Ô-°ÙŒE÷ .ðEˆà�‰ØÜ�× Ñ Ó!õ	
÷	 .Ð-ús   ¢AÁA#c                 óØ   ‡— d„ Št         ˆfd„«       }| j                  t        «      5 } |«        d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)Nc                 ól   — t        j                  t        t        | j	                  «       «      «      «      S r$   )r–   Úasarrayrï   ÚreversedÚtolistr&   s    r   r{   zCTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.barÐ  s!   € Ü—:‘:œd¤8¨A¯H©H«JÓ#7Ó8Ó9Ð9r   c                  óØ   •— t        j                  d«      } t        j                  | «      }	 t        d¬«      5  | ‰| «      z  }d d d «       |S # 1 sw Y   |S xY w# t        $ r Y |S w xY w)Nr]   zintp[:]rÌ   )r–   ÚarangeÚ
zeros_liker   rx   )r'   rR   r{   s     €r   r  zLTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.test_objmodeÓ  si   ø€ ä—	‘	˜!“ˆAÜ—‘˜aÓ ˆAðÜ˜yÖ)à™˜Q›‘K�A÷ *ð
 ˆH÷ *ð
 ˆHûô ò ØØˆHðús.   ­A ¹AÁA ÁAÁA ÁA Á	A)Á(A)r  r  )r/   r  r=   rÒ   r{   s       @r   Útest_objmode_output_typez6TestTryExceptOtherControlFlow.test_objmode_output_typeË  sf   ø€ ò
	:ô 
ó		ó 
ð		ð ×Ñœ}Ô-°ÙŒN÷ .ðEˆà�‰ØÜ�× Ñ Ó!õ	
÷	 .Ð-ús   ¨A Á A)c                 óÀ  — d„ }t        j                  |«      D ]  }|j                  dk(  sŒ n | j                  d«       t	        j
                  i |j                  «      }d}|j                  j                  «       D ]L  \  }}|j                  t        j                  «      D ]%  }d}|j                  sŒ||j                  d   v sŒ$d}Œ' ŒN |s| j                  d«       y y )	Nc                  ó@   — 	 t         ‚# t         $ r t        d«      ‚w xY wr¨   )rx   rp   r   r   r   rÕ   zMTestTryExceptOtherControlFlow.test_reraise_opcode_unreachable.<locals>.pyfuncí  s&   € ð*Ü�øÜò *Ü  Ó)Ð)ð*ús   ‚ ˆÚRERAISEz!expected RERAISE opcode not foundFz8Unreachable condition reached (op code RERAISE executed)r   Tz.expected RERAISE unreachable message not found)ÚdisÚget_instructionsÚopnameÚfailr   Úget_ir_of_codeÚ__code__ÚblocksÚitemsÚ
find_instsr	   ÚStaticRaiseÚexc_args)	r/   rÕ   ÚinstÚfunc_irÚfoundÚlblÚblkÚstmtrÒ   s	            r   Útest_reraise_opcode_unreachablez=TestTryExceptOtherControlFlow.test_reraise_opcode_unreachableè  sÄ   € ò
	*ô
 ×(Ñ(¨Ö0ˆDØ�{‰{˜iÓ'Ùð 1ð �I‰IÐ9Ô:Ü×)Ñ)¨"¨f¯o©oÓ>ˆØˆØŸ™×,Ñ,Ö.‰HˆC�ØŸ™¤r§~¡~Ö6�ð Q�Ø—=“= S¨D¯M©M¸!Ñ,<Ò%<Ø ‘Eñ 7ð /ñ Ø�I‰IÐFÕGð r   N)r   r   r   r|   r   r   r   r   r  r#  r8  r   r   r   r  r  ¦  se   „ ò=ð ØØØñ
ó ó ó ó ð
ð$ ØØØñ
ó ó ó ó ð
ó2Hr   r  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTryExceptParforsc                 ó®   — d„ }dg} ||Ž }| j                    t        d¬«      |«      |Ž |«       | j                    t        d¬«      |«      |Ž |«       y )Nc                 ó^   — d}t        | «      D ]  }	 |dz  }Œ
 |S # t        $ r |dz  }Y Œw xY w)Nr   r3   ©r   rx   ©r[   Úcr\   s      r   r,   z>TestTryExceptParfors.test_try_in_prange_reduction.<locals>.udt
  sD   € ØˆAÜ˜A–Y�ðØ˜‘F‘Að ð
 ˆHøô !ò Ø˜‘F’Aðús   ’›,«,rr   F©ÚparallelT)r.   r   ©r/   r,   rÖ   rØ   s       r   Útest_try_in_prange_reductionz1TestTryExceptParfors.test_try_in_prange_reduction  sc   € ò	ð ˆtˆÙ�d�ˆØ×ÑÐ2Ð-œ uÔ-¨cÓ2°DÐ9¸6ÔBØ×ÑÐ1Ð,œ tÔ,¨SÓ1°4Ð8¸&ÕAr   c                 óª  — d„ }dg} ||Ž }| j                    t        d¬«      |«      |Ž |«       t        j                  d¬«      5 }t        j                  dt
        «       | j                    t        d¬«      |«      |Ž |«       d d d «       | j                  t        «      d«       | j                  d	t        |d
   «      «       y # 1 sw Y   ŒCxY w)Nc                 óV   — d}	 t        | «      D ]  }|dz  }Œ	 	 |S # t        $ r Y yw xY w)Nr   r3   rË   r=  r>  s      r   r,   zCTestTryExceptParfors.test_try_outside_prange_reduction.<locals>.udt  s>   € ØˆAðÜ ž�AØ˜‘F‘Añ #ð
 �øô ò Ùðús   „ œ	(§(rr   Fr@  T)ÚrecordÚalwaysr3   z5no transformation for parallel execution was possibler   )	r.   r   ÚwarningsÚcatch_warningsÚsimplefilterr   Úlenr¬   r;   )r/   r,   rÖ   rØ   Úws        r   Ú!test_try_outside_prange_reductionz6TestTryExceptParfors.test_try_outside_prange_reduction  sÂ   € ò	ð ˆtˆÙ�d�ˆØ×ÑÐ2Ð-œ uÔ-¨cÓ2°DÐ9¸6ÔBä×$Ñ$¨DÕ1°QÜ×!Ñ! (Ô,CÔDØ×ÑÐ5Ð0œT¨4Ô0°Ó5°tÐ<¸fÔE÷ 2ð 	×Ñœ˜Q› Ô#Ø�‰ÐMÜ˜!˜A™$“iõ	!÷	 2Ð1ús   ÁA C	Ã	Cc                 óÖ   — d„ }t        j                  d«      dg} ||Ž }| j                    t        d¬«      |«      |Ž |«       | j                    t        d¬«      |«      |Ž |«       y )Nc                 ó°   — | j                  «       }t        | j                  «      D ]  }	 ||k(  rt        ‚| |   |z   ||<   Œ |S # t        $ r d||<   Y Œ.w xY w©Nr9   ©Úcopyr   Úsizerp   rx   ©Úarrr'   r  r\   s       r   r,   z8TestTryExceptParfors.test_try_in_prange_map.<locals>.udt0  sd   € Ø—(‘(“*ˆCÜ˜CŸH™HÖ%�ð Ø˜A’vÜ(Ð(Ø  ™V a™Z�C˜’Fð	 &ð ˆJøô !ò  Ø�C˜“Fð ús   ªAÁAÁArr   é   Fr@  T©r–   r!  ÚassertPreciseEqualr   rB  s       r   Útest_try_in_prange_mapz+TestTryExceptParfors.test_try_in_prange_map/  ón   € ò		ô —	‘	˜"“˜qÐ!ˆÙ�d�ˆØ×ÑÐ 9Ð 4¤¨eÔ 4°SÓ 9¸4Ð @À&ÔIØ×ÑÐ 8Ð 3¤¨dÔ 3°CÓ 8¸$Ð ?ÀÕHr   c                 óÖ   — d„ }t        j                  d«      dg} ||Ž }| j                    t        d¬«      |«      |Ž |«       | j                    t        d¬«      |«      |Ž |«       y )Nc                 ó´   — | j                  «       }	 t        | j                  «      D ]  }||k(  rt        ‚| |   |z   ||<   Œ 	 |S # t        $ r	 d|<   Y |S w xY wrP  rQ  rT  s       r   r,   z=TestTryExceptParfors.test_try_outside_prange_map.<locals>.udtA  si   € Ø—(‘(“*ˆCðÜ §¡Ö)�AØ˜A’vÜ(Ð(Ø  ™V a™Z�C˜’Fñ *ð ˆJøô ò Ø��A’ØˆJðús   ’0A ÁAÁArr   rV  Fr@  TrW  rB  s       r   Útest_try_outside_prange_mapz0TestTryExceptParfors.test_try_outside_prange_map@  rZ  r   N)r   r   r   rC  rM  rY  r]  r   r   r   r:  r:    s   „ òBò !ò.Ió"Ir   r:  Ú__main__)(rH  r'  Ú	itertoolsr   Únumpyr–   Únumbar   r   r   r   Ú
numba.corer   r	   Únumba.core.errorsr
   r   r   r   Únumba.tests.supportr   r   r   r   r   r   r   r   r   r   rx   r   r!   r³   rÐ   rú   r  r:  r   Úmainr   r   r   Ú<module>rf     sÊ   ðÛ Û 
Ý ã ç .Ó .ß #÷ó ÷÷ ÷ ô	ˆiô 	ôd
˜ô d
ôND&˜(ô D&ôNZ˜(ô Zôz@
˜¨(ô @
ôF\H Hô \Hð~ ôII˜8ó IIó ðIIðX ˆzÒØ€H‡M�M…Oð r   