+
    ~jD3  c                    a  0 t $ ^ RIHt ^ RIt^ RIHu Ht ^ RI	t	^ RI
t
^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RI
Ht ^ R	IHtHtHt ^R
IHt ^RIH t H!t!H"t" ^RI#H$t$H%t%H&t& ^RI'H(t( ])],          ],          t*R]+R&   ],])]-3,          t.R]+R&   ].]),          t/R]+R&   ],]0].3,          t1R]+R&   ],]0])3,          t2R]+R&   ]! R4      t3]
Ph                  3RRRR/R R lllt5 ! R R]!4      t6 ! R R] 4      t7 ! R R]$]74      t8 ! R  R!]84      t9 ! R" R#]%]8,          ]74      t: ! R$ R%]&]1,          ]74      t; ! R& R']&]0,          ]74      t< ! R( R)]&]2,          ]74      t= ! R* R+]&]0,          ]74      t>R# ),    )annotationsN)abstractmethod)Callable
CollectionMapping)AsyncExitStack)IOBase)IPv4AddressIPv6Address)AddressFamily)Any	TypeAliasTypeVar)get_async_backend)TypedAttributeProviderTypedAttributeSettyped_attribute)
ByteStreamListenerUnreliableObjectStream)	TaskGroupr   IPAddressTypeIPSockAddrTypeSockAddrTypeUDPPacketTypeUNIXDatagramPacketTypeT_Retvalrequire_connectedFrequire_boundc               0    V ^8  d   QhRRRRRRRRR	RR
R/# )   
sock_or_fdsocket.socket | int	sock_typezsocket.SocketKindaddr_familyzsocket.AddressFamilyr   boolr   returnsocket.socket )formats   "g/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/anyio/abc/_sockets.py__annotate__r+      sL     B B#B B &B
 B B B    c                  \        V \        4      '       d    \        P                  ! V R 7      pME\        V \        P                  4      '       d   T pM"\        R\        V 4      P                   R24      h V'       d    VP                  4        V'       dm    VP                  \        P                  \        P                  39   d   VP                  4       ^,          pMVP                  4       p V'       g   \        R4      hV\        P                  8w  dA   VP                  V8w  d0   \        RVP                    RVP                  P                    24      hVP                  V8w  d0   \        R	VP                    RVP                  P                    24      h TP'                  R
4       T#   \         dZ   pTP                  \        P
                  8X  d   \        R4      ThT'       d   \        R4      ThT'       d   \        R4      Thh Rp?ii ; i  \         d   p\        R4      ThRp?ii ; i  \         d    Rp ELRi ; i  \"         d)    \        T \        4      '       d   TP%                  4        h i ; i))filenoz.the file descriptor does not refer to a socketzthe socket must be connectedz+the socket must be bound to a local addressNzexpected an int or socket, got z insteadz"address family mismatch: expected z, got zsocket type mismatch: expected F)
isinstanceintsocketOSErrorerrnoENOTSOCK
ValueError	TypeErrortype__qualname__getpeernamefamilyAF_INETAF_INET6getsockname	AF_UNSPECnameBaseExceptiondetachsetblocking)r!   r#   r$   r   r   sockexc
bound_addrs   &&&$$   r*   _validate_socketrF      s+    *c""	==
3D 
J	.	.-d:.>.K.K-LHU
 	
"J  " ";;6>>6??"CC!%!1!1!3A!6J!%!1!1!3J  !NOO&***t{{k/I4[5E5E4Ff;;##$& 
 99	!1)..1A		GWX  " 	UKo  
	yyENN* D # !?@cI !NOUXX
	,  J !?@cIJ  "!
"   j#&&KKMs   F, 6I ?H I AH2 I H2 /I 8B I ,H72H*H>HHH/H**H//I 2I?I II 3I9c                      ] tR t^ct$ Rt]! 4       tR]R&   ]! 4       tR]R&   ]! 4       t	R]R&   ]! 4       t
R]R	&   ]! 4       tR]R
&   ]! 4       tR]R&   RtR# )SocketAttributea  
.. attribute:: family
    :type: socket.AddressFamily

    the address family of the underlying socket

.. attribute:: local_address
    :type: tuple[str, int] | str

    the local address the underlying socket is connected to

