Ë
    ÖÉ�jš  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZ  G d„ de	«      Z
eZeeeef   Z G d„ de	«      Z ej                   «       dk(  sd ej                   «       v r@ G d	„ d
e j"                  «      Z G d„ de j"                  «      Z G d„ de j"                  «      Zn? G d„ d
e j"                  «      Z G d„ de j"                  «      Z G d„ de j"                  «      Zdddeeeef      fd„Zdej,                  defd„Zy)é    N)ÚListÚOptionalÚTupleÚUnionc                   óF   — e Zd ZdZddededed   dee   ddf
d	„Zdefd
„Z	y)ÚAdapteran  
    Represents a network interface device controller (NIC), such as a
    network card. An adapter can have multiple IPs.

    On Linux aliasing (multiple IPs per physical NIC) is implemented
    by creating 'virtual' adapters, each represented by an instance
    of this class. Each of those 'virtual' adapters can have both
    a IPv4 and an IPv6 IP address.
    NÚnameÚ	nice_nameÚipsÚIPÚindexÚreturnc                 ó<   — || _         || _        || _        || _        y ©N©r	   r
   r   r   )Úselfr	   r
   r   r   s        úO/home/uftp/webrtc-recorder/.venv/lib/python3.12/site-packages/ifaddr/_shared.pyÚ__init__zAdapter.__init__)   s&   € ð ˆŒ	ð
 #ˆŒð ˆŒð ˆ�
