+
    ~j                     Z   ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIHtHtH	t	H
t
HtHt ]P                  ! R4      t ! R R]4      tR R ltR	 R
 ltR R lt]! R4      t ! R R]	],          4      t ! R R] P,                  ],          4      t ! R R]	],          4      tRsRR ltR R ltR# )    N)deque)Callable	GeneratorGenericListTypeVarUnionlivekitc                   ,   a  ] tR t^t o R tR tRtV tR# )classpropertyc                &    \        V4      V n        R # N)classmethodf)selfr   s   &&g/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/rtc/_utils.py__init__classproperty.__init__   s    Q    c                @    V P                   P                  ! V!  ! 4       # r   )r   __get__)r   as   &*r   r   classproperty.__get__   s    vv~~q!##r   )r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      $ $r   r   c                <    V ^8  d   QhR\         P                  RR/# )   taskreturnN)asyncioTask)formats   "r   __annotate__r)   !   s      7<< D r   c                     V P                  4       '       d   \        P                  R V 4       R# V P                  4       '       d(   \        P	                  RW P                  4       R7       R# R# )ztask cancelled: %sNztask exception: %s)exc_info)	cancelledloggerinfo	exceptionerror)r$   s   &r   task_done_loggerr1   !   sN    ~~($/~~)4..:JK r   c                    V ^8  d   QhR\         \        \        \        3,          R\         \        \        \        3,          /# r#   datar%   )r	   bytes	bytearray
memoryview)r(   s   "r   r)   r)   +   s4      
y*,
-
5)Z'(r   c                p   \        V \        4      '       dm   V P                  '       g   \        R4      hV P                  \        V P                  4      8w  d)   V P                  '       g   \        V 4      # \        V 4      #  V # \        V \        \        34      '       g   \        R\        V 4       24      hV # )zValidate and normalize a buffer for FFI use.

Sliced memoryviews are materialized because get_address cannot
reliably resolve their offset for all buffer types.
zmemoryview must be contiguous.expected bytes, bytearray, or memoryview, got )
isinstancer7   
contiguous
ValueErrornbyteslenobjreadonlyr6   r5   	TypeErrortype)r4   s   &r   _ensure_compatible_bufferrC   +   s     $
##<==;;#dhh-'*.---9T?HU4[H ( K ui011HdUVVKr   c                \    V ^8  d   QhR\         \        \        \        3,          R\        /# r3   )r	   r5   r6   r7   int)r(   s   "r   r)   r)   =   s*     S SeE9j89 Sc Sr   c                 R   \        V \        4      '       dR   V P                  '       g4   \        P                  ! \        P
                  P                  V 4      4      # V P                  p \        V \        4      '       d4   \        P                  ! \        P
                  P                  V 4      4      # \        V \        4      '       dL   \        P                  ! \        P                  ! V 4      \        P                  4      P                  pVf   Q hV# \        R\        V 4       24      h)Nr9   )r:   r7   r@   ctypes	addressofc_charfrom_bufferr?   r6   r5   castc_char_pc_void_pvaluerA   rB   )r4   addrs   & r   get_addressrP   =   s    $
##}}}##FMM$=$=d$CDDxx$	"" 9 9$ ?@@${{6??40&//BHH
DT$ZLQ
RRr   Tc                   Z   a  ] tR t^Nt o R	V 3R lR lltV 3R lR ltV 3R lR ltRtV tR# )
	RingQueuec                $   < V ^8  d   QhRS[ RR/# )r#   capacityr%   NrE   )r(   r!   s   "r   r)   RingQueue.__annotate__O   s     & & &T &r   c                d    Wn         \        4       V n        \        P                  ! 4       V n        R # r   )	_capacityr   _queuer&   Event_event)r   rU   s   &&r   r   RingQueue.__init__O   s    ! %mmor   c                $   < V ^8  d   QhRS[ RR/# r#   itemr%   NrQ   )r(   r!   s   "r   r)   rW   T   s       d r   c                   V P                   ^ 8  d?   \        V P                  4      V P                   8X  d   V P                  P                  4        V P                  P	                  V4       V P
                  P                  4        R# r   N)rY   r>   rZ   popleftappendr\   set)r   r`   s   &&r   putRingQueue.putT   sR    >>A#dkk"2dnn"DKK!4 r   c                    < V ^8  d   QhRS[ /# r#   r%   ra   )r(   r!   s   "r   r)   rW   Z   s     % %1 %r   c                   "   \        V P                  4      ^ 8X  d%   V P                  P                  4       G Rj  xL
  K>  V P                  P	                  4        V P                  P                  4       #  L:5irc   )r>   rZ   r\   waitclearrd   r   s   &r   getRingQueue.getZ   sT     $++!#++""$$${{""$$ %s   8A7A5;A7)rY   r\   rZ   Nr   )	r   r   r   r   r   rg   ro   r   r   r    s   @r   rS   rS   N   s#     & &
 % %r   rS   c                   X   a a ] tR t^at oRtRV3R lV 3R llltV3R lR ltRtVtV ;t	# )Queuez%asyncio.Queue with utility functions.c                $   < V ^8  d   QhRS[ RR/# )r#   maxsizer%   NrV   )r(   r!   s   "r   r)   Queue.__annotate__d   s     " " "D "r   c                &   < \         SV `  V4       R # r   )superr   )r   ru   	__class__s   &&r   r   Queue.__init__d   s    !r   c                >   < V ^8  d   QhRS[ S[.S[3,          RS[/# )r#   fncr%   )r   rQ   bool)r(   r!   s   "r   r)   rv   g   s&      (A39"5 ! r   c                   "    V P                  4       G Rj  xL
 pV! V4      '       d   V# V P                  4        K;   L&5i)zVWait for an event that matches the given function.