.. attribute:: local_port
    :type: int

    for IP based sockets, the local port the underlying socket is bound to

.. attribute:: raw_socket
    :type: socket.socket

    the underlying stdlib socket object

.. attribute:: remote_address
    :type: tuple[str, int] | str

    the remote address the underlying socket is connected to

.. attribute:: remote_port
    :type: int

    for IP based sockets, the remote port the underlying socket is connected to
r   r:   r   local_addressr0   
local_portr'   
raw_socketremote_addressremote_portr(   N)__name__
__module__r8   __firstlineno____doc__r   r:   __annotations__rI   rJ   rK   rL   rM   __static_attributes__r(   r,   r*   rH   rH   c   sX    @ ,-FM-"1"3M<3%'J' / 1J1#2#4NL4&(K(r,   rH   c                  L    ] tR t^t]R R l4       t]]R R l4       4       tRtR# )_SocketProviderc                   V ^8  d   QhRR/# )r    r&   zMapping[Any, Callable[[], Any]]r(   )r)   s   "r*   r+   _SocketProvider.__annotate__   s      "A r,   c                	  a aaa ^RI Ho \        P                  V 3R l\        P                  VV 3R l\        P
                  V 3R l/p S! S P                  P                  4       4      oSe   V3R lV\        P                  &   S P                  P                  \        P                  \        P                  39   d<   V 3R lV\        P                  &   Se!   S^,          oV3R lV\        P                  &   V#   \         d    Ro Li ; i)	r    )convert_ipv6_sockaddrc                 0   < S P                   P                  # N)_raw_socketr:   selfs   r*   <lambda>2_SocketProvider.extra_attributes.<locals>.<lambda>   s    D,<,<,C,Cr,   c                 D   < S ! SP                   P                  4       4      # r[   r\   r=   )convertr^   s   r*   r_   r`      s    7  ,,.4r,   c                    < S P                   # r[   )r\   r]   s   r*   r_   r`      s    0@0@r,   Nc                    < S # r[   r(   )peernames   r*   r_   r`      s    r,   c                 F   < S P                   P                  4       ^,          # )   rb   r]   s   r*   r_   r`      s      ,,.q1r,   c                    < S # r[   r(   )rM   s   r*   r_   r`      s    +r,   )_core._socketsrY   rH   r:   rI   rK   r\   r9   r2   rL   r   r;   r<   rJ   rM   )r^   
attributesrc   rf   rM   s   f @@@r*   extra_attributes _SocketProvider.extra_attributes   s    E ""$C)) , &&(@4

	/6t7G7G7S7S7U/VH
 9IJ556 ""}'<'<m>T>T&UU6J112 #&qk:M
?667!  	H	s    C< <DDc                   V ^8  d   QhRR/# )r    r&   r'   r(   )r)   s   "r*   r+   rW      s      ] r,   c                	    R # r[   r(   r]   s   &r*   r\   _SocketProvider._raw_socket   s     	r,   r(   N)	rN   rO   r8   rP   propertyrl   r   r\   rS   r(   r,   r*   rU   rU      s0     <   r,   rU   c                  0    ] tR t^tRt]R R l4       tRtR# )SocketStreamzi
Transports bytes over a socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   rs   r(   )r)   s   "r*   r+   SocketStream.__annotate__   s     B B+> B< Br,   c                   "   \        V\        P                  RR7      p\        4       P	                  V4      G Rj  xL
 #  L5i)a  
Wrap an existing socket object or file descriptor as a socket stream.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a socket stream

Tr   N)rF   r1   SOCK_STREAMr   wrap_stream_socketclsr!   rC   s   && r*   from_socketSocketStream.from_socket   s6       
F,>,>RVW&(;;DAAAA   9AA Ar(   NrN   rO   r8   rP   rQ   classmethodr|   rS   r(   r,   r*   rs   rs      s     B Br,   rs   c                  X    ] tR t^t]R R l4       t]R R l4       t]R R l4       tRt	R# )	UNIXSocketStreamc                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   UNIXSocketStream.__annotate__   s      G G+> GCS Gr,   c                   "   \        V\        P                  \        P                  RR7      p\	        4       P                  V4      G Rj  xL
 #  L5i)a"  
Wrap an existing socket object or file descriptor as a UNIX socket stream.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a UNIX socket stream

