+
    +O|j  ã                   ó®   € ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t^ RI
t]P                  P                  R4      t ! R R4      tR tR tR tR# )	é    N)Úurlparsez_dns.resolver.arpac                   óB   a € ] tR t^t o R tR tR tR tRR ltRt	V t
R# )	Ú	_SVCBInfoc                ó6   € Wn         W n        W0n        W@n        R # ©N)Úbootstrap_addressÚportÚhostnameÚnameservers)Úselfr   r	   r
   r   s   &&&&&ÚAC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\dns/_ddr.pyÚ__init__Ú_SVCBInfo.__init__   s   € Ø!2ÔØŒ	Ø ŒØ&Öó    c                ób   € VR,           F!  w  r#VR8X  g   K  W0P                   8X  g   K    R# 	  R# )zIVerify that the _SVCBInfo's address is in the cert's subjectAltName (SAN)ÚsubjectAltNamez
IP AddressTF)r   )r   ÚcertÚnameÚvalues   &&  r   Úddr_check_certificateÚ_SVCBInfo.ddr_check_certificate!   s2   € àÐ 0×1Ð1‰KˆDØ�|Ö#¨×1GÑ1GÖ(GÚñ 2ñ r   c                ó�   € \         P                  P                  pVP                  4       pVP                  P
                  Vn        V# r   )ÚdnsÚqueryÚsslÚcreate_default_contextÚ
