Ë
    _§1hÝK  ã                  ó~  — U d dl mZ d dlZd dlZd dlmZmZmZ d dlZd dl	m
Z
mZ ddlmZ ddlmZ ddl­ dd	lmZ dd
lmZmZ erd dlmZ d/d„Zd/d„Zd/d„Zd/d„Zd/d„Zd/d„Zd/d„Zej>                  jA                  de!e"gd„ ¬«      	 	 	 	 d0d„«       Z#d/d„Z$ddl%m&Z& ddlm'Z'  G d„ de'«      Z( G d„ de'«      Z) G d„ de'«      Z*d „ d!„ e!e"d"„ d#„ e)e*gZ+g d$¢Z,ej>                  jA                  d%e+e,¬«      Z-ee.e/e!e"e(e)e*f   Z0d&e1d'<   eg e0f   Z2d&e1d(<   e-d1d)„«       Z3e-d1d*„«       Z4e-	 	 	 	 d1d+„«       Z5d/d,„Z6d/d-„Z7d/d.„Z8y)2é    )ÚannotationsN)ÚTYPE_CHECKINGÚCallableÚUnion)ÚMatcherÚRaisesGroupé   )Ú_core)ÚGLOBAL_PARKING_LOT_BREAKER)Ú*)Úsleep_forever)Úassert_checkpointsÚwait_all_tasks_blocked)Ú	TypeAliasc               ƒ  ó  ‡‡K  — t        «       Š‰j                  «       rJ ‚‰j                  «       j                  dk(  sJ ‚‰j	                  «        ‰j                  «       sJ ‚t        «       5  ‰j                  «       ƒ d {  –—†  d d d «       t        «       Šg Šdˆˆfd„} t        j                  «       4 ƒd {  –—† }|j                  | «       |j                  | «       t        «       ƒ d {  –—†  ‰ddgk(  sJ ‚‰j                  «       j                  dk(  sJ ‚‰j	                  «        t        «       ƒ d {  –—†  ‰g d¢k(  sJ ‚d d d «      ƒd {  –—†  y 7 ŒÔ# 1 sw Y   ŒÓxY w7 Œª7 Œx7 Œ07 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   c               “  ó†   •K  — ‰j                  d«       ‰ j                  «       ƒ d {  –—†  ‰j                  d«       y 7 Œ­w)NÚsleepingÚwoken)ÚappendÚwait)ÚeÚrecords   €€úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_sync.pyÚchildztest_Event.<locals>.child#   s1   øè ø€ Ø�‰�jÔ!Ø�f‰f‹h�ˆØ�‰�gÕð 	úó   ƒ%A¨?©Ar   r	   )r   r   r   r   ©ÚreturnÚNone)ÚEventÚis_setÚ
statisticsÚtasks_waitingÚsetr   r   r
   Úopen_nurseryÚ