Trw   N)rF   r1   rx   AF_UNIXr   wrap_unix_stream_socketrz   s   && r*   r|   UNIXSocketStream.from_socket   s@       **FNNd
 '(@@FFFF   AA
AAc               $    V ^8  d   QhRRRRRR/# )r    messagebytesfdszCollection[int | IOBase]r&   Noner(   )r)   s   "r*   r+   r      s"      e 2J t r,   c                   "   R# 5i)z
Send file descriptors along with a message to the peer.

:param message: a non-empty bytestring
:param fds: a collection of files (either numeric file descriptors or open file
    or socket objects)
Nr(   )r^   r   r   s   &&&r*   send_fdsUNIXSocketStream.send_fds           c               $    V ^8  d   QhRRRRRR/# )r    msglenr0   maxfdsr&   ztuple[bytes, list[int]]r(   )r)   s   "r*   r+   r      s"       S =T r,   c                   "   R# 5i)z
Receive file descriptors along with a message from the peer.

:param msglen: length of the message to expect from the peer
:param maxfds: maximum number of file descriptors to expect from the peer
:return: a tuple of (message, file descriptors)
Nr(   )r^   r   r   s   &&&r*   receive_fdsUNIXSocketStream.receive_fds   r   r   r(   N)
rN   rO   r8   rP   r   r|   r   r   r   rS   r(   r,   r*   r   r      s>    G G     r,   r   c                  V    ] tR t^tRt]R R l4       t]R R l4       tR
R R llt	R	t
R# )SocketListenerzq
Listens to incoming socket connections.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   SocketListener.__annotate__   s"     D D'D 
Dr,   c                   "   \        V\        P                  RR7      p\        4       P	                  V4      G Rj  xL
 #  L5i)z
Wrap an existing socket object or file descriptor as a socket listener.

The newly created listener takes ownership of the socket being passed in.

:param sock_or_fd: a socket object or file descriptor
:return: a socket listener

Tr   N)rF   r1   rx   r   wrap_listener_socketrz   s   && r*   r|   SocketListener.from_socket   s5       
F,>,>dS&(==dCCCCr~   c                   V ^8  d   QhRR/# )r    r&   rs   r(   )r)   s   "r*   r+   r   	  s     - -l -r,   c                   "   R# 5i)zAccept an incoming connection.Nr(   r]   s   &r*   acceptSocketListener.accept  r   r   Nc               $    V ^8  d   QhRRRRRR/# )r    handlerzCallable[[SocketStream], Any]
task_groupzTaskGroup | Noner&   r   r(   )r)   s   "r*   r+   r     s(     7 7.7 %7 
	7r,   c                	.  "   ^RI Hp \        4       ;_uu_4       GRj  xL
 pVf   VP                  V! 4       4      G Rj  xL
 p V P	                  4       G Rj  xL
 pVP                  W4       K,   LR L2 L  + GRj  xL 
 '       g   i     R# ; i5i)r    )create_task_groupN) r   r   enter_async_contextr   
start_soon)r^   r   r   r   stackstreams   &&&   r*   serveSocketListener.serve  so     
 	)!###u!#(#<#<=N=P#QQ
#{{},%%g6 $Q - $###s\   BA2BA8A4A8A6A82B4A86A88B	>B?
B	
B		Br(   r[   )rN   rO   r8   rP   rQ   r   r|   r   r   r   rS   r(   r,   r*   r   r      s;     D D  - -7 7r,   r   c                  <    ] tR tRtRt]R R l4       tR R ltRtR# )		UDPSocketi  zo
Represents an unconnected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   UDPSocket.__annotate__$  s     ? ?+> ?9 ?r,   c                   "   \        V\        P                  RR7      p\        4       P	                  V4      G Rj  xL
 #  L5i)a  
Wrap an existing socket object or file descriptor as a UDP socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must be bound to a local address.

:param sock_or_fd: a socket object or file descriptor
:return: a UDP socket

Tr   N)rF   r1   
SOCK_DGRAMr   wrap_udp_socketrz   s   && r*   r|   UDPSocket.from_socket#  s5       
F,=,=TR&(88>>>>r~   c               (    V ^8  d   QhRRRRRRRR/# )	r    datar   hoststrportr0   r&   r   r(   )r)   s   "r*   r+   r   2  s(     5 5 5c 5 5 5r,   c                F   "   V P                  WV334      G Rj  xL
 #  L5i)zN
Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))).