TLSVersionÚTLSv1_2Úminimum_version)r   r   Úctxs   &  r   Úmake_tls_contextÚ_SVCBInfo.make_tls_context(   s4   € Ü�i‰i�m‰mˆØ×(Ñ(Ó*ˆØ!Ÿn™n×4Ñ4ˆÔØˆ
r   c           	     óZ  € V P                  4       p\        P                  ! 4       V,           p\        P                  ! V P                  V P
                  3V4      ;_uu_ 4       pVP                  W@P                  R 7      ;_uu_ 4       pVP                  \        P                  P                  V4      4       VP                  4        VP                  4       pV P                  V4      uuRRR4       uuRRR4       #   + '       g   i     M; i RRR4       R#   + '       g   i     R# ; i))Úserver_hostnameN)r!   ÚtimeÚsocketÚcreate_connectionr   r	   Úwrap_socketr
   Ú
settimeoutr   r   Ú
_remainingÚdo_handshakeÚgetpeercertr   )r   Úlifetimer    Ú
expirationÚsÚtsr   s   &&     r   Úddr_tls_check_syncÚ_SVCBInfo.ddr_tls_check_sync.   sÕ   € Ø×#Ñ#Ó%ˆÜ—Y’Y“[ 8Õ+ˆ
Ü×%Ò%Ø×#Ñ# T§Y¡YÐ/°÷
ô 
àØ—‘ ·M±M�×BÔBÀbØ—‘œcŸi™i×2Ñ2°:Ó>Ô?Ø—‘Ô!Ø—~‘~Ó'�Ø×1Ñ1°$Ó7÷	 CÑB÷
ò 
÷ C×BúÐB÷
÷ 
÷ 
ò 
ús%   Á"%DÂAC;	Ã&
DÃ;DÄDÄD*	Nc           
   ƒ  ó®  "  € Vf   \         P                  P                  4       pV P                  4       p\        P                  ! 4       V,           pVP                  \         P                  P                  V P                  4      \        P                  ^ R V P                  V P                  3VVV P                  4      G R j  x€L
 ;_uu_4       GR j  x€L
 pVP                  \         P                  P                  V4      4      G R j  x€L
 pV P!                  V4      uuR R R 4      GR j  x€L
  #  Ln L_ L+ L  + GR j  x€L 
 '       g   i     R # ; i5ir   )r   ÚasyncbackendÚget_default_backendr!   r%   Úmake_socketÚinetÚaf_for_addressr   r&   ÚSOCK_STREAMr	   r
   r,   r   r*   r   )r   r-   Úbackendr    r.   r0   r   s   &&&    r   Úddr_tls_check_asyncÚ_SVCBInfo.ddr_tls_check_async:   s   é € ØŠ?Ü×&Ñ&×:Ñ:Ó<ˆGØ×#Ñ#Ó%ˆÜ—Y’Y“[ 8Õ+ˆ
Ø ×,Ñ,Ü�H‰H×#Ñ# D×$:Ñ$:Ó;Ü×ÑØØØ×#Ñ# T§Y¡YÐ/ØØØ�M‰Mó	
÷ 	
÷ 	
÷ 	
ð 	
ð ØŸ™¬¯	©	×(<Ñ(<¸ZÓ(HÓI×IˆDØ×-Ñ-¨dÓ3÷	
÷ 	
ö 	
ñ J÷	
÷ 	
÷ 	
ó 	
üsr   ‚B?EÃD0ÃEÃD2ÃEÃ2D8ÄD4Ä	D8ÄEÄ*D6Ä+EÄ2EÄ4D8Ä6EÄ8E	Ä>EÄ?
E	Å
E	Å	E)r   r
   r   r	   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r!   r1   r;   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s#   ø‡ € ò'òòò
8÷4ò 4r   r   c           	      óÒ  € V P                   p\        P                  P                  V4      '       g   . # . pV P                  P                  4        EF�  p. pVP                  P                  \        P                  P                  P                  P                  4      pVf   KS  \        VP                  4      pVP                  P                  RR7      pR pVP                  P                  \        P                  P                  P                  P                   4      pVe   VP"                  pRV9   d÷   VP                  P                  \        P                  P                  P                  P$                  4      pVe"   VP&                  P)                  R4      '       g   EKS  VP&                  R R P+                  4       p	V	P-                  R4      '       g
   RV	,           p	Vf   RpRV RV V	 2p
 \/        V
4       VP1                  \        P                   P3                  W¡4      4       R	V9   d6   Vf   R
pVP1                  \        P                   P7                  WV4      4       RV9   d7   Vf   R
pVP1                  \        P                   P9                  WRV4      4       \;        V4      ^ 8”  g   EKf  VP1                  \=        WWt4      4       EK„  	  V#   \4         d     L»i ; i)NT)Úomit_final_dots   h2s   {?dns}Ú/i»  zhttps://Ú:s   dotiU  s   doqiúÿÿÿ)Ú
nameserverr   r7   Ú
is_addressÚrrsetÚprocessing_orderÚparamsÚgetÚrdtypesÚsvcbbaseÚParamKeyÚALPNÚsetÚidsÚtargetÚto_textÚPORTr	   ÚDOHPATHr   ÚendswithÚdecodeÚ
startswithr   ÚappendÚDoHNameserverÚ	ExceptionÚDoTNameserverÚDoQNameserverÚlenr   )Úanswerr   ÚinfosÚrrr   ÚparamÚalpnsÚhostr	   ÚpathÚurls   &          r   Ú_extract_nameservers_from_svcbri   M   sO  € Ø×)Ñ)ÐÜ�8‰8×ÑÐ0×1Ò1Øˆ	Ø€EØ�l‰l×+Ñ+×-ˆØˆØ—	‘	—‘œcŸk™k×2Ñ2×;Ñ;×@Ñ@ÓAˆØŠ=ÙÜ�E—I‘I“ˆØ�y‰y× Ñ °Ð Ó5ˆØˆØ—	‘	—‘œcŸk™k×2Ñ2×;Ñ;×@Ñ@ÓAˆØÒØ—:‘:ˆDð �EŒ>Ø—I‘I—M‘M¤#§+¡+×"6Ñ"6×"?Ñ"?×"GÑ"GÓHˆEØŠ} E§K¡K×$8Ñ$8¸×$CÒ$CÚØ—;‘;˜s Ð#×*Ñ*Ó,ˆDØ—?‘? 3×'Ò'Ø˜T•z�ØŠ|Ø�Ø˜T˜F ! D 6¨$¨Ð0ˆCðÜ˜”Ø×"Ñ"¤3§>¡>×#?Ñ#?ÀÓ#WÔXð �UŒ?ØŠ|Ø�Ø×ÑÜ—‘×,Ñ,Ð->ÀdÓKôð �UŒ?ØŠ|Ø�Ø×ÑÜ—‘×,Ñ,Ð->ÀdÈDÓQôô ˆ{Ó˜a×Ø�L‰LœÐ#4¸DÓN×OñW .ðX €Løô# ô áðús   Ç19KËK&Ë%K&c                óÀ   € . p\        V 4      pV F8  p VP                  V4      '       d   VP                  VP                  4       K8  K:  	  V#   \         d     KL  i ; i)úRReturn a list of TLS-validated resolver nameservers extracted from an SVCB
answer.)ri   r1   Úextendr   r]   ©ra   r-   r   rb   Úinfos   &&   r   Ú_get_nameservers_syncro   �   sh   € ð €KÜ*¨6Ó2€EÛˆð	Ø×&Ñ& x×0Ò0Ø×"Ñ" 4×#3Ñ#3Ö4ñ 1ñ ð Ðøô ô 	Úð	ús   ”2AÁAÁAc              ƒ  óÜ   "  € . p\        V 4      pV F@  p VP                  V4      G Rj  x€L
 '       d   VP                  VP                  4       K@  KB  	  V#  L-  \         d     KV  i ; i5i)rk   N)ri   r;   rl   r   r]   rm   s   &&   r   Ú_get_nameservers_asyncrq   �   sp   é € ð €KÜ*¨6Ó2€EÛˆð	Ø×-Ñ-¨hÓ7×7Ö7Ø×"Ñ" 4×#3Ñ#3Ö4ñ 8ñ ð Ðñ	 8øäô 	Úð	üs=   ‚A,–AªA«	AµAÁA,ÁAÁA)Á%A,Á(A)Á)A,)r&   r%   Úurllib.parser   Údns.asyncbackendr   Údns.inetÚdns.nameÚdns.nameserverÚ	dns.queryÚdns.rdtypes.svcbbaser   Ú	from_textÚ_local_resolver_namer   ri   ro   rq   © r   r   Ú<module>r|      sU   ðó
 Û Ý !ã Û Û Û Û Û ð —x‘x×)Ñ)Ð*>Ó?Ð ÷04ñ 04òf1òhôr   