+
    Dfj                        R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RI	t	^ RIH
t
 ^ RIHt ^ RIHtHt ^ RIHt ]! ]4      ]	P$                  ! R	R	R
7       ! R R4      4       4       t]! ]4      ]	P$                  ! R	R	R
7       ! R R4      4       4       t]! ]4       ! R R4      4       t]	P$                  ! R	R	R
7      ]! ]4       ! R R4      4       4       t]	P$                  ! RRRR	R7      ]! ]4       ! R R4      4       4       t ! R R]4      tR# )z*
Address objects for network connections.
N)OptionalUnion)warn)implementer)Literal)IAddress)_asFilesystemBytes_coerceToFilesystemEncoding)platformT)unsafe_hashauto_attribsc                      a  ] tR t^t o Rt]P                  ! ]P                  P                  RR.4      R7      t	V 3R lt
RtV tR# )IPv4AddressaP  
An L{IPv4Address} represents the address of an IPv4 socket endpoint.

@ivar type: A string describing the type of transport, either 'TCP' or
    'UDP'.

@ivar host: A string containing a dotted-quad IPv4 address; for example,
    "127.0.0.1".
@type host: C{str}

@ivar port: An integer representing the port number.
@type port: C{int}
TCPUDP	validatorc                p   < V ^8  d   Qh/ S[ S[R,          S[R,          3,          ;R&   S[;R&   S[;R&   # )   r   r   typehostportr   r   strint)format__classdict__s   ":/usr/lib/python3/dist-packages/twisted/internet/address.py__annotate__IPv4Address.__annotate__   s>     " .
/ # ( I) * I+      N)__name__
__module____qualname____firstlineno____doc__attrib
validatorsin_r   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s7      37''//%%uen53D#  r    r   c                      a  ] tR t^/t o Rt]P                  ! ]P                  P                  RR.4      R7      t	^ t
^ tV 3R ltRtV tR# )IPv6Addressa  
An L{IPv6Address} represents the address of an IPv6 socket endpoint.

@ivar type: A string describing the type of transport, either 'TCP' or
    'UDP'.

@ivar host: A string containing a colon-separated, hexadecimal formatted
    IPv6 address; for example, "::1".
@type host: C{str}

@ivar port: An integer representing the port number.
@type port: C{int}

@ivar flowInfo: the IPv6 flow label.  This can be used by QoS routers to
    identify flows of traffic; you may generally safely ignore it.
@type flowInfo: L{int}

@ivar scopeID: the IPv6 scope identifier - roughly analagous to what
    interface traffic destined for this address must be transmitted over.
@type scopeID: L{int} or L{str}
r   r   r   c                   < V ^8  d   Qh/ S[ S[R,          S[R,          3,          ;R&   S[;R&   S[;R&   S[;R&   S[ S[S[3,          ;R&   # )r   r   r   r   r   r   flowInfoscopeIDr   )r   r   s   "r   r   IPv6Address.__annotate__/   s`     2 .
/ 3 8 I9 : I; < = > 38_ ? r    r!   N)r"   r#   r$   r%   r&   r'   r(   r)   r*   r   r2   r3   r+   r,   r-   r.   s   @r   r0   r0   /   sC     , 37''//%%uen53D
 H G?  r    r0   c                       ] tR t^QtRtRtR# )_ProcessAddressz<
An L{interfaces.IAddress} provider for process transports.
r!   N)r"   r#   r$   r%   r&   r,   r!   r    r   r6   r6   Q   s    r    r6   c                   0   a  ] tR t^Xt o RtV 3R ltRtV tR# )HostnameAddressz
A L{HostnameAddress} represents the address of a L{HostnameEndpoint}.

@ivar hostname: A hostname byte string; for example, b"example.com".
@type hostname: L{bytes}

@ivar port: An integer representing the port number.
@type port: L{int}
c                2   < V ^8  d   Qh/ S[ ;R&   S[;R&   # )r   hostnamer   )bytesr   )r   r   s   "r   r   HostnameAddress.__annotate__X   s      O  I r    r!   N)r"   r#   r$   r%   r&   r+   r,   r-   r.   s   @r   r8   r8   X   s       r    r8   F)r   repreqr   c                      a  ] tR t^it o Rt]P                  ! ]P                  P                  ]	4      R7      t
]! ]P                  RR4      e   V 3R lR ltM	V 3R lR ltV 3R	 lR
 ltR tV 3R ltRtV tR# )UNIXAddresszy
Object representing a UNIX socket endpoint.

@ivar name: The filename associated with this socket.
@type name: C{bytes}
)	convertersamefileNc                &   < V ^8  d   QhRS[ RS[/# r   otherreturnobjectbool)r   r   s   "r   r   UNIXAddress.__annotate__y   s     	 	 	4 	r    c                   \        WP                  4      '       g   \        # V P                  VP                  8H  pV'       gZ   V P                  '       dH   VP                  '       d6    \        P
                  P                  V P                  VP                  4      # V#   \         d     T# \        \        3 d)   p\        P                  ! 4       '       g   Th Rp?T# Rp?ii ; i)zh
Overriding C{attrs} to ensure the os level samefile
check is done if the name attributes do not match.
N)
isinstance	__class__NotImplementednameospathrB   OSError	TypeError
ValueErrorr
   isLinux)selfrE   reses   &&  r   __eq__UNIXAddress.__eq__y   s    
 e^^44%%))uzz)C4999 77++DIIuzzBB J   J ":.   $++-- .J s$   (3B C$,C$;C$<CC$c                &   < V ^8  d   QhRS[ RS[/# rD   rG   )r   r   s   "r   r   rJ      s     	" 	" 	"4 	"r    c                v    \        WP                  4      '       d   V P                  VP                  8H  # \        # N)rL   rM   rO   rN   )rV   rE   s   &&r   rY   rZ      s*    %00yyEJJ..!!r    c                    < V ^8  d   QhRS[ /# )r   rF   )r   )r   r   s   "r   r   rJ      s     ( (# (r    c                L    V P                   pVe   \        RV4      MR pRV: R2# )N zUNIXAddress())rO   r	   )rV   rO   shows   &  r   __repr__UNIXAddress.__repr__   s.    yy8<8H*2t4ddXQ''r    c                   V P                   f   \        V P                  R 34      #  \        P                  ! V P                   4      p\        VP
                  VP                  34      #   \         d    \        T P                   4      u # i ; ir]   )rO   hashrM   rP   statst_inost_devrR   )rV   s1s   & r   __hash__UNIXAddress.__hash__   sl    99.//	##BBII.// 	#		?"	#s   A A( ( B
Bc                6   < V ^8  d   Qh/ S[ S[,          ;R&   # )r   rO   )r   r;   )r   r   s   "r   r   rJ   i   s      5/  r    r!   )r"   r#   r$   r%   r&   r'   r(   
convertersoptionalr   rO   getattrrP   rQ   rY   rc   rk   r+   r,   r-   r.   s   @r   r@   r@   i   sm      !GG//**+=>D rww
D)5	 	,	" 	"
( (
#a  r    r@   c                   6   a  ] tR t^t o RtV 3R lR ltRtV tR# )_ServerFactoryIPv4Addressz@Backwards compatibility hack. Just like IPv4Address in practice.c                &   < V ^8  d   QhRS[ RS[/# rD   rG   )r   r   s   "r   r   &_ServerFactoryIPv4Address.__annotate__   s      F t r    c                T   \        V\        4      '       d.   \        R \        ^R7       V P                  V P
                  3V8H  # \        V\        4      '       dK   V P                  V P                  V P
                  3pVP                  VP                  VP
                  3pW#8H  # \        # )z?IPv4Address.__getitem__ is deprecated.  Use attributes instead.)category
stacklevel)	rL   tupler   DeprecationWarningr   r   r   r   rN   )rV   rE   abs   &&  r   rY    _ServerFactoryIPv4Address.__eq__   s    eU##T+
 IItyy)U22{++DIItyy1AUZZ4A6Mr    r!   N)r"   r#   r$   r%   r&   rY   r,   r-   r.   s   @r   rr   rr      s     J r    rr   )r&   rP   typingr   r   warningsr   zope.interfacer   r'   r   twisted.internet.interfacesr   twisted.python.filepathr   r	   twisted.python.runtimer
   sr   r0   r6   r8   r@   rr   r!   r    r   <module>r      s  
 
 "  &   0 S + XDt,  - , XDt,! ! - !@ X   Dt,X   - E%dCX5# 5#  D5#x r    