Nsend)r^   r   r   r   s   &&&&r*   sendtoUDPSocket.sendto2  s#     
 YYTl34444s   !!r(   N	rN   rO   r8   rP   rQ   r   r|   r   rS   r(   r,   r*   r   r     s%     ? ?5 5r,   r   c                  0    ] tR tRtRt]R R l4       tRtR# )ConnectedUDPSocketi:  zm
Represents an connected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   ConnectedUDPSocket.__annotate__B  s      I I+> ICU Ir,   c                   "   \        V\        P                  RR7      p\        4       P	                  V4      G Rj  xL
 #  L5i)a&  
Wrap an existing socket object or file descriptor as a connected UDP socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a connected UDP socket

Trw   N)rF   r1   r   r   wrap_connected_udp_socketrz   s   && r*   r|   ConnectedUDPSocket.from_socketA  s<       "

 '(BB4HHHHr~   r(   Nr   r(   r,   r*   r   r   :  s     I Ir,   r   c                  <    ] tR tRtRt]R R l4       tR R ltRtR# )	UNIXDatagramSocketiU  zy
Represents an unconnected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   UNIXDatagramSocket.__annotate___  s"     I I'I 
Ir,   c                   "   \        V\        P                  \        P                  4      p\	        4       P                  V4      G Rj  xL
 #  L5i)z
Wrap an existing socket object or file descriptor as a UNIX datagram
socket.

The newly created socket wrapper takes ownership of the socket being passed in.

:param sock_or_fd: a socket object or file descriptor
:return: a UNIX datagram socket

N)rF   r1   r   r   r   wrap_unix_datagram_socketrz   s   && r*   r|   UNIXDatagramSocket.from_socket^  s9       
F,=,=v~~N&(BB4HHHHs   AAA	Ac               $    V ^8  d   QhRRRRRR/# )r    r   r   pathr   r&   r   r(   )r)   s   "r*   r+   r   p  s!     - - -c -d -r,   c                B   "   V P                  W34      G Rj  xL
 #  L5i)zCAlias for :meth:`~.UnreliableObjectSendStream.send` ((data, path)).Nr   )r^   r   r   s   &&&r*   r   UNIXDatagramSocket.sendtop  s     YY|,,,,s   r(   Nr   r(   r,   r*   r   r   U  s'     I I"- -r,   r   c                  0    ] tR tRtRt]R R l4       tRtR# )ConnectedUNIXDatagramSocketiu  zv
Represents a connected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                    V ^8  d   QhRRRR/# )r    r!   r"   r&   r   r(   )r)   s   "r*   r+   (ConnectedUNIXDatagramSocket.__annotate__}  s"     S S'S 
%Sr,   c                   "   \        V\        P                  \        P                  RR7      p\	        4       P                  V4      G Rj  xL
 #  L5i)a:  
Wrap an existing socket object or file descriptor as a connected UNIX datagram
socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a connected UNIX datagram socket

Trw   N)rF   r1   r   r   r   #wrap_connected_unix_datagram_socketrz   s   && r*   r|   'ConnectedUNIXDatagramSocket.from_socket|  s@        ))6>>T
 '(LLTRRRRr   r(   Nr   r(   r,   r*   r   r   u  s     S Sr,   r   )?__conditional_annotations__
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewrite
@pytest_arr3   r1   abcr   collections.abcr   r   r   
contextlibr   ior   	ipaddressr	   r
   r   typingr   r   r   _core._eventloopr   _core._typedattrr   r   r   _streamsr   r   r   _tasksr   r   r   rR   tupler0   r   r   r   r   r   r   r>   rF   rH   rU   rs   r   r   r   r   r   r   )r   s   @r*   <module>r      s   " "      9 9 %  .   * * 0 
 C B ,{:y :!#s(O	 +(3.i . !67y 7$)%*$5 	 5: )/(8(8B
 $B  B BJ&)' &)R#, #LB: B.$| $N)7Xl+_ )7X5&}5 5<I/6 I6-12O-@S"8"? Sr,   