Ë
    š„jè"  ã                   óz  — d dl Z d dlZd dlZddlmZ dZdZd Z ej                  dd d d d«      Z	dZ
dZd Z G d	„ d
«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z e j.                  dd«      Z G d„ dej                  «      Zy)é    Né   )Ú
compat_ordz"Timo Schmid <coding@timoschmid.de>é   z!BBBBéÿ   é   c                   ó   — e Zd ZdZdZy)ÚSocks4Commandr   é   N)Ú__name__Ú
__module__Ú__qualname__ÚCMD_CONNECTÚCMD_BIND© ó    úC/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/socks.pyr	   r	      s   „ Ø€KØ�Hr   r	   c                   ó   — e Zd ZdZy)ÚSocks5Commandé   N)r   r   r   ÚCMD_UDP_ASSOCIATEr   r   r   r   r   #   s   „ ØÑr   r   c                   ó   — e Zd ZdZdZdZdZy)Ú
Socks5Authr   r   r
   r   N)r   r   r   Ú	AUTH_NONEÚAUTH_GSSAPIÚAUTH_USER_PASSÚAUTH_NO_ACCEPTABLEr   r   r   r   r   '   s   „ Ø€IØ€KØ€NØÑr   r   c                   ó   — e Zd ZdZdZdZy)ÚSocks5AddressTyper   r   r   N)r   r   r   Ú	ATYP_IPV4ÚATYP_DOMAINNAMEÚ	ATYP_IPV6r   r   r   r   r   .   s   „ Ø€IØ€OØ�Ir   r   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )Ú
ProxyErrorr   c                 ól   •— |�!|€| j                   j                  |«      xs d}t        ‰| �  ||«       y )Nzunknown error)ÚCODESÚgetÚsuperÚ__init__)ÚselfÚcodeÚmsgÚ	__class__s      €r   r(   zProxyError.__init__7   s3   ø€ ØÐ  Ø—*‘*—.‘. Ó&Ò9¨/ˆCÜ‰Ñ˜˜sÕ#r   )NN)r   r   r   ÚERR_SUCCESSr(   Ú__classcell__©r,   s   @r   r#   r#   4   s   ø„ Ø€K÷$ñ $r   r#   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚInvalidVersionErrorc                 ó:   •— d|d›d|d›�}t         ‰| �  d|«       y )Nz/Invalid response version from server. Expected Ú02xz got r   )r'   r(   )r)   Úexpected_versionÚgot_versionr+   r,   s       €r   r(   zInvalidVersionError.__init__>   s0   ø€ Ø@ÐAQÐRUÐ@VÐV[Ø˜cÐ"ð$ˆä‰Ñ˜˜CÕ r   )r   r   r   r(   r.   r/   s   @r   r1   r1   =   s   ø„ ÷!ð !r   r1   c                   ó   — e Zd ZdZddddœZy)ÚSocks4ErroréZ   zrequest rejected or failedzLrequest rejected because SOCKS server cannot connect to identd on the clientzPrequest rejected because the client program and identd report different user-ids)é[   é\   é]   N)r   r   r   r-   r%   r   r   r   r7   r7   D   s   „ Ø€Kð )ØZØ^ñ�Er   r7   c                   ó*   — e Zd ZdZdddddddd	d
ddœ
Zy)ÚSocks5Errorr   zgeneral SOCKS server failurez!connection not allowed by rulesetzNetwork unreachablezHost unreachablezConnection refusedzTTL expiredzCommand not supportedzAddress type not supportedz$unknown username or invalid passwordz0all offered authentication methods were rejected)
r   r
   r   r   r   é   é   é   éþ   r   N)r   r   r   ÚERR_GENERAL_FAILUREr%   r   r   r   r=   r=   N   s/   „ ØÐð -Ø1Ø#Ø Ø"ØØ%Ø*Ø4Ø@ñ�Er   r=   c                   ó   — e Zd ZdZdZdZy)Ú	ProxyTyper   r   r
   N)r   r   r   ÚSOCKS4ÚSOCKS4AÚSOCKS5r   r   r   rD   rD   _   s   „ Ø€FØ€GØ�Fr   rD   ÚProxy)ÚtypeÚhostÚportÚusernameÚpasswordÚ
