+
    ‚V@i¬  ã                   ó¨   € ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIt]P                  '       d   ^ RIHtHtHtHtHt  ! R R]	4      tR# )	é    N)ÚFuture)Úgen)ÚIOLoop)ÚResolverÚis_valid_ip)Ú	GeneratorÚAnyÚListÚTupleÚDictc                   óŽ   a € ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR lt]P                  RV 3R lR	 ll4       t
R
tV tR# )ÚCaresResolveraÞ  Name resolver based on the c-ares library.

This is a non-blocking and non-threaded resolver.  It may not produce the
same results as the system resolver, but can be used for non-blocking
resolution when threads cannot be used.

``pycares`` will not return a mix of ``AF_INET`` and ``AF_INET6`` when
``family`` is ``AF_UNSPEC``, so it is only recommended for use in
``AF_INET`` (i.e. IPv4).  This is the default for
``tornado.simple_httpclient``, but other libraries may default to
``AF_UNSPEC``.

.. versionchanged:: 5.0
   The ``io_loop`` argument (deprecated since version 4.1) has been removed.

.. deprecated:: 6.2
   This class is deprecated and will be removed in Tornado 7.0. Use the default
   thread-based resolver instead.
c                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnN© )ÚformatÚ__classdict__s   "€Ú@/usr/lib/python3/dist-packages/tornado/platform/caresresolver.pyÚ__annotate__ÚCaresResolver.__annotate__$   s   ø€ ÷ ñ ˜Dñ ó    c                ó”   € \         P                  ! 4       V n        \        P                  ! V P
                  R 7      V n        / V n        R# ))Úsock_state_cbN)r   ÚcurrentÚio_loopÚpycaresÚChannelÚ_sock_state_cbÚchannelÚfds)Úselfs   &r   Ú
initializeÚCaresResolver.initialize$   s-   € Ü—~’~Ó'ˆŒÜ—’°T×5HÑ5HÔIˆŒØˆŽr   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   ÚfdÚreadableÚwritabler   N)ÚintÚbool)r   r   s   "€r   r   r   )   s)   ø€ ÷ 
!ñ 
!¡ð 
!±ð 
!Áð 
!Èñ 
!r   c                óº  € V'       d   \         P                  M^ V'       d   \         P                  M^ ,          pV'       g+   V P                  P	                  V4       V P
                  V R# WP
                  9   d,   V P                  P                  W4       W@P
                  V&   R# V P                  P                  WP                  V4       W@P
                  V&   R# )r   N)	r   ÚREADÚWRITEr   Úremove_handlerr!   Úupdate_handlerÚadd_handlerÚ_handle_events)r"   r&   r'   r(   Ústates   &&&& r   r   ÚCaresResolver._sock_state_cb)   sˆ   € ß (”—’¨aÇH´F·L²LÐRSÕTˆßØ�L‰L×'Ñ'¨Ô+Ø—‘˜’Ø—8‘8Œ^Ø�L‰L×'Ñ'¨Ô2Ø �H‰H�R‹Là�L‰L×$Ñ$ R×)<Ñ)<¸eÔDØ �H‰H�R‹Lr   c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r   r&   Úeventsr   N)r)   )r   r   s   "€r   r   r   5   s"   ø€ ÷ 3ñ 3¡ð 3©cð 3°dñ 3r   c                óø   € \         P                  p\         P                  pV\        P                  ,          '       d   TpV\        P                  ,          '       d   TpV P
                  P                  W44       R # ©N)r   ÚARES_SOCKET_BADr   r,   r-   r    Ú
process_fd)r"   r&   r5   Úread_fdÚwrite_fds   &&&  r   r1   ÚCaresResolver._handle_events5   sR   € Ü×)Ñ)ˆÜ×*Ñ*ˆØ”F—K‘K×ÔØˆGØ”F—L‘L× Ô ØˆHØ�‰×Ñ Ö2r   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   ÚhostÚportÚfamilyr   z*Generator[Any, Any, List[Tuple[int, Any]]])Ústrr)   )r   r   s   "€r   r   r   ?   s-   ø€ ÷ ñ ÙðÙ"ðÙ,/ðà	5ñr   c              #  óv  a
"  € \        V4      '       d   V.pMx\        4       o
V P                  P                  WV
3R  l4       S
x €w  rVV'       d5   \	        RV: R\
        P                  P                  V4      : RV: 24      hVP                  p. pV Fž  pRV9   d   \        P                  p	M(RV9   d   \        P                  p	M\        P                  p	V\        P                  8w  d   W98w  d   \	        RW93,          4      hVP                  \        P                  ! \         V	4      W‚334       K   	  V# 5i)c                 ó(   <€ SP                  W34      # r7   )Ú
set_result)ÚresultÚerrorÚfuts   &&€r   Ú<lambda>Ú'CaresResolver.resolve.<locals>.<lambda>H   s   ø€ °C·N±NÀFÀ?Ô4Sr   zC-Ares returned error z: z while resolving Ú.Ú:z%Requested socket family %d but got %d)r   r   r    ÚgethostbynameÚOSErrorr   ÚerrnoÚstrerrorÚ	addressesÚsocketÚAF_INETÚAF_INET6Ú	AF_UNSPECÚappendÚtypingÚcastr)   )r"   r>   r?   r@   rP   rE   rF   ÚaddrinfoÚaddressÚaddress_familyrG   s   &&&&      @r   ÚresolveÚCaresResolver.resolve>   s  øé € ô �t×ÒØ˜‰Iô “(ˆCØ�L‰L×&Ñ&ØÔSôð #&™I‰MˆFßÝãœgŸm™m×4Ñ4°UÖ;ºTðCóð ð ×(Ñ(ˆIØˆÛ ˆGØ�gŒ~Ü!'§¡‘Ø˜”Ü!'§¡‘ä!'×!1Ñ!1�Øœ×)Ñ)Ô)¨fÔ.FÜØ;¸vÐ>VÕVóð ð �O‰OœVŸ[š[¬¨nÓ=À¸ÐOÖPñ !ð ˆùs   ƒD6D9)r    r!   r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r#   r   r1   r   Ú	coroutiner[   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      sE   ø‡ € ñ÷(ð ÷

!ð 
!÷3ð 3ð 	‡]�]÷ñ ó ör   r   )r   rQ   Útornado.concurrentr   Útornador   Útornado.ioloopr   Útornado.netutilr   r   rV   ÚTYPE_CHECKINGr   r	   r
   r   r   r   r   r   r   Ú<module>rj      s:   ðÛ Û å %Ý Ý !ß 1ã à	××Ðß8Õ8ôO�Hö Or   