ó    c                 óÄ   — dj                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j
                  «      ¬«      S )NzEAdapter(name={name}, nice_name={nice_name}, ips={ips}, index={index})r   )ÚformatÚreprr	   r
   r   r   ©r   s    r   Ú__repr__zAdapter.__repr__=   sJ   € ØV×]Ñ]Ü�d—i‘i“¬D°·±Ó,@ÄdÈ4Ï8É8ÃnÔ\`Ðae×akÑakÓ\lð ^ó 
ð 	
r   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   Úintr   r   © r   r   r   r      sE   „ ññ˜Sð ¨Sð °t¸D±zð È(ÐSVÉ-ð Ðcgó ð(
˜#ô 
r   r   c                   ój   — e Zd ZdZdeeef   dededdfd„Z	e
defd„«       Ze
defd	„«       Zdefd
„Zy)r   z1
    Represents an IP address of an adapter.
    ÚipÚnetwork_prefixr
   r   Nc                 ó.   — || _         || _        || _        y r   ©r#   r$   r
   )r   r#   r$   r
   s       r   r   zIP.__init__O   s   € ð ˆŒð
 -ˆÔð #ˆ�r   c                 ó8   — t        | j                  t        «       S )zl
        Returns `True` if this IP is an IPv4 address and `False`
        if it is an IPv6 address.
        ©Ú
isinstancer#   Útupler   s    r   Úis_IPv4z
IP.is_IPv4c   s   € ô ˜dŸg™g¤uÓ-Ð-Ð-r   c                 ó6   — t        | j                  t        «      S )zl
        Returns `True` if this IP is an IPv6 address and `False`
        if it is an IPv4 address.
        r(   r   s    r   Úis_IPv6z
IP.is_IPv6k   s   € ô ˜$Ÿ'™'¤5Ó)Ð)r   c                 óœ   — dj                  t        | j                  «      t        | j                  «      t        | j                  «      ¬«      S )NzCIP(ip={ip}, network_prefix={network_prefix}, nice_name={nice_name})r&   )r   r   r#   r$   r
   r   s    r   r   zIP.__repr__s   sB   € ØT×[Ñ[Ü�D—G‘G‹}¬T°$×2EÑ2EÓ-FÔRVÐW[×WeÑWeÓRfð \ó 
ð 	
r   )r   r   r   r   r   Ú_IPv4AddressÚ_IPv6Addressr    r   r   ÚpropertyÚboolr+   r-   r   r!   r   r   r   r   J   sv   „ ñð#˜5 ¨|Ð!;Ñ<ð #Ècð #Ð^að #Ðfjó #ð( ð.˜ò .ó ð.ð ð*˜ò *ó ð*ð
˜#ô 
r   r   ÚDarwinÚBSDc                   ód   — e Zd Zdej                  fdej                  fdej                  dz  fgZy)ÚsockaddrÚsa_lenÚ
sa_familiyÚsa_dataé   N)r   r   r   ÚctypesÚc_uint8Ú_fields_r!   r   r   r6   r6   €   s2   „ à�v—~‘~Ð&Ø˜6Ÿ>™>Ð*Ø˜Ÿ™¨Ñ+Ð,ð
‰r   r6   c                   óž   — e Zd Zdej                  fdej                  fdej
                  fdej                  dz  fdej                  dz  fgZy)	Úsockaddr_inr7   r8   Úsin_portÚsin_addré   Úsin_zeroé   N)r   r   r   r;   r<   Úc_uint16r=   r!   r   r   r?   r?   ‡   sO   „ à�v—~‘~Ð&Ø˜6Ÿ>™>Ð*Ø˜Ÿ™Ð)Ø˜Ÿ™¨!Ñ+Ð,Ø˜Ÿ™¨!Ñ+Ð,ð
‰r   r?   c                   ó²   — e Zd Zdej                  fdej                  fdej
                  fdej                  fdej                  dz  fdej                  fgZy)	Úsockaddr_in6r7   r8   Ú	sin6_portÚsin6_flowinfoÚ	sin6_addré   Úsin6_scope_idN)r   r   r   r;   r<   rE   Úc_uint32r=   r!   r   r   rG   rG   �   sV   „ à�v—~‘~Ð&Ø˜6Ÿ>™>Ð*Ø˜&Ÿ/™/Ð*Ø˜fŸo™oÐ.Ø˜&Ÿ.™.¨2Ñ-Ð.Ø˜fŸo™oÐ.ð
‰r   rG   c                   óJ   — e Zd Zdej                  fdej
                  dz  fgZy)r6   r8   r9   r:   N©r   r   r   r;   rE   r<   r=   r!   r   r   r6   r6   œ   s$   „ Ø! 6§?¡?Ð3°iÀÇÁÐRTÑATÐ5UÐV‰r   c                   ó„   — e Zd Zdej                  fdej                  fdej
                  dz  fdej
                  dz  fgZy)r?   Úsin_familiyr@   rA   rB   rC   rD   NrO   r!   r   r   r?   r?   Ÿ   sC   „ à˜FŸO™OÐ,Ø˜Ÿ™Ð)Ø˜Ÿ™¨!Ñ+Ð,Ø˜Ÿ™¨!Ñ+Ð,ð	
‰r   c                   ó˜   — e Zd Zdej                  fdej                  fdej
                  fdej                  dz  fdej
                  fgZy)rG   Úsin6_familiyrH   rI   rJ   rK   rL   N)r   r   r   r;   rE   rM   r<   r=   r!   r   r   rG   rG   §   sJ   „ à˜VŸ_™_Ð-Ø˜&Ÿ/™/Ð*Ø˜fŸo™oÐ.Ø˜&Ÿ.™.¨2Ñ-Ð.Ø˜fŸo™oÐ.ð
‰r   Úsockaddr_ptrzctypes.pointer[sockaddr]r   c                 ó„  — | �r=| d   j                   t        j                  k(  rnt        j                  | t        j
                  t        «      «      }t        t        |d   j                  «      «      }t        t        j                  |«      «      }|S | d   j                   t        j                  k(  r�t        j                  | t        j
                  t        «      «      }|d   j                  }t        t        |d   j                   «      «      }t        t        j                  |«      «      }|d   j"                  }|||fS y )Nr   )r8   ÚsocketÚAF_INETr;   ÚcastÚPOINTERr?   ÚbytesÚ	bytearrayrA   r   Ú	ipaddressÚ
ip_addressÚAF_INET6rG   rI   rJ   rL   )rT   Úipv4Úippackedr#   Úipv6ÚflowinfoÚscope_ids          r   Úsockaddr_to_iprd   ±   sò   € ÚØ˜‰?×%Ñ%¬¯©Ò7Ü—;‘;˜|¬V¯^©^¼KÓ-HÓIˆDÜœY t¨A¡w×'7Ñ'7Ó8Ó9ˆHÜ”Y×)Ñ)¨(Ó3Ó4ˆBØˆIØ˜!‰_×'Ñ'¬6¯?©?Ò:Ü—;‘;˜|¬V¯^©^¼LÓ-IÓJˆDØ˜A‘w×,Ñ,ˆHÜœY t¨A¡w×'8Ñ'8Ó9Ó:ˆHÜ”Y×)Ñ)¨(Ó3Ó4ˆBØ˜A‘w×,Ñ,ˆHØ˜ (Ð+Ð+Ør   Úaddressc                 ól   — d}t        | j                  «      D ]  }t        | «      |z	  dz  sŒ|dz   }Œ |S )Nr   é   )ÚrangeÚmax_prefixlenr    )re   Úprefix_lengthÚis      r   Úipv6_prefixlengthrl   Â   sD   € Ø€MÜ�7×(Ñ(Ó)ò .ˆÜˆw‹<˜1Ñ˜qÓ Ø)¨AÑ-‰Mð.ð Ðr   )r;   rV   r\   ÚplatformÚtypingr   r   r   r   Úobjectr   r   r/   r    r0   r   ÚsystemÚ	Structurer6   r?   rG   rd   ÚIPv6Addressrl   r!   r   r   ú<module>rs      s  ðó, Û Û Û ç /Ó /ô"
ˆfô "
ðL €ð �S˜#˜s�]Ñ#€ô,
ˆô ,
ð^ €8‡?�?Ó˜Ò  E¨_¨X¯_©_Ó->Ñ$>ô
�6×#Ñ#ô 
ô
�f×&Ñ&ô 
ô
�v×'Ñ'õ 
ôW�6×#Ñ#ô Wô
�f×&Ñ&ô 
ô
�v×'Ñ'ô 
ðÐ!;ð ÀÈÈ|Ð]iÐOiÑIjÑ@kó ð"˜y×4Ñ4ð ¸ô r   