remote_dnsc                   ó|   ‡ — e Zd Zˆ fd„Zdd„Zd„ Zd„ Zed„ «       Zd„ Z	dd„Z
dd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )Úsockssocketc                 ó2   •— d | _         t        ‰| �  |i |¤Ž y ©N)Ú_proxyr'   r(   )r)   ÚargsÚkwargsr,   s      €r   r(   zsockssocket.__init__j   s   ø€ ØˆŒÜ‰Ñ˜$Ð) &Ó)r   c                 ó”   — |t         j                  t         j                  t         j                  fv sJ ‚t	        ||||||«      | _        y rR   )rD   rE   rF   rG   rH   rS   )r)   Ú	proxytypeÚaddrrK   ÚrdnsrL   rM   s          r   Úsetproxyzsockssocket.setproxyn   s?   € ØœY×-Ñ-¬y×/@Ñ/@Ä)×BRÑBRÐSÑSÐSÐSä˜I t¨T°8¸XÀtÓLˆ�r   c                 óÀ   — d}t        |«      |k  rM| j                  |t        |«      z
  «      }|st        |t        |«      z
  › d�«      ‚||z  }t        |«      |k  rŒM|S )Nr   z bytes missing)ÚlenÚrecvÚEOFError)r)   ÚcntÚdataÚcurs       r   Úrecvallzsockssocket.recvalls   sc   € ØˆÜ�$‹i˜#ŠoØ—)‘)˜C¤# d£)™OÓ,ˆCÙÜ #¬¨D«	¡/Ð!2°.ÐAÓBÐBØ�C‰KˆDô	 �$‹i˜#‹oð
 ˆr   c                 óX   — | j                  |«      }t        j                  d|› d�|«      S )Nú!ÚB)rb   ÚstructÚunpack)r)   r_   r`   s      r   Ú_recv_byteszsockssocket._recv_bytes|   s)   € Ø�|‰|˜CÓ ˆÜ�}‰}˜q   Q˜Z¨Ó.Ð.r   c                 óF   — t        j                  dt        | «      «      | z   S )Nú!B)rf   Úpackr\   )r`   s    r   Ú_len_and_datazsockssocket._len_and_data€   s   € ä�{‰{˜4¤ T£Ó+¨dÑ2Ð2r   c                 óF   — ||k7  r| j                  «        t        ||«      ‚y rR   )Úcloser1   )r)   r4   r5   s      r   Ú_check_response_versionz#sockssocket._check_response_version„   s'   € ØÐ*Ò*Ø�J‰JŒLÜ%Ð&6¸ÓDÐDð +r   c                 ód  — |r|fnt         j                  t         j                  fD ]  }	 |t        j                  ||«      fc S  |r| j
                  j                  rd|fS t        j                  |d |xs d¬«      }|d   \  }}}}}|t        j                  ||d   «      fS # t        $ r Y Œˆw xY w)Nr   )Úfamily)ÚsocketÚAF_INETÚAF_INET6Ú	inet_ptonÚOSErrorrS   rN   Úgetaddrinfo)	r)   ÚdestaddrÚdefaultÚuse_remote_dnsrq   ÚfÚresÚ_Úipaddrs	            r   Ú_resolve_addresszsockssocket._resolve_address‰   s¸   € Ù$�&‘¬6¯>©>¼6¿?¹?Ð*Kò 	ˆAðØœ&×*Ñ*¨1¨hÓ7Ð7Ò7ð	ñ ˜dŸk™k×4Ò4Ø�g�:Ðä×$Ñ$ X¨t¸FºKÀaÔHˆCØ!$ Q¡ÑˆAˆq�!�Q˜Ø”f×&Ñ& q¨&°©)Ó4Ð4Ð4øô ò Ùðús   ªB#Â#	B/Â.B/c                 óŽ  — |\  }}| j                  |t        |t        j                  ¬«      \  }}t	        j
                  dt        t        j                  |«      |z   }| j                  j                  xs dj                  «       }||dz   z  }|r5| j                  j                  r|t        k(  r||j                  «       dz   z  }| j                  |«       t	        j                  d| j                  d«      «      \  }	}
}}| j!                  t"        |	«       |
t$        j&                  k7  r| j)                  «        t%        |
«      ‚||fS )N)rz   rq   z!BBHÚ ó    z!BBHIr@   )r   ÚSOCKS4_DEFAULT_DSTIPrr   rs   rf   rk   ÚSOCKS4_VERSIONr	   r   rS   rL   ÚencoderN   Úsendallrg   rb   ro   ÚSOCKS4_REPLY_VERSIONr7   r-   rn   )r)   ÚaddressÚis_4arx   rK   r}   r~   ÚpacketrL   ÚversionÚ	resp_codeÚdstportÚdsthosts                r   Ú_setup_socks4zsockssocket._setup_socks4—   s  € Ø ‰ˆ�$à×)Ñ)¨(Ô4HÐY^Ôgm×guÑguÐ)Óv‰	ˆˆ6ä—‘˜V¤^´]×5NÑ5NÐPTÓUÐX^Ñ^ˆà—K‘K×(Ñ(Ò.¨B×6Ñ6Ó8ˆØ�(˜WÑ$Ñ$ˆá�T—[‘[×+Ò+°Ô:NÒ0NØ�h—o‘oÓ'¨'Ñ1Ñ1ˆFà�‰�VÔä/5¯}©}¸WÀdÇlÁlÐSTÃoÓ/VÑ,ˆ�˜G Wà×$Ñ$Ô%9¸7ÔCàœ×/Ñ/Ò/Ø�J‰JŒLÜ˜iÓ(Ð(à˜Ð!Ð!r   c                 ó*   — | j                  |d¬«       y )NT)r‰   )r�   ©r)   rˆ   s     r   Ú_setup_socks4azsockssocket._setup_socks4a°   s   € Ø×Ñ˜7¨$ÐÕ/r   c                 óþ  — t        j                  dt        «      }t        j                  g}| j
                  j                  r5| j
                  j                  r|j                  t        j                  «       |t        j                  dt        |«      «      z  }|t        j                  dt        |«      › d�g|¢­Ž z  }| j                  |«       | j                  d«      \  }}| j                  t        |«       |t        j                  k(  s?|t        j                  k(  rU| j
                  j                  r| j
                  j                  s)| j                  «        t!        t        j                  «      ‚|t        j                  k(  rö| j
                  j                  j#                  «       }| j
                  j                  j#                  «       }t        j                  dt$        «      }|| j'                  |«      | j'                  |«      z   z  }| j                  |«       | j                  d«      \  }}| j                  t$        |«       |t(        k7  r)| j                  «        t!        t         j*                  «      ‚y y )Nrj   rd   re   r
   )rf   rk   ÚSOCKS5_VERSIONr   r   rS   rL   rM   Úappendr   r\   r†   rh   ro   r   rn   r=   r…   ÚSOCKS5_USER_AUTH_VERSIONrl   ÚSOCKS5_USER_AUTH_SUCCESSrB   )r)   rŠ   Úauth_methodsr‹   ÚmethodrL   rM   Ústatuss           r   Ú_socks5_authzsockssocket._socks5_auth³   sá  € Ü—‘˜T¤>Ó2ˆä"×,Ñ,Ð-ˆØ�;‰;×Ò D§K¡K×$8Ò$8Ø×Ñ¤