start_soonr   )r   Únurseryr   r   s     @@r   Ú
test_Eventr'      sa  ùè ø€ Ü‹€AØ�x‰xŒzÐˆ>Ø�<‰<‹>×'Ñ'¨1Ò,Ð,Ð,à‡E�E„GØ�8‰8Œ:Ðˆ:Ü	Ó	ñ Ø�f‰f‹h�ˆ÷ô 	‹€Aà€Föô
 ×!Ñ!Ó#÷ Dð D wØ×Ñ˜5Ô!Ø×Ñ˜5Ô!Ü$Ó&×&Ð&Ø˜* jÐ1Ò1Ð1Ð1Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0Ø	�‰ŒÜ$Ó&×&Ð&ØÒCÒCÐCÐC÷D÷ Dð Dð 	ø÷ð úðDøð 	'øð 	'øðDø÷ D÷ Dñ Düs—   „A(F Á,EÂ EÂEÂ3F Â8E#Â9F Â<0E+Ã,E%Ã-A	E+Ä6E'Ä7E+ÅF ÅE)ÅF ÅEÅE ÅF Å%E+Å'E+Å)F Å+E=Å1E4Å2E=Å9F c               ƒ  óÊ
  K  — t        j                  t        «      5  t        d«       d d d «       t        j                  t        d¬«      5  t        d«       d d d «       t        d«      } t        | «       | j                  dk(  sJ ‚| j                  dk(  sJ ‚| j                  dk(  sJ ‚t        j                  t        «      5  | j                  «        d d d «       | j                  dk(  sJ ‚| j                  «        | j                  dk(  sJ ‚| j                  dk(  sJ ‚| j                  «       }|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  «       gk(  sJ ‚|j                   dk(  sJ ‚t        j                  t        «      5  | j                  «        d d d «       | j                  dk(  sJ ‚t        j                  t        «      5  | j#                  «       ƒ d {  –—†  d d d «       | j                  dk(  sJ ‚t%        «       5  | j'                  d«      ƒ d {  –—†  d d d «       | j                  dk(  sJ ‚t        j                  t        j(                  «      5  | j+                  d	«       d d d «       t-        | j                  «       j                  «      t        j                  «       dhk(  sJ ‚| j/                  t        j                  «       «       | j                  «       j                  dgk(  sJ ‚| j/                  d«       | j                  dk(  sJ ‚t%        «       5  | 4 ƒd {  –—†  | j                  dk(  sJ ‚d d d «      ƒd {  –—†  d d d «       t        j0                  «       4 ƒd {  –—† }| j'                  d
«      ƒ d {  –—†  | j'                  d«      ƒ d {  –—†  |j3                  | j&                  d«       t5        «       ƒ d {  –—†  | j                  dk(  sJ ‚| j                  «       j                   dk(  sJ ‚| j/                  d«       | j                  dk(  sJ ‚t        j                  t        j(                  «      5  | j                  «        d d d «       d d d «      ƒd {  –—†  | j/                  d«       | j/                  d
«       y # 1 sw Y   �Œ„xY w# 1 sw Y   �ŒbxY w# 1 sw Y   �ŒôxY w# 1 sw Y   �Œ%xY w7 �Œê# 1 sw Y   �ŒêxY w7 �Œ½# 1 sw Y   �Œ½xY w# 1 sw Y   �Œ|xY w7 �ŒÍ7 �Œ¯# 1 ƒd {  –—†7  sw Y   �ŒÀxY w# 1 sw Y   �ŒÅxY w7 �Œ°7 �Œš7 �Œ„7 �ŒY# 1 sw Y   ŒÒxY w7 ŒÉ# 1 ƒd {  –—†7  sw Y   ŒÙxY w­w)Nç      ð?ú^total_tokens must be >= 1$©Úmatchéÿÿÿÿr	   r   é   Úsomeonezthird partyzvalue 1zvalue 2zvalue 3)ÚpytestÚraisesÚ	TypeErrorÚCapacityLimiterÚ
ValueErrorÚreprÚtotal_tokensÚborrowed_tokensÚavailable_tokensÚRuntimeErrorÚreleaseÚacquire_nowaitr!   Ú	borrowersr
   Úcurrent_taskr"   Úacquirer   Úacquire_on_behalf_ofÚ
WouldBlockÚacquire_on_behalf_of_nowaitr#   Úrelease_on_behalf_ofr$   r%   r   )ÚcÚstatsr&   s      r   Útest_CapacityLimiterrE   3   s«  è ø€ Ü	�‰”yÓ	!ñ Ü˜Ô÷ä	�‰”zÐ)GÔ	Hñ Ü˜Ô÷ä˜Ó€AÜˆ„GØ�>‰>˜QÒÐÐØ×Ñ Ò!Ð!Ð!Ø×Ñ Ò"Ð"Ð"Ü	�‰”|Ó	$ñ Ø	�	‰	Œ÷à×Ñ Ò!Ð!Ð!Ø×ÑÔØ×Ñ Ò!Ð!Ð!Ø×Ñ Ò"Ð"Ð"à�L‰L‹N€EØ× Ñ  AÒ%Ð%Ð%Ø×Ñ Ò"Ð"Ð"Ø�?‰?œu×1Ñ1Ó3Ð4Ò4Ð4Ð4Ø×Ñ !Ò#Ð#Ð#ô 
�‰”|Ó	$ñ Ø	×ÑÔ÷à×Ñ Ò!Ð!Ð!Ü	�‰”|Ó	$ñ Ø�i‰i‹k×Ð÷à×Ñ Ò!Ð!Ð!ô 
Ó	ñ 0Ø×$Ñ$ YÓ/×/Ð/÷0ð ×Ñ Ò!Ð!Ð!Ü	�‰”u×'Ñ'Ó	(ñ 5Ø	×%Ñ% mÔ4÷5ô ˆq�|‰|‹~×'Ñ'Ó(¬U×-?Ñ-?Ó-AÀ9Ð,MÒMÐMÐMð ×Ñœ5×-Ñ-Ó/Ô0Ø�<‰<‹>×#Ñ#¨	 {Ò2Ð2Ð2à×Ñ˜9Ô%Ø×Ñ Ò!Ð!Ð!Ü	Ó	ñ *Ø÷ 	*ñ 	*Ø×$Ñ$¨Ò)Ð)Ð)÷	*÷ 	*÷*ô ×!Ñ!Ó#÷ ð  wØ×$Ñ$ YÓ/×/Ð/Ø×$Ñ$ YÓ/×/Ð/Ø×Ñ˜1×1Ñ1°9Ô=Ü$Ó&×&Ð&Ø× Ñ  AÒ%Ð%Ð%Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0Ø	×Ñ˜yÔ)à× Ñ  AÒ%Ð%Ð%Ü�]‰]œ5×+Ñ+Ó,ñ 	Ø×ÑÔ÷	÷÷ ð ×Ñ˜9Ô%Ø×Ñ˜9Õ%÷Cñ ú÷ñ ú÷ñ ú÷ñ úð 	ù÷ñ úð 	0ù÷0ñ 0ú÷
5ñ 5úð	*ùð 	*ù÷ 	*÷ 	*ò 	*ú÷*ñ *úðùØ/ùØ/ùà&ù÷	ð 	úðø÷ ÷ ñ üsÃ  ‚U#œR*¨#U#ÁR7ÁA*U#ÃSÃCU#ÆSÆ.2U#Ç S!Ç4SÇ5S!Ç9#U#ÈS1È1S.È2S1È6<U#É2S>ÊB3U#Ì7T'Ì>TÌ?T'ÍTÍT'ÍTÍ T'Í$ U#ÎT4ÎU#ÎUÎT7ÎUÎ6T:Î7-UÏ$T=Ï%A9UÑU Ñ/UÑ7U#ÒUÒ'U#Ò*R4Ò/U#Ò7SÒ<U#ÓSÓ	U#ÓSÓU#ÓS!Ó!S+Ó&U#Ó.S1Ó1S;Ó6U#Ó>TÔU#ÔT'ÔT'ÔT$	ÔTÔT$	ÔT'Ô'T1Ô,	U#Ô7UÔ:UÔ=UÕ U		ÕUÕU#ÕU ÕUÕU ÕU#c               ƒ  ó¬  K  — ddl m}  t        | «      }t        |«       |j                  | k(  sJ ‚|j
                  dk(  sJ ‚|j                  | k(  sJ ‚t        j                  t        «      5  |j                  «        d d d «       |j
                  dk(  sJ ‚|j                  «        |j
                  dk(  sJ ‚|j                  | k(  sJ ‚y # 1 sw Y   ŒMxY w­w)Nr   )Úinfr.   )ÚmathrG   r3   r5   r6   r7   r8   r0   r1   r9   r:   r;   )rG   rC   s     r   Útest_CapacityLimiter_infrI   x   sÅ   è ø€ Ýä˜Ó€AÜˆ„GØ�>‰>˜SÒ Ð Ð Ø×Ñ Ò!Ð!Ð!Ø×Ñ Ò$Ð$Ð$Ü	�‰”|Ó	$ñ Ø	�	‰	Œ÷à×Ñ Ò!Ð!Ð!Ø×ÑÔØ×Ñ Ò!Ð!Ð!Ø×Ñ Ò$Ð$Ñ$÷ð üs   ‚A)CÁ+CÁ<ACÃCÃCc               ƒ  ó  K  — t        d«      } t        j                  t        «      5  d| _        d d d «       t        j                  t
        d¬«      5  d| _        d d d «       t        j                  t
        d¬«      5  d| _        d d d «       | j                  dk(  sJ ‚t        j                  «       4 ƒd {  –—† }t        d«      D ]0  }|j                  | j                  |«       t        «       ƒ d {  –—†  Œ2 t        | j                  «       j                  «      ddhk(  sJ ‚| j                  «       j                  d	k(  sJ ‚| xj                  dz  c_        t        | j                  «       j                  «      h d
£k(  sJ ‚| j                  «       j                  dk(  sJ ‚| xj                  d	z  c_        | j                   dk(  sJ ‚| j                  dk(  sJ ‚| j#                  d«       | j#                  d«       | j#                  d«       t        | j                  «       j                  «      d	hk(  sJ ‚| j                  «       j                  dk(  sJ ‚| j#                  d	«       t        | j                  «       j                  «      dhk(  sJ ‚| j                  «       j                  dk(  sJ ‚d d d «      ƒd {  –—†  y # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒqxY w# 1 sw Y   �ŒSxY w7 �Œ-7 �Œô7 Œ2# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr	   r)   r*   r+   r   iöÿÿÿé   r.   é   >   r   r.   r	   rL   é   )r3   r0   r1   r2   r6   r4   r
   r$   Úranger%   r?   r   r#   r!   r<   r"   r7   rB   )rC   r&   Úis      r   Ú(test_CapacityLimiter_change_total_tokensrP   ˆ   s‹  è ø€ Ü˜Ó€Aä	�‰”yÓ	!ñ ØˆŒ÷ô 
�‰”zÐ)GÔ	Hñ ØˆŒ÷ô 
�‰”zÐ)GÔ	Hñ ØˆŒ÷ð �>‰>˜QÒÐÐä×!Ñ!Ó#÷ 1ð 1 wÜ�q“ò 	+ˆAØ×Ñ˜q×5Ñ5°qÔ9Ü(Ó*×*Ñ*ð	+ô �1—<‘<“>×+Ñ+Ó,°°A°Ò6Ð6Ð6Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0Ø	�Š˜!Ñ�Ü�1—<‘<“>×+Ñ+Ó,²Ò<Ð<Ð<Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0Ø	�Š˜!Ñ�Ø× Ñ  AÒ%Ð%Ð%Ø�~‰~ Ò"Ð"Ð"Ø	×Ñ˜qÔ!Ø	×Ñ˜qÔ!Ø	×Ñ˜qÔ!Ü�1—<‘<“>×+Ñ+Ó,°°Ò3Ð3Ð3Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0Ø	×Ñ˜qÔ!Ü�1—<‘<“>×+Ñ+Ó,°°Ò3Ð3Ð3Ø�|‰|‹~×+Ñ+¨qÒ0Ð0Ð0÷'1÷ 1ð 1÷ñ ú÷ñ ú÷ñ úð
1ùð +ùð1ø÷ 1÷ 1ñ 1üs    ‚%L §J<¯#L ÁK	Á#L Á=KÂ1L Â6K#Â7L Â:8K+Ã2K&Ã3F8K+Ê+L Ê6K)Ê7L Ê<KËL Ë	KËL ËK Ë	L Ë&K+Ë)L Ë+K=Ë1K4Ë2K=Ë9L c               ƒ  óª  K  — t        d¬«      } | j                  «       ƒ d {  –—†  t        j                  «       4 ƒd {  –—† }|j	                  | j                  «       t        «       ƒ d {  –—†  |j                  j                  «        d d d «      ƒd {  –—†  t        | j                  «      dk(  sJ ‚y 7 Œ“7 Œx7 ŒM7 Œ%# 1 ƒd {  –—†7  sw Y   Œ5xY w­w)Nr.   )r6   r   )
r3   r>   r
   r$   r%   r   Úcancel_scopeÚcancelÚlenÚ_pending_borrowers)ÚlimiterÚns     r   Ú test_CapacityLimiter_memleak_548rX   ­   s®   è ø€ Ü¨1Ô-€GØ
�/‰/Ó
×Ðä×!Ñ!Ó#÷  ð   qØ	�‰�W—_‘_Ô%Ü$Ó&×&Ð&Ø	�‰×ÑÔ÷ ÷  ô ˆw×)Ñ)Ó*¨aÒ/Ð/Ñ/ð øð øà&øð ø÷  ÷  ñ  üsh   ‚ C¢B6£C¿B8Á CÁ)B>Á,B:Á-B>ÂCÂB<Â CÂ8CÂ:B>Â<CÂ>CÃCÃCÃCc               ƒ  ó¤  ‡K  — t        j                  t        «      5  t        d«       d d d «       t        j                  t        d¬«      5  t        d«       d d d «       t        d«      } t        | «       | j                  dk(  sJ ‚| j                  �J ‚| j                  «        | j                  dk(  sJ ‚| j                  «       j                  dk(  sJ ‚| j                  «        | j                  dk(  sJ ‚t        «       5  | j                  «       ƒ d {  –—†  d d d «       | j                  dk(  sJ ‚t        j                  t        j                  «      5  | j                  «        d d d «       | j                  «        | j                  dk(  sJ ‚t        «       5  | 4 ƒd {  –—†  | j                  dk(  sJ ‚d d d «      ƒd {  –—†  d d d «       | j                  dk(  sJ ‚| j                  «        g Šdˆfd„}t        j                   «       4 ƒd {  –—† }|j#                  || «       t%        «       ƒ d {  –—†  ‰d	gk(  sJ ‚| j                  dk(  sJ ‚| j                  «        | j                  dk(  sJ ‚t        j                  t        j                  «      5  | j                  «        d d d «       d d d «      ƒd {  –—†  ‰d	d
gk(  sJ ‚y # 1 sw Y   �Œ¡xY w# 1 sw Y   �ŒxY w7 �ŒÎ# 1 sw Y   �ŒÎxY w# 1 sw Y   �ŒŽxY w7 �Œ_7 �ŒA# 1 ƒd {  –—†7  sw Y   �ŒRxY w# 1 sw Y   �ŒWxY w7 �Œ7 Œ÷# 1 sw Y   ŒˆxY w7 Œ# 1 ƒd {  –—†7  sw Y   Œ�xY w­w)Nr)   z^initial value must be >= 0$r+   r-   r.   r	   r   c              “  ó†   •K  — ‰j                  d«       | j                  «       ƒ d {  –—†  ‰j                  d«       y 7 Œ­w©NÚstartedÚfinished)r   r>   )Úsr   s    €r   Ú
do_acquirez"test_Semaphore.<locals>.do_acquireÙ   s3   øè ø€ Ø�‰�iÔ Ø�i‰i‹k×ÐØ�‰�jÕ!ð 	úr   r\   r]   )r^   Ú	Semaphorer   r   )r0   r1   r2   r`   r4   r5   ÚvalueÚ	max_valuer:   r!   r"   r;   r   r>   r
   r@   r$   r%   r   )r^   r_   r&   r   s      @r   Útest_Semaphorerc   »   sÎ  øè ø€ Ü	�‰”yÓ	!ñ Ü�#Œ÷ä	�‰”zÐ)HÔ	Iñ Ü�"Œ÷ä�!‹€AÜˆ„GØ�7‰7�aŠ<Ðˆ<Ø�;‰;ÐÐÐØ‡I�I„KØ�7‰7�aŠ<Ðˆ<Ø�<‰<‹>×'Ñ'¨1Ò,Ð,Ð,Ø×ÑÔØ�7‰7�aŠ<Ðˆ<Ü	Ó	ñ Ø�i‰i‹k×Ð÷à�7‰7�aŠ<Ðˆ<Ü	�‰”u×'Ñ'Ó	(ñ Ø	×ÑÔ÷ð ‡I�I„KØ�7‰7�aŠ<Ðˆ<Ü	Ó	ñ  Ø÷ 	 ñ 	 Ø—7‘7˜a’<Ð�<÷	 ÷ 	 ÷ ð �7‰7�aŠ<Ðˆ<Ø×ÑÔà€Fõ"ô
 ×!Ñ!Ó#÷ 	ð 	 wØ×Ñ˜: qÔ)Ü$Ó&×&Ð&Ø˜)˜Ò$Ð$Ð$Ø�w‰w˜!Š|Ðˆ|Ø	�	‰	Œà�w‰w˜!Š|Ðˆ|Ü�]‰]œ5×+Ñ+Ó,ñ 	Ø×ÑÔ÷	÷	÷ 	ð �i Ð,Ò,Ð,Ñ,÷Yñ ú÷ñ úð 	ù÷ñ ú÷ñ úð	 ùð 	 ù÷ 	 ÷ 	 ò 	 ú÷ ñ  úð	ùà&ø÷	ð 	úð	ø÷ 	÷ 	ñ 	üsD  ƒM�K©#MÁKÁB(MÄ K%ÄK"ÄK%Ä<MÅK2Å&3MÆLÆ K?Æ!LÆ$LÆ6LÇLÇLÇA	MÈL(ÈMÈ L;È3L+È4A!L;ÊL-Ê&L;Ê.MÊ9L9Ê:MËKËMËKËMË"K%Ë%K/Ë*MË2K<Ë7MË?LÌLÌL	ÌLÌL	ÌLÌL%Ì 	MÌ+L;Ì-L6	Ì2L;Ì9MÌ;MÍMÍMÍ	Mc                 ól  — t        j                  t        «      5  t        dd¬«       d d d «       t        j                  t        d¬«      5  t        dd¬«       d d d «       t        dd¬«      } | j
                  dk(  sJ ‚t        | «       t        j                  t        d¬«      5  | j                  «        d d d «       | j                  dk(  sJ ‚| j                  «        | j                  dk(  sJ ‚| j                  «        | j                  dk(  sJ ‚y # 1 sw Y   ŒëxY w# 1 sw Y   ŒÆxY w# 1 sw Y   ŒuxY w)	Nr.   r)   )rb   z%^max_values must be >= initial_value$r+   r	   z#^semaphore released too many times$r   )
r0   r1   r2   r`   r4   rb   r5   r:   ra   r;   )Úbss    r   Útest_Semaphore_boundedrf   ë   sò   € Ü	�‰”yÓ	!ñ $Ü�!˜sÕ#÷$ä	�‰”zÐ)QÔ	Rñ "Ü�!˜qÕ!÷"ä	�1 Ô	"€BØ�<‰<˜1ÒÐÐÜˆ„HÜ	�‰”zÐ)OÔ	Pñ Ø
�
‰
Œ÷à�8‰8�qŠ=Ðˆ=Ø×ÑÔØ�8‰8�qŠ=Ðˆ=Ø‡J�J„LØ�8‰8�qŠ=Ð‰=÷$ð $ú÷"ð "ú÷
ð ús#   šDÁDÂ%D*ÄDÄD'Ä*D3Úlockclsc                ó   — | j                   S ©N)Ú__name__)Úfns    r   ú<lambda>rl   ü   s
   € È2Ï;É;€ ó    )Úidsc              ƒ  ó¢  ‡‡K  —  | «       Š‰j                  «       rJ ‚t        j                  ‰«      } |«       ‰u sJ ‚t        ‰«       | j                  t        ‰«      v sJ ‚t        «       5  ‰4 ƒd {  –—†  ‰j                  «       sJ ‚t        ‰«       d d d «      ƒd {  –—†  d d d «       ‰j                  «       rJ ‚‰j                  «        ‰j                  «       sJ ‚‰j                  «        ‰j                  «       rJ ‚t        «       5  ‰j                  «       ƒ d {  –—†  d d d «       ‰j                  «       sJ ‚‰j                  «        ‰j                  «       rJ ‚‰j                  «        t        j                  t        «      5  ‰j                  «        d d d «       ‰j                  «        t        j                  t        «      5  ‰j                  «        d d d «       d Šdˆˆfd„}t        j                  «       4 ƒd {  –—† }‰j                  «       rJ ‚|j                  |«       t        «       ƒ d {  –—†  ‰j                  «       sJ ‚t        j                  t        j                   «      5  ‰j                  «        d d d «       t        j                  t        «      5  ‰j                  «        d d d «       ‰j#                  «       }t%        |«       |j                   sJ ‚|j&                  ‰u sJ ‚|j(                  dk(  sJ ‚|j                  |«       t        «       ƒ d {  –—†  ‰j#                  «       }t%        |«       |j(                  dk(  sJ ‚|j*                  j-                  «        d d d «      ƒd {  –—†  ‰j#                  «       }|j                   rJ ‚|j&                  �J ‚|j(                  dk(  sJ ‚y 7 �ŒO7 �Œ%# 1 ƒd {  –—†7  sw Y   �Œ6xY w# 1 sw Y   �Œ;xY w7 �ŒÊ# 1 sw Y   �ŒÊxY w# 1 sw Y   �ŒaxY w# 1 sw Y   �Œ,xY w7 �Œ7 �ŒÜ# 1 sw Y   �Œ–xY w# 1 sw Y   �ŒqxY w7 �Œ7 Œ¸# 1 ƒd {  –—†7  sw Y   ŒÈxY w­w)Nc               “  óÆ   •K  — t        j                  «       Š ‰4 ƒd {  –—†  t        «       ƒ d {  –—†  d d d «      ƒd {  –—†  y 7 Œ'7 Œ7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­wri   )r
   r=   r   )Úholder_taskÚls   €€r   Úholderz,test_Lock_and_StrictFIFOLock.<locals>.holder$  sV   øè ø€ ä×(Ñ(Ó*ˆØ÷ 	"ñ 	"Ü“/×!Ð!÷	"÷ 	"ñ 	"øØ!øð	"ø÷ 	"÷ 	"ñ 	"üsS   ƒA!žAŸA!¢A°A±AµA!Á A
ÁA!ÁAÁ
A!ÁAÁAÁAÁA!r   r.   r   )ÚlockedÚweakrefÚrefr5   rj   r   r;   r:   r>   r0   r1   r9   r
   r$   r%   r   r@   r!   ÚprintÚownerr"   rR   rS   )rg   Úrrs   r&   r!   rq   rr   s        @@r   Útest_Lock_and_StrictFIFOLockrz   ü   sŽ  ùè ø€ ñ 	‹	€AØ�x‰xŒzÐˆ>ô 	�‰�A‹€AÙ‹3�!‰8€Oˆ8äˆ„Gà×Ñœt A›wÑ&Ð&Ð&Ü	Ó	ñ Ø÷ 	ñ 	Ø—8‘8”:Ð�:Ü�ŒG÷	÷ 	÷ð �x‰xŒzÐˆ>Ø×ÑÔØ�8‰8Œ:Ðˆ:Ø‡I�I„KØ�x‰xŒzÐˆ>Ü	Ó	ñ Ø�i‰i‹k×Ð÷à�8‰8Œ:Ðˆ:Ø‡I�I„KØ�x‰xŒzÐˆ>à×ÑÔÜ	�‰”|Ó	$ñ à	×ÑÔ÷ð ‡I�I„KÜ	�‰”|Ó	$ñ à	�	‰	Œ÷ð €Kö"ô ×!Ñ!Ó#÷ &ð & wØ—8‘8”:Ðˆ~Ø×Ñ˜6Ô"Ü$Ó&×&Ð&Ø�x‰xŒzÐˆzä�]‰]œ5×+Ñ+Ó,ñ 	Ø×ÑÔ÷	ô �]‰]œ<Ó(ñ 	Ø�I‰IŒK÷	ð —\‘\“^ˆ
ÜˆjÔØ× Ò Ð Ð Ø×Ñ ;Ñ.Ð.Ð.Ø×'Ñ'¨1Ò,Ð,Ð,à×Ñ˜6Ô"Ü$Ó&×&Ð&Ø—\‘\“^ˆ
ÜˆjÔØ×'Ñ'¨1Ò,Ð,Ð,à×Ñ×#Ñ#Ô%÷1&÷ &ð4 —‘“€JØ× Ò Ð Ð Ø×ÑÐ#Ð#Ð#Ø×#Ñ# qÒ(Ð(Ñ(ðy	ùð 	ù÷ 	÷ 	ò 	ú÷ñ úð 	ù÷ñ ú÷ñ ú÷ñ úð&ùð 	'ù÷	ñ 	ú÷	ñ 	úð 	'ùð'&ø÷ &÷ &ñ &üsU  „A(QÁ,OÁ3OÁ4OÁ7OÂOÂ OÂ!OÂ%A(QÄO.Ä!O+Ä"O.Ä&A%QÆO;Æ1QÇPÇ)QÈPÈQÈ1P:È<PÈ=9P:É6PÊ!P:Ê(P(Ê9A0P:Ì)P5Ì*A
P:Í4QÍ?P8Î AQÏOÏOÏO	ÏOÏO	ÏOÏO(Ï#QÏ+O.Ï.O8Ï3QÏ;PÐ QÐPÐ	QÐP:ÐP%	Ð P:Ð(P2	Ð-	P:Ð8QÐ:QÑ QÑQÑQc               ƒ  ó|  ‡‡K  — t        j                  t        «      5  t        t	        d«      «       d d d «       t        j                  t        «      5  t        t
        «       d d d «       t        «       } t        | «      Š| j                  «       rJ ‚‰j                  «       rJ ‚t        «       5  ‰j                  «       ƒ d {  –—†  d d d «       | j                  «       sJ ‚‰j                  «       sJ ‚t        «       Š‰j                  «       rJ ‚‰j                  «        ‰j                  «       sJ ‚t        j                  t        «      5  ‰j                  «        d d d «       ‰j                  «        t        j                  t        «      5  ‰j                  «       ƒ d {  –—†  d d d «       t        j                  t        «      5  ‰j                  «        d d d «       t        j                  t        «      5  ‰j                  «        d d d «       t!        «       Šdˆˆfd„}t#        j$                  «       4 ƒd {  –—† }t'        d«      D ]&  }|j)                  ||«       t+        «       ƒ d {  –—†  Œ( ‰4 ƒd {  –—†  ‰j                  «        d d d «      ƒd {  –—†  ‰j                  «       sJ ‚t+        «       ƒ d {  –—†  ‰dhk(  sJ ‚‰4 ƒd {  –—†  ‰j                  «        d d d «      ƒd {  –—†  t+        «       ƒ d {  –—†  ‰h d£k(  sJ ‚d d d «      ƒd {  –—†  t!        «       Št#        j$                  «       4 ƒd {  –—† }t'        d«      D ]&  }|j)                  ||«       t+        «       ƒ d {  –—†  Œ( ‰4 ƒd {  –—†  ‰j                  d«       ‰j-                  «       }t/        |«       |j0                  dk(  sJ ‚|j2                  j0                  dk(  sJ ‚d d d «      ƒd {  –—†  ‰j-                  «       j2                  j0                  dk(  sJ ‚t+        «       ƒ d {  –—†  ‰ddhk(  sJ ‚‰4 ƒd {  –—†  ‰j                  «        d d d «      ƒd {  –—†  d d d «      ƒd {  –—†  t#        j4                  «       5 }‰4 ƒd {  –—†  |j7                  «        	 ‰j                  «       ƒ d {  –—†  ‰j                  «       sJ ‚d d d «      ƒd {  –—†  d d d «       y # 1 sw Y   �Œ±xY w# 1 sw Y   �Œ�xY w7 �Œ9# 1 sw Y   �Œ9xY w# 1 sw Y   �Œ²xY w7 �Œx# 1 sw Y   �ŒxxY w# 1 sw Y   �ŒSxY w# 1 sw Y   �Œ.xY w7 �Œ7 �ŒÙ7 �ŒÏ7 �Œ²# 1 ƒd {  –—†7  sw Y   �ŒÃxY w7 �Œ§7 �Œ—7 �Œz# 1 ƒd {  –—†7  sw Y   �Œ‹xY w7 �Œ�7 �Œk# 1 ƒd {  –—†7  sw Y   �Œ|xY w7 �Œ]7 �Œ.7 �Œ$7 �Œ¿# 1 ƒd {  –—†7  sw Y   �ŒÐxY w7 �Œ�7 �ŒŒ7 �Œo# 1 ƒd {  –—†7  sw Y   �Œ€xY w7 �Œx# 1 ƒd {  –—†7  sw Y   �Œ‰xY w7 �Œq7 �ŒK# ‰j                  «       sJ ‚w xY w7 �ŒC# 1 ƒd {  –—†7  sw Y   �ŒTxY w# 1 sw Y   y xY w­w)Nr.   c              “  óÌ   •K  — ‰4 ƒd {  –—†  ‰j                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  ‰j                  | «       y 7 Œ>7 Œ(7 Œ# 1 ƒd {  –—†7  sw Y   Œ*xY w­wri   )r   Úadd)rO   rC   Úfinished_waiterss    €€r   Úwaiterztest_Condition.<locals>.waiterl  sX   øè ø€ Ø÷ 	ñ 	Ø—&‘&“(�NˆN÷	÷ 	à×Ñ˜QÕð	øØøð	ø÷ 	÷ 	ñ 	üsQ   ƒA$ŠA	‹A$ŽA¢A£A§A$²A³A$ÁAÁA$ÁA!ÁAÁA!ÁA$rL   r   >   r   r.   r	   r	   )rO   Úintr   r   )r0   r1   r2   Ú	Conditionr`   ÚStrictFIFOLockÚLockrt   r   r>   r;   r9   r:   r   ÚnotifyÚ
notify_allr#   r
   r$   rN   r%   r   r!   rw   r"   Úlock_statisticsÚCancelScoperS   )rr   r   r&   rO   r!   ÚscoperC   r~   s         @@r   Útest_Conditionr‰   J  s6  ùè ø€ Ü	�‰”yÓ	!ñ  Ü”)˜A“,Ô÷ ä	�‰”yÓ	!ñ "Ü”.Ô!÷"ä‹€AÜ�!‹€AØ�x‰xŒzÐˆ>Ø�x‰xŒzÐˆ>Ü	Ó	ñ Ø�i‰i‹k×Ð÷à�8‰8Œ:Ðˆ:Ø�8‰8Œ:Ðˆ:ä‹€AØ�x‰xŒzÐˆ>Ø×ÑÔØ�8‰8Œ:Ðˆ:Ü	�‰”|Ó	$ñ Ø	×ÑÔ÷à‡I�I„Kä	�‰”|Ó	$ñ à�f‰f‹h�ˆ÷ô 
�‰”|Ó	$ñ à	�‰Œ
÷ô 
�‰”|Ó	$ñ à	�‰Œ÷ô “uÐö ô
 ×!Ñ!Ó#÷ -ð - wÜ�q“ò 	+ˆAØ×Ñ˜v qÔ)Ü(Ó*×*Ñ*ð	+ð ÷ 	ñ 	Ø�H‰HŒJ÷	÷ 	à�x‰xŒzÐˆzÜ$Ó&×&Ð&Ø A 3Ò&Ð&Ð&Ø÷ 	ñ 	Ø�L‰LŒN÷	÷ 	ä$Ó&×&Ð&Ø¢9Ò,Ð,Ð,÷-÷ -ô “uÐÜ×!Ñ!Ó#÷ ð  wÜ�q“ò 	+ˆAØ×Ñ˜v qÔ)Ü(Ó*×*Ñ*ð	+ð ÷ 	Añ 	AØ�H‰H�QŒKØŸ™›ˆJÜ�*ÔØ×+Ñ+¨qÒ0Ð0Ð0Ø×-Ñ-×;Ñ;¸qÒ@Ð@Ð@÷	A÷ 	Að �|‰|‹~×-Ñ-×;Ñ;¸qÒ@Ð@Ð@ä$Ó&×&Ð&Ø A q 6Ò)Ð)Ð)à÷ 	ñ 	Ø�L‰LŒN÷	÷ 	÷!÷ ô* 
×	Ñ	Ó	ð " Ø÷ 	"ñ 	"Ø�L‰LŒNð"Ø—f‘f“h—�à—x‘x”zÐ!�z÷	"÷ 	"÷"ð "÷U ñ  ú÷"ñ "úð 	ù÷ñ ú÷ñ úð 	ù÷ñ ú÷ñ ú÷ñ úð-ùð +ùð	ùð 	ù÷ 	÷ 	ò 	úð 	'ùð	ùð 	ù÷ 	÷ 	ò 	úà&ùð-ù÷ -÷ -ò -úðùð +ùð	Aùð 	Aù÷ 	A÷ 	Aò 	Aúð 	'ùð	ùð 	ù÷ 	÷ 	ò 	úð!ù÷ ÷ ò úð,	"ùð úà—x‘x”zÐ!‘zúð	"ù÷ 	"÷ 	"ò 	"ú÷"ð "üsH  „X<žS"³!X<ÁS/Á$AX<Â/S?ÃS<ÃS?ÃBX<ÅTÅ1X<ÆTÆ!TÆ"TÆ&!X<ÇT)Ç!X<Ç9T6È
1X<È;UÈ<X<È?.V
É-UÉ.V
É:U	É;V
É>UÊV
ÊUÊ#V
Ê>U%Ê?V
ËU(ËV
ËU.Ë&V
Ë1U+Ë2V
ÌVÌV
ÌX<ÌVÌ&X<ÍV ÍX<Í.W$Í5V#Í6W$ÎV&ÎW$ÎAV,ÏW$Ï*V)Ï+:W$Ð%WÐ&W$Ð9WÐ:W$Ð=WÑW$ÑWÑW$ÑX<Ñ)W!Ñ*X<ÒX0Ò	W:Ò
X0ÒXÒX Ò2W=Ò3X Ò7XÓ	X0ÓXÓX0Ó	X<Ó"S,Ó'X<Ó/S9Ó4X<Ó<S?Ó?T	ÔX<ÔTÔX<ÔTÔT&Ô!X<Ô)T3Ô.X<Ô6U Ô;	X<ÕV
Õ	V
ÕV
ÕU"	ÕUÕU"	Õ	V
Õ(V
Õ+V
Õ.V	Õ4U7Õ5V	Õ<	V
ÖX<Ö
VÖVÖVÖ	X<Ö#W$Ö&W$Ö)W$Ö,V?	Ö2V5Ö3V?	Ö:	W$×W$×W$×W	×W×W	×W$×!X<×$W7×*W-×+W7×2X<×:X0×=X Ø XØXØX0ØX-	Ø X#Ø!X-	Ø(X0Ø0X9Ø5X<)Úopen_memory_channel)ÚAsyncContextManagerMixinc                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚChannelLock1c                ó–   — t        d    |«      \  | _        | _        t        |dz
  «      D ]  }| j                  j	                  d «       Œ y ©Nr.   )rŠ   r^   ry   rN   Úsend_nowait)ÚselfÚcapacityÚ_s      r   Ú__init__zChannelLock1.__init__¦  sC   € Ü,¨TÑ2°8Ó<‰ˆŒ�”Ü�x !‘|Ó$ò 	%ˆAØ�F‰F×Ñ˜tÕ$ñ	%rm   c                ó:   — | j                   j                  d «       y ri   ©r^   r�   ©r‘   s    r   r;   zChannelLock1.acquire_nowait«  ó   € Ø�‰×Ñ˜4Õ rm   c              ƒ  óV   K  — | j                   j                  d «      ƒ d {  –—†  y 7 Œ­wri   )r^   Úsendr—   s    r   r>   zChannelLock1.acquire®  s   è ø€ Ø�f‰f�k‰k˜$Ó×Òús   ‚)¡'¢)c                ó8   — | j                   j                  «        y ri   ©ry   Úreceive_nowaitr—   s    r   r:   zChannelLock1.release±  ó   € Ø�‰×ÑÕrm   N)r’   r€   r   r   r   ©rj   Ú
__module__Ú__qualname__r”   r;   r>   r:   © rm   r   r�   r�   ¥  s   „ ó%ó
!ó ô rm   r�   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚChannelLock2c                óp   — t        d    d«      \  | _        | _        | j                  j                  d «       y ©Né
   )rŠ   r^   ry   r�   r—   s    r   r”   zChannelLock2.__init__¶  s+   € Ü,¨TÑ2°2Ó6‰ˆŒ�”Ø�‰×Ñ˜4Õ rm   c                ó8   — | j                   j                  «        y ri   rœ   r—   s    r   r;   zChannelLock2.acquire_nowaitº  rž   rm   c              ƒ  óT   K  — | j                   j                  «       ƒ d {  –—†  y 7 Œ­wri   )ry   Úreceiver—   s    r   r>   zChannelLock2.acquire½  s   è ø€ Ø�f‰f�n‰nÓ×Òús   ‚( &¡(c                ó:   — | j                   j                  d «       y ri   r–   r—   s    r   r:   zChannelLock2.releaseÀ  r˜   rm   Nr   rŸ   r¢   rm   r   r¤   r¤   µ  s   „ ó!ó óô!rm   r¤   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚChannelLock3c                óH   — t        d    d«      \  | _        | _        d| _        y )Nr   F)rŠ   r^   ry   Úacquiredr—   s    r   r”   zChannelLock3.__init__Å  s"   € Ü,¨TÑ2°1Ó5‰ˆŒ�”ð ˆ�rm   c                ó.   — | j                   rJ ‚d| _         y ©NT)r¯   r—   s    r   r;   zChannelLock3.acquire_nowaitÌ  s   € Ø—=’=Ð Ð Øˆ�rm   c              ƒ  óº   K  — | j                   r$| j                  j                  d «      ƒ d {  –—†  y d| _         t        j                  «       ƒ d {  –—†  y 7 Œ)7 Œ­wr±   )r¯   r^   rš   r
   Ú
checkpointr—   s    r   r>   zChannelLock3.acquireÐ  sG   è ø€ Ø�=Š=Ø—&‘&—+‘+˜dÓ#×#Ñ#à ˆDŒMÜ×"Ñ"Ó$×$Ñ$ð $øð %ús!   ‚+A­A®#AÁAÁAÁAc                ó–   — 	 | j                   j                  «        y # t        j                  $ r | j                  sJ ‚d| _        Y y w xY w)NF)ry   r�   r
   r@   r¯   r—   s    r   r:   zChannelLock3.release×  s?   € ð	"Ø�F‰F×!Ñ!Õ#øÜ×Ñò 	"Ø—=’=Ð �=Ø!ˆDŽMð	"ús   ‚ �(AÁANr   rŸ   r¢   rm   r   r­   r­   Ä  s   „ óóó%ô"rm   r­   c                 ó   — t        d«      S r�   )r3   r¢   rm   r   rl   rl   à  s   € ŒO˜AÓ€ rm   c                 ó   — t        d«      S r�   )r`   r¢   rm   r   rl   rl   á  s
   € ŒI�a‹L€ rm   c                 ó   — t        d«      S r¦   ©r�   r¢   rm   r   rl   rl   ä  s   € ŒL˜Ó€ rm   c                 ó   — t        d«      S r�   r¸   r¢   rm   r   rl   rl   å  s
   € ŒL˜‹O€ rm   )zCapacityLimiter(1)zSemaphore(1)rƒ   r‚   zChannelLock1(10)zChannelLock1(1)r¤   r­   Úlock_factoryr   ÚLockLikeÚLockFactoryc              ƒ  ó,  ‡‡‡K  — dŠd}dŠdŠdˆˆˆfd„}t        j                  «       4 ƒd {  –—† } | «       }t        |«      D ]  }|j                  ||«       Œ d d d «      ƒd {  –—†  ‰rJ ‚‰‰|z  k(  sJ ‚y 7 ŒL7 Œ# 1 ƒd {  –—†7  sw Y   Œ%xY w­w)Nr§   rK   Fr   c              “  ó0  •K  — t        ‰«      D ]f  }| 4 ƒd {  –—†  ‰dz  Š‰rJ ‚dŠt        j                  «       ƒ d {  –—†  t        j                  «       ƒ d {  –—†  ‰sJ ‚dŠd d d «      ƒd {  –—†  Œh y 7 Œ`7 Œ;7 Œ!7 Œ# 1 ƒd {  –—†7  sw Y   Œ„xY w­w)Nr.   TF)rN   r
   r³   )Ú	lock_liker“   ÚLOOPSÚacquiresÚin_critical_sections     €€€r   Úworkerz+test_generic_lock_exclusion.<locals>.worker  s¦   øè ø€ ä�u“ò 	,ˆAØ ÷ ,ñ ,Ø˜A‘�Ù.Ð.Ð.Ø&*Ð#Ü×&Ñ&Ó(×(Ð(Ü×&Ñ&Ó(×(Ð(Ù*Ð*Ð*Ø&+Ð#÷,÷ ,ð ,ñ	,ð,øð )øØ(øð,ø÷ ,÷ ,ñ ,üsg   ƒB˜A9™Bœ#B¿A;Á BÁA=Á
BÁ&BÁ1A?Á2BÁ;BÁ=BÁ?BÂB	ÂB
ÂB	ÂB)r¿   r»   r   r   )r
   r$   rN   r%   )	rº   ÚWORKERSrÃ   r&   r¿   r“   rÀ   rÁ   rÂ   s	         @@@r   Útest_generic_lock_exclusionrÅ     s§   úè ø€ à€EØ€GØÐØ€H÷
,ô ×!Ñ!Ó#÷ 2ð 2 wÙ “Nˆ	Ü�w“ò 	2ˆAØ×Ñ˜v yÕ1ð	2÷2÷ 2ñ #Ð"Ð"Ø�u˜w‘Ò&Ð&Ñ&ð2øð 2ø÷ 2÷ 2ñ 2üsD   …)B®A;¯B²*A?ÁBÁ'A=Á(BÁ=BÁ?BÂBÂBÂBc              ƒ  ó€  ‡‡‡K  — g Šg ŠdŠdˆˆˆfd„} | «       }t        j                  «       4 ƒd {  –—† }|j                  |d|«       |j                  |d|«       |j                  |d|«       d d d «      ƒd {  –—†  t        ‰«      D ]  }‰d|z  d|dz   z   ‰k(  rŒJ ‚ y 7 Œq7 Œ*# 1 ƒd {  –—†7  sw Y   Œ:xY w­w)NrK   c              “  óÚ   •K  — ‰j                  | «       t        ‰«      D ].  }|4 ƒd {  –—†  ‰j                  | «       d d d «      ƒd {  –—†  Œ0 y 7 Œ(7 Œ	# 1 ƒd {  –—†7  sw Y   ŒHxY w­wri   )r   rN   )Únamer¿   r“   rÀ   Úinitial_orderr   s      €€€r   Úloopyz.test_generic_lock_fifo_fairness.<locals>.loopy+  sk   øè ø€ à×Ñ˜TÔ"Ü�u“ò 	$ˆAØ ÷ $ñ $Ø—‘˜dÔ#÷$÷ $ð $ñ	$ð$øð $ø÷ $÷ $ñ $üsC   ƒ&A+©AªA+­A¿A+Á
AÁA+ÁA+ÁA(	ÁAÁA(	Á$A+r.   r	   rL   )rÈ   r€   r¿   r»   r   r   )r
   r$   r%   rN   )rº   rÊ   r¿   r&   rO   rÀ   rÉ   r   s        @@@r   Útest_generic_lock_fifo_fairnessrË   %  sÍ   úè ø€ à€MØ€FØ€E÷$ñ “€IÜ×!Ñ!Ó#÷ 0ð 0 wØ×Ñ˜5 ! YÔ/Ø×Ñ˜5 ! YÔ/Ø×Ñ˜5 ! YÔ/÷0÷ 0ô �5‹\ò <ˆØ�a˜!‘e˜a 1 q¡5™kÐ*¨mÓ;Ð;Ð;ñ<ð0øð 0ø÷ 0÷ 0ñ 0üsJ   ….B>³B%´B>·:B)Á1B>Á<B'Á=#B>Â!B>Â'B>Â)B;Â/B2Â0B;Â7B>c              ƒ  óV  ‡‡K  —  | «       Šg Šdˆˆfd„}t        j                  «       4 ƒd {  –—† }‰j                  «        |j                  |«       t	        «       ƒ d {  –—†  ‰dgk(  sJ ‚‰j                  «        d d d «      ƒd {  –—†  y 7 Œ`7 Œ/7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­w)Nc               “  ó¼   •K  — ‰j                  d«       ‰ 4 ƒd {  –—†  	 d d d «      ƒd {  –—†  ‰j                  d«       y 7 Œ'7 Œ# 1 ƒd {  –—†7  sw Y   Œ(xY w­wr[   )r   )r¿   r   s   €€r   Ú
lock_takerzCtest_generic_lock_acquire_nowait_blocks_acquire.<locals>.lock_takerE  sT   øè ø€ Ø�‰�iÔ Ø÷ 	ñ 	Ø÷	÷ 	à�‰�jÕ!ð	øð 	ø÷ 	÷ 	ñ 	üsA   ƒA›AœAŸA¡A¬A­AÁAÁAÁAÁAÁAr\   r   )r
   r$   r;   r%   r   r:   )rº   rÎ   r&   r¿   r   s      @@r   Ú/test_generic_lock_acquire_nowait_blocks_acquirerÏ   =  s¡   ùè ø€ ñ “€Ià€Fö"ô ×!Ñ!Ó#÷ ð  wØ× Ñ Ô"Ø×Ñ˜:Ô&Ü$Ó&×&Ð&Ø˜)˜Ò$Ð$Ð$Ø×ÑÔ÷÷ ñ øð 	'øðø÷ ÷ ñ üsV   „)B)­B®B)±/BÁ BÁ!BÁ=B)ÂBÂ	B)ÂBÂB)ÂB&ÂBÂB&Â"B)c               ƒ  ó0  K  — t         rJ ‚t        j                  «       } t        j                  «       4 ƒd{  –—† }|j	                  | j
                  «       ddd«      ƒd{  –—†  t        j                  t        | j                  j                  d   «      «      }t        j                  t        j                  d|› d�¬«      5  | j                  «       ƒ d{  –—†  ddd«       t         rJ ‚y7 Œ·7 ŒŽ# 1 ƒd{  –—†7  sw Y   ŒžxY w7 Œ.# 1 sw Y   Œ-xY w­w)z‡Test that trying to acquire a lock whose owner has exited raises an error.
    see https://github.com/python-trio/trio/issues/3035
    Nr   ú.^Owner of this lock exited without releasing: ú$r+   )r   Útriorƒ   r$   r%   r>   ÚreÚescapeÚstrÚ_lotÚ	broken_byr0   r1   ÚBrokenResourceError)Úlockr&   Ú	owner_strs      r   Útest_lock_acquire_unowned_lockrÜ   S  sè   è ø€ õ *Ð)Ð)Ü�9‰9‹;€DÜ× Ñ Ó"÷ )ð ) gØ×Ñ˜4Ÿ<™<Ô(÷)÷ )ä—	‘	œ#˜dŸi™i×1Ñ1°!Ñ4Ó5Ó6€IÜ	�‰Ü× Ñ Ø>¸y¸kÈÐKô
ñ ð �l‰l‹n×Ð÷	õ
 *Ð)Ð)Ð)ð)øð )ø÷ )÷ )ñ )úð 	ø÷	ð üso   ‚5D·C/¸D»C3ÁDÁ"C1Á#A"DÃD
