ó
    ‚¤jo
  ã                  ó¼   • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKrSSK	J
r
  SSKJr  SSKJrJr  Sr\R"                  " S	5      r            SS
 jrSS jrg)z^
Defines helper methods useful for setting up ports, launching servers, and
creating tunnels.
é    )ÚannotationsN)ÚPath)ÚShareCertificateWriteError)ÚApp)ÚCERTIFICATE_PATHÚTunnelz(https://api.gradio.app/v3/tunnel-requestÚGRADIO_SHARE_SERVER_ADDRESSc                óx  • Uc  [         OUnUc�   [        R                  " [        SS9nUR	                  5       S   nUS   [        US   5      p‡US   n	 [        [        5      R                  R                  SSS	9  [        [        S
5       nUR                  U	5        S S S 5        [        nOUR                  S5      u  px[        U5      n[!        UUU UUU5      nUR#                  5       nU$ ! [         a  n
[        S5      U
eS n
A
ff = f! , (       d  f       Ns= f! [         a  n
[        U
 S35      U
eS n
A
ff = f)Né   )Útimeoutr   ÚhostÚportÚroot_caz0Could not get share link from Gradio API Server.T)ÚparentsÚexist_okÚwzB. This can happen when the current working directory is read-only.Ú:)r	   ÚhttpxÚgetÚGRADIO_API_SERVERÚjsonÚintÚ	ExceptionÚRuntimeErrorr   r   ÚparentÚmkdirÚopenÚwriter   Úsplitr   Ústart_tunnel)Ú
local_hostÚ
local_portÚshare_tokenÚshare_server_addressÚshare_server_tls_certificateÚresponseÚpayloadÚremote_hostÚremote_portÚcertificateÚeÚfÚtunnelÚaddresss                 ÚŸC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\gradio/networking.pyÚsetup_tunnelr0      sU  € ð  Ñ'õ 	$à!ð ð
 Ñ#ð	Ü—y’yÔ!2¸BÑ?ˆHØ—m‘m“o aÑ(ˆGØ'.¨v¡¼¸GÀF¹OÓ8L˜Ø! )Ñ,ˆKð
	ÜÔ!Ó"×)Ñ)×/Ñ/¸ÀtÐ/ÑLÜÔ&¨Ô,°Ø—‘˜Ô$÷ -ô (8Ñ$ð $8×#=Ñ#=¸cÓ#BÑ ˆÜ˜+Ó&ˆÜØØØØØØ$ó€Fð ×!Ñ!Ó#€GØ€Nøô5 ó 	ÜØBóàðûð	ú÷ -Õ,ûäó 	Ü,Ø�#ÐWÐXóàðûð	úsN   �AC, Á7D ÂD
ÂD Ã,
DÃ6DÄDÄ

DÄD ÄD Ä
D9Ä%D4Ä4D9c                óŽ  •  [        S5       Hu  n[        R                  " 5          [        R                  " S5        [        R
                  " U SSS9nS S S 5        WR                  S;   a    g[        R                  " S5        Mw     g! , (       d  f       N;= f! [        [        R                  [        R                  4 a     gf = f)	Né   Úignoreé   F)r   Úverify)éÈ   i‘  i-  i.  i/  i3  i4  Tg      à?)ÚrangeÚwarningsÚcatch_warningsÚfilterwarningsr   ÚheadÚstatus_codeÚtimeÚsleepÚConnectionErrorÚConnectErrorÚTimeoutException)ÚurlÚ_Úrs      r/   Úurl_okrE   F   s˜   € ðÜ�q–ˆAÜ×(Ò(Õ*Ü×'Ò'¨Ô1Ü—J’J˜s¨A°eÑ<�÷ +ð —‘Ð!DÓDáÜ�JŠJ�uÖñ ð ÷ +Õ*ûô œU×/Ñ/´×1GÑ1GÐHó Ùðús.   ‚#B ¥-BÁB Á,B Â
B	ÂB Â)CÃC)r!   Ústrr"   r   r#   rF   r$   ú
str | Noner%   rG   ÚreturnrF   )rB   rF   rH   Úbool)Ú__doc__Ú
__future__r   Úosr=   r8   Úpathlibr   r   Úgradio.exceptionsr   Úgradio.routesr   Úgradio.tunnelingr   r   r   Úgetenvr	   r0   rE   © ó    r/   Ú<module>rT      s€   ðñõ
 #ã 	Û Û Ý ã å 8Ý ß 5à>Ð Ø ŸišiÐ(EÓFÐ ð,Øð,àð,ð ð,ð %ð	,ð
 #-ð,ð 	ô,õ^rS   