× 9Ñ 9Ô:à”&—+‘+˜d¤C¨Ó$5Ó6Ñ6ˆØ”&—+‘+ ¤# lÓ"3Ð!4°AÐ6ÐF¸ÒFÑFˆà�‰�VÔà×*Ñ*¨1Ó-‰ˆ�à×$Ñ$¤^°WÔ=à”Z×2Ñ2Ò2Øœ*×3Ñ3Ò3¸T¿[¹[×=QÒ=QÐY]×YdÑYd×YmÒYmØ�J‰JŒLÜœj×;Ñ;Ó<Ð<à”Z×.Ñ.Ò.Ø—{‘{×+Ñ+×2Ñ2Ó4ˆHØ—{‘{×+Ñ+×2Ñ2Ó4ˆHÜ—[‘[ Ô'?Ó@ˆFØ�d×(Ñ(¨Ó2°T×5GÑ5GÈÓ5QÑQÑQˆFØ�L‰L˜Ô à"×.Ñ.¨qÓ1‰OˆG�Và×(Ñ(Ô)AÀ7ÔKàÔ1Ò1Ø—
‘
”Ü!¤+×"AÑ"AÓBÐBð 2ð /r   c                 ó´  — |\  }}| j                  |d d¬«      \  }}| j                  «        d}t        j                  dt        t
        j                  |«      }|€L|j                  «       }|t        j                  dt        j                  «      z  }|| j                  |«      z  }n{|t        j                  k(  r+|t        j                  dt        j                  «      |z   z  }n=|t        j                  k(  r*|t        j                  dt        j                  «      |z   z  }|t        j                  d|«      z  }| j!                  |«       | j#                  d«      \  }}	}}