ÃDÃD
ÃDÃ1DÃ3DÃ9C<Ã:DÄDÄD
Ä
DÄDc               ƒ  ó¾  K  — t         rJ ‚t        j                  «       } t        t	        t        j
                  d¬«      «      5  t        j                  «       4 ƒd{  –—† }|j                  | j                  «       |j                  | j                  «       ddd«      ƒd{  –—†  ddd«       t         rJ ‚y7 Œ[7 Œ# 1 ƒd{  –—†7  sw Y   Œ'xY w# 1 sw Y   Œ+xY w­w)z�Test for error if awaiting on a lock whose owner exits without releasing.
    see https://github.com/python-trio/trio/issues/3035rÑ   r+   N)	r   rÓ   rƒ   r   r   rÙ   r$   r%   r>   )rÚ   r&   s     r   Útest_lock_multiple_acquirerÞ   d  s¾   è ø€ õ *Ð)Ð)Ü�9‰9‹;€DÜ	ÜÜ×$Ñ$ØBô	
ó
ñ -ô ×$Ñ$Ó&÷ 	-ð 	-¨'Ø×Ñ˜tŸ|™|Ô,Ø×Ñ˜tŸ|™|Ô,÷	-÷ 	-÷-õ *Ð)Ð)Ð)ð	-øð 	-ø÷ 	-÷ 	-ñ 	-ú÷-ð -üsf   ‚ACÁCÁB8ÁCÁ 7B<ÂCÂ"B:Â#CÂ'CÂ8CÂ:CÂ<C	ÃCÃC	Ã
CÃCÃCc               ƒ  ó˜  K  — t         rJ ‚d } t        j                  «       }|j                  «        t	        j
                  «       |j                  git         k(  sJ ‚t        j                  «       4 ƒd {  –—† }|j                  |j                  «       t        «       ƒ d {  –—†  |j                  «        t        t         «      dk(  sJ ‚t        t        t         «      «      } t         |    |j                  gk(  sJ ‚d d d «      ƒd {  –—†  |j                  j                  | gk(  sJ ‚t         rJ ‚y 7 Œ»7 Œ�7 Œ-# 1 ƒd {  –—†7  sw Y   Œ=xY w­wr�   )r   rÓ   rƒ   r;   r
   r=   r×   r$   r%   r>   r   r:   rT   ÚnextÚiterrØ   )Ú
child_taskrÚ   r&   s      r   Útest_lock_handoverrã   u  s:  è ø€ Ý)Ð)Ð)Ø"€JÜ�9‰9‹;€Dð 	×ÑÔä×ÑÓØ�I‰Ið
ðô 
$ò	$ð $ð $ô × Ñ Ó"÷ 
Eð 
E gØ×Ñ˜4Ÿ<™<Ô(Ü$Ó&×&Ð&ð 	�‰Œô Ô-Ó.°!Ò3Ð3Ð3Üœ$Ô9Ó:Ó;ˆ
Ü)¨*Ñ5¸$¿)¹)¸ÒDÐDÐD÷
E÷ 
Eð �9‰9×Ñ : ,Ò.Ð.Ð.Ý)Ð)Ð)Ð)ð
Eøà&øð
Eø÷ 
E÷ 
Eñ 
Eüs[   ‚A1E
Á3D/Á4E
Á7)D5Â D1Â!AD5Ã:E
ÄD3Ä*E
Ä1D5Ä3E
Ä5EÄ;D>Ä<EÅE
r   )rg   ztype[Lock | StrictFIFOLock]r   r   )rº   r¼   r   r   )9Ú
__future__r   rÔ   ru   Útypingr   r   r   r0   Útrio.testingr   r   Ú r
   Ú_core._parking_lotr   Ú_syncÚ	_timeoutsr   Útestingr   r   Útyping_extensionsr   r'   rE   rI   rP   rX   rc   rf   ÚmarkÚparametrizerƒ   r‚   rz   r‰   Ú_channelrŠ   r‹   r�   r¤   r­   Úlock_factoriesÚlock_factory_namesÚgeneric_lock_testr3   r`   r»   Ú__annotations__r¼   rÅ   rË   rÏ   rÜ   rÞ   rã   r¢   rm   r   ú<module>rô      s¾  ðÞ "ã 	Û ß 1Ñ 1ã ç -å Ý ;Ü Ý %ß @áÝ+óDó<B&óJ%ó !1óJ0ó--ó`ð" ‡�×Ñ˜ T¨>Ð$:Ñ@VÐÓWðJ)Ø(ðJ)à	òJ)ó XðJ)óZQ"õh +Ý ,ô Ð+ô  ô !Ð+ô !ô"Ð+ô "ñ8 ÙØØÙÙØØð	€ò	Ð ð —K‘K×+Ñ+ØØØð ,ó Ð ð ØØØØØØØðñ€ˆ)ó ð " " h ,Ñ/€ˆYÓ /ð
 ò'ó ð'ð8 ò<ó ð<ð. ðØðà	òó ðó**ó"*ô"*rm   