The previous events are discarded.
N)ro   	task_done)r   r|   events   && r   wait_forQueue.wait_forg   s5     
 ((*$E5zzNN %s   A >A A  rq   )
r   r   r   r   __doc__r   r   r   r   __classcell__)ry   r!   s   @@r   rs   rs   a   s!     /" "  r   rs   c                      a  ] tR t^ut o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
RtV tR# )BroadcastQueuez Queue with multiple subscribers.c                   < V ^8  d   QhRR/# r#   r%   Nr   )r(   r!   s   "r   r)   BroadcastQueue.__annotate__x   s     / /$ /r   c                H    \         P                  ! 4       V n        . V n        R # r   )r&   Lock_lock_subscribersrn   s   &r   r   BroadcastQueue.__init__x   s    \\^
,.r   c                    < V ^8  d   QhRS[ /# rj   rV   )r(   r!   s   "r   r)   r   |   s     & & &r   c                ,    \        V P                  4      # r   )r>   r   rn   s   &r   len_subscribersBroadcastQueue.len_subscribers|   s    4$$%%r   c                $   < V ^8  d   QhRS[ RR/# r_   ra   )r(   r!   s   "r   r)   r      s     # #q #T #r   c                N    V P                    F  pVP                  V4       K  	  R # r   )r   
put_nowait)r   r`   queues   && r   r   BroadcastQueue.put_nowait   s     &&ET" 'r   c                0   < V ^8  d   QhRS[ S[,          /# rj   rs   rQ   )r(   r!   s   "r   r)   r      s      58 r   c                h    \         \        ,          ! 4       pV P                  P                  V4       V# r   )rs   rQ   r   re   r   r   s   & r   	subscribeBroadcastQueue.subscribe   s&    a
  'r   c                4   < V ^8  d   QhRS[ S[,          RR/# )r#   r   r%   Nr   )r(   r!   s   "r   r)   r      s     ( (q (d (r   c                <    V P                   P                  V4       R # r   )r   remover   s   &&r   unsubscribeBroadcastQueue.unsubscribe   s      'r   c                   < V ^8  d   QhRR/# r   r   )r(   r!   s   "r   r)   r      s     # #D #r   c                $  "   V P                   ;_uu_4       GR j  xL
  V P                  P                  4       pV F  pVP                  4       G R j  xL
  K  	  R R R 4      GR j  xL
  R #  LQ L L
  + GR j  xL 
 '       g   i     R # ; i5ir   )r   r   copyjoin)r   subsr   s   &  r   r   BroadcastQueue.join   sV     ::::$$))+Djjl""  :: # :::s\   BA-B3A3A/
A3B&A1'B/A31B3B	9A<:
B	B		B)r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r    s   @r   r   r   u   sD     */ /& &# # 
( (# #r   r   >0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZc                D    RP                  R \        V 4       4       4      # )z
Generate a random base62 encoded string of a specified length.

:param length: The desired length of the base62 encoded string.
:return: A base62 encoded string.
 c              3   V   "   T F  p\         P                  ! \        4      x  K!  	  R # 5ir   )randomchoice_base62_characters).0_s   & r   	<genexpr>)generate_random_base62.<locals>.<genexpr>   s     Lm6==!344ms   '))r   range)lengths   &r   generate_random_base62r      s     77LeFmLLLr   c          	      X    V ^8  d   QhR\         R\        R\        \        RR3,          /# )r#   snr%   N)strrE   r   r5   )r(   s   "r   r)   r)      s-     	 	# 	# 	)E4,="> 	r   c              #     "   V P                  4       p\        V4      V8  d/   TpW#,          ^,          ^8X  d   V^,          pK  VRV x  W#R pK>  Vx  R# 5i)z.Split UTF-8 s into chunks of maximum length n.N)encoder>   )r   r   encodedks   &&  r   
split_utf8r      sS     hhjG
g,
zD T)FAbqk"+
Ms   AA)   )r&   loggingcollectionsr   rG   r   typingr   r   r   r   r   r	   	getLoggerr-   objectr   r1   rC   rP   rQ   rS   rs   r   r   r   r   r   r   r   <module>r      s         E E			9	%$F $$S CL%
 %&GMM! (#WQZ #: V M	r   