Ë
    _§1hµ  ã                  óV  — d dl mZ d dlmZ d dlmZmZmZ d dlZd dl	Z	d dl
Z
d dlZ
d dlmZmZmZ ddlmZmZmZ dd	lmZmZ er d d
lmZmZ d dlmZ d dlmZ ddlmZ ddl m!Z! dd„Z" ejF                  d¬«       G d„ de
jH                  jJ                  «      «       Z&	 	 	 	 dd„Z'dd„Z(y)é    )Úannotations)Úpartial)ÚTYPE_CHECKINGÚNoReturnÚcastN)ÚAF_INETÚIPPROTO_TCPÚSOCK_STREAMé   )Úopen_ssl_over_tcp_listenersÚopen_ssl_over_tcp_streamÚserve_ssl_over_tcpé   )Ú
SERVER_CTXÚ
client_ctx)ÚAddressFamilyÚ
SocketKind)Ú
SSLContext)ÚStream)ÚSocketListener)ÚSSLListenerc              ƒ  ó   K  — | 4 ƒd {  –—†  	 	 | j                  d«      ƒ d {  –—† }|sn| j                  |«      ƒ d {  –—†  Œ6	 d d d «      ƒd {  –—†  y 7 ŒN7 Œ57 Œ# t        j                  $ r Y Œ,w xY w7 Œ$# 1 ƒd {  –—†7  sw Y   y xY w­w)Ni'  )Úreceive_someÚsend_allÚtrioÚBrokenResourceError)ÚstreamÚdatas     úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_highlevel_ssl_helpers.pyÚecho_handlerr        s˜   è ø€ Ø÷ ñ ð	ØØ#×0Ñ0°Ó7×7�ÙØØ—o‘o dÓ+×+Ð+ð	 ð ÷÷ ñ øð 8øð ,ùÜ×'Ñ'ò 	Ùð	úðø÷ ÷ ñ üs‰   ‚B‰AŠB�A9�A¤A¥AÁ AÁAÁA9ÁBÁA7ÁBÁAÁAÁA4Á1A9Á3A4Á4A9Á7BÁ9BÁ?BÂ BÂBF)Úslotsc                  óX   — e Zd ZU ded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zy)	ÚFakeHostnameResolverz?tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]Úsockaddrc              ƒ  óF   K  — t         t        t        d| j                  fgS ­w)NÚ )r   r
   r	   r$   )ÚselfÚhostÚportÚfamilyÚtypeÚprotoÚflagss          r   Úgetaddrinfoz FakeHostnameResolver.getaddrinfo2   s    è ø€ ô" œ+¤{°B¸¿¹ÐFÐGÐGùs   ‚!c              ƒ  ó   K  — t         ‚­w)N)ÚNotImplementedError)r'   r$   r-   s      r   Úgetnameinfoz FakeHostnameResolver.getnameinfoE   s   è ø€ ô
 "Ð!ùs   ‚	N)r   r   r   r   )r(   zbytes | Noner)   zbytes | str | int | Noner*   Úintr+   r2   r,   r2   r-   r2   Úreturnzqlist[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])r$   z+tuple[str, int] | tuple[str, int, int, int]r-   r2   r3   r   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r.   r1   © ó    r   r#   r#   .   sˆ   … àMÓMð ØØØðHàðHð 'ðHð ð	Hð
 ðHð ðHð ðHð
óHð&"à=ð"ð ð"ð 
ô	"r9   r#   c           
   ƒ  ó\  K  — t        j                  «       4 ƒd {  –—† }|j                  t        t        t
        dt        d¬«      «      ƒ d {  –—† }t        |t        «      sJ ‚t        d|«      }|\  }|4 ƒd {  –—†  |j                  }|j                  j                  «       }t        |«      }t         j                  j                  |«       t        dd«      ƒ d {  –—† }|4 ƒd {  –—†  t!        j"                  t         j$                  «      5  |j'                  «       ƒ d {  –—†  d d d «       d d d «      ƒd {  –—†  t        dd| ¬«      ƒ d {  –—† }|4 ƒd {  –—†  t!        j"                  t         j$                  «      5  |j'                  «       ƒ d {  –—†  d d d «       d d d «      ƒd {  –—†  t        dd| ¬«      ƒ d {  –—† }|4 ƒd {  –—†  t        |t         j(                  «      sJ ‚|j*                  dk(  sJ ‚|j-                  d	«      ƒ d {  –—†  |j/                  d
«      ƒ d {  –—† d	k(  sJ ‚d d d «      ƒd {  –—†  |j0                  rJ ‚t        dd| dd
¬«      ƒ d {  –—† }|4 ƒd {  –—†  |j0                  sJ ‚d d d «      ƒd {  –—†  |j2                  j5                  «        d d d «      ƒd {  –—†  d d d «      ƒd {  –—†  y 7 �Œ¼7 �ŒŒ7 �Œb7 �Œ7 �Œù7 �ŒÀ# 1 sw Y   �ŒÀxY w7 �Œ¸# 1 ƒd {  –—†7  sw Y   �ŒÉxY w7 �Œ»7 �Œ³7 �Œz# 1 sw Y   �ŒzxY w7 �Œr# 1 ƒd {  –—†7  sw Y   �ŒƒxY w7 �Œu7 �Œm7 �Œ*7 �Œ7 �Œ# 1 ƒd {  –—†7  sw Y   �ŒxY w7 Œô7 Œë7 ŒÏ# 1 ƒd {  –—†7  sw Y   ŒßxY w7 Œ¼# 1 ƒd {  –—†7  sw Y   ŒÌxY w7 ŒÃ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   ú	127.0.0.1©r(   z!list[SSLListener[SocketListener]]ztrio-test-1.example.orgéP   zxyzzy.example.org)Ússl_contextó   xr   T)r>   Úhttps_compatibleÚhappy_eyeballs_delay)r   Úopen_nurseryÚstartr   r   r    r   Ú
isinstanceÚlistr   Útransport_listenerÚsocketÚgetsocknamer#   Úset_custom_hostname_resolverr   ÚpytestÚraisesr   Údo_handshakeÚ	SSLStreamÚserver_hostnamer   r   Ú_https_compatibleÚcancel_scopeÚcancel)	r   ÚnurseryÚvalueÚresÚlistenerÚtp_listenerr$   Úhostname_resolverr   s	            r   Ú1test_open_ssl_over_tcp_stream_and_everything_elserX   O   sv  è ø€ ô × Ñ Ó"÷ D*ð D* gð —m‘mÜÜ"ÜØÜØ ôó
÷ 
ˆô ˜%¤Ô&Ð&Ð&ÜÐ6¸Ó>ˆØ‰ˆØ÷ 4	*ñ 4	*à*2×*EÑ*EˆKà"×)Ñ)×5Ñ5Ó7ˆHÜ 4°XÓ >ÐÜ�K‰K×4Ñ4Ð5FÔGô 4Ð4MÈrÓR×RˆFØ÷ 0ñ 0Ü—]‘]¤4×#;Ñ#;Ó<ñ 0Ø ×-Ñ-Ó/×/Ð/÷0÷0÷ 0ô 4Ø#ØØ&ô÷ ˆFð
 ÷ 0ñ 0Ü—]‘]¤4×#;Ñ#;Ó<ñ 0Ø ×-Ñ-Ó/×/Ð/÷0÷0÷ 0ô
 4Ø)ØØ&ô÷ ˆFð
 ÷ <ñ <Ü! &¬$¯.©.Ô9Ð9Ð9Ø×-Ñ-Ð1JÒJÐJÐJØ—o‘o dÓ+×+Ð+Ø#×0Ñ0°Ó3×3°tÒ;Ð;Ð;÷	<÷ <ð ×/Ò/Ð/Ð/Ü3Ø)ØØ&Ø!%à%&ô÷ ˆFð ÷ 0ñ 0Ø×/Ò/Ð/Ð/÷0÷ 0ð × Ñ ×'Ñ'Ô)÷i4	*÷ 4	*÷!D*÷ D*ñ D*ùð
ùð4	*ùð Sùð0ùà/ù÷0ñ 0úð0ù÷ 0÷ 0ò 0úðùð
0ùà/ù÷0ñ 0úð0ù÷ 0÷ 0ò 0úð
ùð
<ùð ,ùØ3ùð	<ù÷ <÷ <ò <úðøð0øð 0ø÷ 0÷ 0ñ 0úða4	*ø÷ 4	*÷ 4	*ñ 4	*úð!D*ø÷ D*÷ D*ñ D*üsn  ‚N,›KœN,Ÿ/NÁKÁ,NÁ;KÁ<NÁ?A N ÃK Ã 
N Ã*K#
Ã+N Ã.$K9ÄK)	Ä&K&Ä'K)	Ä+K9Ä3N Ä>K6Ä?N ÅLÅ
N ÅL
Å N Å#$L(ÆL	ÆLÆL	Æ L(Æ(N Æ3L%Æ4N Ç	L>Ç

N ÇM
ÇN ÇAMÈM
ÈMÈ3M
È4	MÈ=N ÉM
É	%N É.M#É/
N É9M%
É:N É=M)ÊN ÊM'ÊN Ê6NËM>ËNËN,ËNËN,ËNËNË N Ë#N Ë&K)	Ë)K3Ë.K9Ë6N Ë9LË?LÌ LÌ	N ÌN ÌL	ÌL"ÌL(Ì%N Ì(L;Ì.L1Ì/L;Ì6	N ÍN ÍMÍMÍ
N ÍM ÍMÍM Í	N Í%N Í'N Í)M;Í/M2Í0M;Í7N Í>NÎ N	ÎN	ÎN	ÎNÎN,ÎN)ÎN ÎN)Î%N,c               ƒ  óZ  K  — t        dt        d¬«      ƒ d {  –—† \  } | 4 ƒd {  –—†  t        | t        j                  «      sJ ‚| j
                  }t        |t        j                  «      sJ ‚|j                  j                  «       d   dk(  sJ ‚| j                  rJ ‚d d d «      ƒd {  –—†  t        dt        dd¬«      ƒ d {  –—† \  } | 4 ƒd {  –—†  | j                  sJ ‚d d d «      ƒd {  –—†  y 7 ŒÜ7 ŒÑ7 ŒO# 1 ƒd {  –—†7  sw Y   Œ_xY w7 ŒK7 Œ@7 Œ$# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   r;   r<   T)r(   r@   )
r   r   rD   r   r   rF   r   rG   rH   rO   )rU   Útls     r   Ú test_open_ssl_over_tcp_listenersr[   ™   s&  è ø€ Ü3°A´zÈÔT×T�K€XØ÷ .ñ .Ü˜(¤D×$4Ñ$4Ô5Ð5Ð5Ø×(Ñ(ˆÜ˜"œd×1Ñ1Ô2Ð2Ð2Ø�y‰y×$Ñ$Ó& qÑ)¨[Ò8Ð8Ð8à×-Ò-Ð-Ð-÷.÷ .ô 4Ø	ÜØØô	÷ �K€Xð ÷ *ñ *Ø×)Ò)Ð)Ð)÷*÷ *ð *ð Uøð.øð .ø÷ .÷ .ñ .úðøð*øð *ø÷ *÷ *ñ *üs©   ‚D+˜C5™D+¥C7¦D+©A5C;ÂD+Â)C9Â*D+ÃDÃD+ÃDÃD+ÃDÃ$D+Ã/DÃ0D+Ã7D+Ã9D+Ã;DÄDÄDÄ	D+ÄD+ÄD+ÄD(ÄDÄD(Ä$D+)r   r   r3   ÚNone)r   r   r3   r\   )r3   r\   ))Ú
__future__r   Ú	functoolsr   Útypingr   r   r   ÚattrsrJ   r   Útrio.testingÚtrio.socketr   r	   r
   Ú_highlevel_ssl_helpersr   r   r   Útest_sslr   r   rG   r   r   Ússlr   Útrio.abcr   Ú_highlevel_socketr   Ú_sslr   r    ÚdefineÚabcÚHostnameResolverr#   rX   r[   r8   r9   r   ú<module>rl      s˜   ðÝ "å ß 0Ñ 0ã Û ã Û ß 9Ñ 9÷ñ ÷ -áß0Ýåå2Ý"ó	ð €‡��EÔô"˜4Ÿ8™8×4Ñ4ó "ó ð"ð@G*ØðG*à	óG*ôT*r9   