| j%                  t        |«       |	t&        j(                  k7  r| j+                  «        t'        |	«      ‚|
t        j                  k(  r| j-                  d«      }nc|
t        j                  k(  r,t/        | j1                  d«      «      }| j-                  |«      }n$|
t        j                  k(  r| j-                  d	«      }t        j2                  d| j-                  d
«      «      d   }||fS )NT)rz   r   z!BBBrj   z!Hr   r   é   r
   )r   r›   rf   rk   r”   r   r   r…   r   r    rl   rr   rs   r   rt   r!   r†   rh   ro   r=   r-   rn   rb   r   r]   rg   )r)   rˆ   rx   rK   rq   r~   ÚreservedrŠ   r‹   rš   ÚatypeÚalenÚdestports                r   Ú_setup_socks5zsockssocket._setup_socks5×   sê  € Ø ‰ˆ�$à×.Ñ.¨x¸ÈdÐ.ÓS‰ˆ�à×ÑÔàˆÜ—‘˜V¤^´]×5NÑ5NÐPXÓYˆØˆ>Ø—‘Ó(ˆHØ”f—k‘k $Ô(9×(IÑ(IÓJÑJˆFØ�d×(Ñ(¨Ó2Ñ2‰FØ”v—~‘~Ò%Ø”f—k‘k $Ô(9×(CÑ(CÓDÀvÑMÑM‰FØ”v—‘Ò&Ø”f—k‘k $Ô(9×(CÑ(CÓDÀvÑMÑMˆFØ”&—+‘+˜d DÓ)Ñ)ˆà�‰�VÔà+/×+;Ñ+;¸AÓ+>Ñ(ˆ�˜ 5à×$Ñ$¤^°WÔ=à”[×,Ñ,Ò,Ø�J‰JŒLÜ˜fÓ%Ð%àÔ%×/Ñ/Ò/Ø—|‘| A“‰HØÔ'×7Ñ7Ò7Ü˜dŸi™i¨›lÓ+ˆDØ—|‘| DÓ)‰HØÔ'×1Ñ1Ò1Ø—|‘| BÓ'ˆHÜ—=‘=  t§|¡|°A£Ó7¸Ñ:ˆà˜(Ð#Ð#r   c                 ó†  — | j                   s	 || |«      S  || | j                   j                  | j                   j                  f«      }|dk7  r|�|S t        j                  | j
                  t        j                  | j                  t        j                  | j                  i} || j                   j                     |«       |S )Nr   )rS   rJ   rK   rD   rE   r�   rF   r’   rG   r¢   rI   )r)   Úconnect_funcrˆ   ÚresultÚsetup_funcss        r   Ú_make_proxyzsockssocket._make_proxyÿ   s¦   € Ø�{Š{Ù  gÓ.Ð.á˜d T§[¡[×%5Ñ%5°t·{±{×7GÑ7GÐ$HÓIˆØ�QŠ;˜6Ð-ØˆMä×Ñ˜d×0Ñ0Ü×Ñ˜t×2Ñ2Ü×Ñ˜d×0Ñ0ð
ˆð
 	&ˆ�D—K‘K×$Ñ$Ñ% gÔ.Øˆr   c                 óX   — | j                  t        j                  j                  |«       y rR   )r§   rr   Úconnectr‘   s     r   r©   zsockssocket.connect  s   € Ø×ÑœŸ™×.Ñ.°Õ8r   c                 óV   — | j                  t        j                  j                  |«      S rR   )r§   rr   Ú
connect_exr‘   s     r   r«   zsockssocket.connect_ex  s   € Ø×Ñ¤§¡× 8Ñ 8¸'ÓBÐBr   )TNNrR   )F)r   r   r   r(   rZ   rb   rh   Ústaticmethodrl   ro   r   r�   r’   r›   r¢   r§   r©   r«   r.   r/   s   @r   rP   rP   i   s^   ø„ ô*óMò
ò/ð ñ3ó ð3òEó
5ó"ò20ò"CòH&$òPò9öCr   rP   )Úcollectionsrr   rf   Úcompatr   Ú
__author__r„   r‡   rk   rƒ   r”   r–   r—   r	   r   r   r   rv   r#   r1   r7   r=   rD   Ú
namedtuplerH   rP   r   r   r   ú<module>r±      sä   ðó Û Û å à1€
à€ØÐ ð
 #�v—{‘{ 7¨A¨q°!°TÓ:Ð à€ØÐ ØÐ ÷ñ ô
�Mô ÷ñ ÷ñ ô$�ô $ô!˜*ô !ô�*ô ô�*ô ÷"ñ ð 	ˆ×Ñ˜wð )Bó 	C€ôiC�&—-‘-õ iCr   