
    =Ogk                        	 d dl Z d dlZd dlmZmZ dZej        dv rdxZZnd dlZ ej	                    Z
e
dk    Ze
dk    ZdZdZerd	Zd
Zg d\  ZZZZeZeZ ee           G d d                      Z G d d          Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"	 d dl#Z# e$e#dd          Z% e$e#dd          Z&e#j'        Z(n# e)$ r dZ#dZ%dZ&dZ(Y nw xY wd Z*d Z+d  Z,d! Z-ereegZ.n,ej        d"k    reee gZ.nej        d#k    rg Z.nere gZ.neeee egZ.e j/        d$k    re+ge.z   Z0ne j/        d%k    re,ge.z   Z0ne.Z0da1d& Z2da3d/d'Z4d( Z5d) Z6d* Z7 ed+          Z8 ed,          Z9 ed-          Z: ed.          Z;dS )0    N)Enum_simple_enumzKa-Ping Yee <ping@zesty.ca>)win32darwinFAIXLinux   :   .T)zreserved for NCS compatibilityzspecified in RFC 4122z$reserved for Microsoft compatibilityzreserved for future definitionc                       e Zd ZdZdZdZdS )SafeUUIDr   N)__name__
__module____qualname__safeunsafeunknown     /usr/lib64/python3.11/uuid.pyr   r   N   s        DFGGGr   r   c                      e Zd Z	 dZ	 	 d ej        ddZd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Z ed             Z!ed             Z"dS )!UUID)intis_safe__weakref__N)r   c                   	 |||||g                     d           dk    rt          d          ||                    dd                              dd          }|                    d                              dd          }t	          |          dk    rt          d	          t          |d
          }|Pt	          |          d
k    rt          d          |dd d         |ddd         z   |ddd         z   |dd          z   }|<t	          |          d
k    rt          d          t                              |          }|t	          |          dk    rt          d          |\  }}	}
}}}d|cxk    rdk     sn t          d          d|	cxk    rdk     sn t          d          d|
cxk    rdk     sn t          d          d|cxk    rdk     sn t          d          d|cxk    rdk     sn t          d          d|cxk    rdk     sn t          d          |dz  |z  }|dz  |	d z  z  |
d!z  z  |d"z  z  |z  }|!d|cxk    r	d#d$z  k     sn t          d%          |5d#|cxk    rdk    sn t          d&          |d'z  }|d(z  }|d)z  }||d*z  z  }t          	                    | d+|           t          	                    | d,|           d S )-N   zGone of the hex, bytes, bytes_le, fields, or int arguments must be givenzurn: zuuid:z{}-    z$badly formed hexadecimal UUID string   z bytes_le is not a 16-char string   r            zbytes is not a 16-char string   zfields is not a 6-tupler   l        z*field 1 out of range (need a 32-bit value)i   z*field 2 out of range (need a 16-bit value)z*field 3 out of range (need a 16-bit value)   z*field 4 out of range (need an 8-bit value)z*field 5 out of range (need an 8-bit value)          z*field 6 out of range (need a 48-bit value)`   P   @   0         z*int is out of range (need a 128-bit value)zillegal version numberl                    l          L   r   r   )
count	TypeErrorreplacestriplen
ValueErrorint_
from_bytesobject__setattr__)selfhexbytesbytes_lefieldsr   versionr   time_lowtime_midtime_hi_versionclock_seq_hi_variantclock_seq_lownode	clock_seqs                  r   __init__zUUID.__init__   s   	: &#.44T::a?? = > > >?++fb))11'2>>C))D//))#r22C3xx2~~ !GHHHsB--C8}}"" !CDDDcg2g&#c"*)==c#bj)*,4QRRL9E5zzR !@AAA//%((C6{{a !:;;;:@8Xx!=$((((5(((( !MNNN((((5(((( !MNNN////%//// !MNNN,3333t3333 !MNNN,,,,,,,, !MNNN$$$$u$$$$ !MNNN-2mCINx2~6#r)+.72o?AEFC?$$$$af$$$$ !MNNN$$$$1$$$$ !9:::?"C<C?"C7b= C4,,,4G44444r   c                 `    d| j         i}| j        t          j        k    r| j        j        |d<   |S Nr   r   )r   r   r   r   value)r;   ds     r   __getstate__zUUID.__getstate__   s3    DH<8+++  <-AiLr   c                     t                               | d|d                    t                               | dd|v rt          |d                   nt          j                   d S rJ   )r9   r:   r   r   )r;   states     r   __setstate__zUUID.__setstate__   so    4e5554'500 $E)$45556>6F	H 	H 	H 	H 	Hr   c                 Z    t          |t                    r| j        |j        k    S t          S N
isinstancer   r   NotImplementedr;   others     r   __eq__zUUID.__eq__   )    eT"" 	)8uy((r   c                 Z    t          |t                    r| j        |j        k     S t          S rR   rS   rV   s     r   __lt__zUUID.__lt__   )    eT"" 	(8ei''r   c                 Z    t          |t                    r| j        |j        k    S t          S rR   rS   rV   s     r   __gt__zUUID.__gt__   r\   r   c                 Z    t          |t                    r| j        |j        k    S t          S rR   rS   rV   s     r   __le__zUUID.__le__  rY   r   c                 Z    t          |t                    r| j        |j        k    S t          S rR   rS   rV   s     r   __ge__zUUID.__ge__  rY   r   c                 *    t          | j                  S rR   )hashr   r;   s    r   __hash__zUUID.__hash__  s    DH~~r   c                     | j         S rR   r   re   s    r   __int__zUUID.__int__  s	    xr   c                 @    | j         j        dt          |           dS )N())	__class__r   strre   s    r   __repr__zUUID.__repr__  s"    >222CIIII>>r   c                      t          d          )NzUUID objects are immutable)r2   )r;   namerK   s      r   r:   zUUID.__setattr__  s    4555r   c                     d| j         z  }|d d         d|dd         d|dd         d|dd         d|dd          	S )N%032xr%   r      r!      rh   )r;   r<   s     r   __str__zUUID.__str__  s_     GGGS2YYYBrE


C2JJJBCCB 	Br   c                 6    | j                             d          S )Nr!   )r   to_bytesre   s    r   r=   z
UUID.bytes  s    x  $$$r   c                 l    | j         }|dd d         |ddd         z   |ddd         z   |dd          z   S )Nr"   r   r#   r$   r%   r=   )r;   r=   s     r   r>   zUUID.bytes_le!  sK    
cg2gs3rz!22U3s2:5FFabb	 	r   c                 N    | j         | j        | j        | j        | j        | j        fS rR   )rA   rB   rC   rD   rE   rF   re   s    r   r?   zUUID.fields'  s+    t}d.B)4+=tyJ 	Jr   c                     | j         dz	  S )Nr)   rh   re   s    r   rA   zUUID.time_low,  s    x2~r   c                     | j         dz	  dz  S )Nr*     rh   re   s    r   rB   zUUID.time_mid0      B&((r   c                     | j         dz	  dz  S )Nr+   r~   rh   re   s    r   rC   zUUID.time_hi_version4  r   r   c                     | j         dz	  dz  S )N8      rh   re   s    r   rD   zUUID.clock_seq_hi_variant8      B$&&r   c                     | j         dz	  dz  S )Nr,   r   rh   re   s    r   rE   zUUID.clock_seq_low<  r   r   c                 B    | j         dz  dz  | j        dz  z  | j        z  S )N  r,   r    )rC   rB   rA   re   s    r   timez	UUID.time@  s0    &/B6"$&(,6 	7r   c                 ,    | j         dz  dz  | j        z  S )N?   r%   )rD   rE   re   s    r   rG   zUUID.clock_seqE  s"    +d2q8"# 	$r   c                     | j         dz  S )Nl    rh   re   s    r   rF   z	UUID.nodeJ  s    x.((r   c                     d| j         z  S )Nrs   rh   re   s    r   r<   zUUID.hexN  s    !!r   c                 &    dt          |           z   S )Nz	urn:uuid:)rn   re   s    r   urnzUUID.urnR  s    SYY&&r   c                 v    | j         dz  st          S | j         dz  st          S | j         dz  st          S t          S )Nr/   l            l            )r   RESERVED_NCSRFC_4122RESERVED_MICROSOFTRESERVED_FUTUREre   s    r   variantzUUID.variantV  sF    x<( 	#\* 	#O\* 	#%%""r   c                 Z    | j         t          k    rt          | j        dz	  dz            S d S )Nr0      )r   r   r   re   s    r   r@   zUUID.versiona  s2     <8##B#-... $#r   )NNNNNN)#r   r   r   	__slots__r   r   rH   rM   rP   rX   r[   r^   r`   rb   rf   ri   ro   r:   rv   propertyr=   r>   r?   rA   rB   rC   rD   rE   r   rG   rF   r<   r   r   r@   r   r   r   r   r   U   s       1f 2ICG)-T5"*"2T5 T5 T5 T5 T5l  H H H    
  
  
  
    ? ? ?6 6 6B B B
 % % X%   X
 J J XJ   X ) ) X) ) ) X) ' ' X' ' ' X' 7 7 X7 $ $ X$ ) ) X) " " X" ' ' X' # # X# / / X/ / /r   r   c                 P   dd l }dd l}dd l}dd l}	 |j                            d|j                                      |j                  }|	                    ddg           |
                    | |j                            |                    }|d S t          |j                  }d|d<   |dk    r|g|R } n|f} |                    | |j        |j        |	          }	|	sd S |	                                \  }
}|                    |
          S # t$          |j        f$ r Y d S w xY w)
Nr   PATHz/sbinz	/usr/sbin)pathCLC_ALL)r   )stdoutstderrenv)ioosshutil
subprocessenvirongetdefpathsplitpathsepextendwhichjoindictPopenPIPEDEVNULLcommunicateBytesIOOSErrorSubprocessError)commandargsr   r   r   r   	path_dirs
executabler   procr   r   s               r   _get_command_stdoutr   h  sk   %%%%%%%%%%%%%%%%JNN62:66<<RZHH	';/000\\'
	0J0J\KK
4 2:H5==!)D))GG!mG'1'1'9$'   ) )  	4))++zz&!!!Z/0   tts   B D AD $+D D%$D%c                     | dz   S )Nl        r   macs    r   _is_universalr     s    w  r   c                    	 t          | |          }|d S d }|D ]}|                                                                                                }t	          t          |                    D ]x}||         |v rl	 | ||                   }	t          |	                    t          d          d          }
t          |
          r|
c c S |p|
}a# t          t          f$ r Y tw xY wy|pd S )Nr   r!   )r   lowerrstripr   ranger5   r   r3   
_MAC_DELIMr   r6   
IndexError)r   r   keywordsget_word_indexr   first_local_maclinewordsiwordr   s              r   _find_mac_near_keywordr     s(    !$//F~tO = =

##%%++--s5zz"" 	= 	=AQx8##= !2!23Ddll:s;;R@@C %S)) #"




&5&<OO #J/    D	 $	=  "d"s   =:CC%$C%c                    |                      t                    }t          |          dk    rd S t          r;t	          d |D                       sd S d                    d |D                       }n0t	          d |D                       sd S d                    |          }	 t          |d          S # t          $ r Y d S w xY w)Nr&   c              3   P   K   | ]!}d t          |          cxk    odk    nc V  "dS )r-      Nr5   .0parts     r   	<genexpr>z_parse_mac.<locals>.<genexpr>  sD      9941D		&&&&Q&&&&999999r   r   c              3   B   K   | ]}|                     d d          V  dS )r      0N)rjustr   s     r   r   z_parse_mac.<locals>.<genexpr>  s0      @@$$**Q--@@@@@@r   c              3   <   K   | ]}t          |          d k    V  dS )r   Nr   r   s     r   r   z_parse_mac.<locals>.<genexpr>  s,      44d3t99>444444r   r!   )r   r   r5   _MAC_OMITS_LEADING_ZEROESallr   r   r6   )r   partshexstrs      r   
_parse_macr     s     JJz""E
5zzQ  !
 99599999 	F@@%@@@@@44e44444 	F%62   s   #B3 3
C Cc                    	 t          | |          }|d S |                                                                                                }	 |                    |          }n# t
          $ r Y d S w xY wd }|D ]k}|                                                                }	 ||         }	n# t          $ r Y >w xY wt          |	          }
|
Tt          |
          r|
c S ||
}l|S rR   )	r   readliner   r   indexr6   r   r   r   )r   r   headingr   r   column_indexr   r   r   r   r   s              r   _find_mac_under_headingr     s%    !$//F~t  ''))//11H~~g..   tt O " "##%%	&DD 	 	 	H	 ; 	JJJ"!Os$   A% %
A32A3#B,,
B98B9c                  H    	 d} dD ]}t          d|| d           }|r|c S d S )N)s   hwaddrs   ethers   address:s   lladdr)r   z-az-avifconfigc                     | dz   S Nr-   r   r   s    r   <lambda>z#_ifconfig_getnode.<locals>.<lambda>  s
    1Q3 r   r   )r   r   r   s      r   _ifconfig_getnoder     sI    ?<H!  $ZxOO 	JJJ	4r   c                  8    	 t          dddgd           } | r| S d S )Niplinks
   link/etherc                     | dz   S r   r   r   s    r   r   z_ip_getnode.<locals>.<lambda>  s
    !A# r   r   r   s    r   _ip_getnoder   	  s.    9
 v
N
NC
 
4r   c                     	 dd l } dd l}t          |d          sd S 	 |                    |                                          }n# t
          $ r Y d S w xY wt          dd | j        |          gd           }|r|S t          dd | j        |          gd           }|r|S t          dd | j        d|z            gd           }|r|S d S )	Nr   gethostbynamearpz-anc                     dS )Nr   r   r   s    r   r   z_arp_getnode.<locals>.<lambda>  s    QS r   c                     | dz   S r   r   r   s    r   r   z_arp_getnode.<locals>.<lambda>!  s    QRSTQT r   z(%s)c                     | dz   S )Nr   r   r   s    r   r   z_arp_getnode.<locals>.<lambda>'  s
    ac r   )r   sockethasattrr   gethostnamer   r   fsencode)r   r   ip_addrr   s       r   _arp_getnoder     s&   :6?++ t&&v'9'9';';<<   tt !G0D0D/E||
T
TC
 
 !G0D0D/E}}
U
UC
 
 !FW<L0M0M/N!M# #C  
4s   'A 
AAc                  ,    	 t          dddgd           S )Nlanscanz-ais   lan0c                     dS )Nr   r   r   s    r   r   z"_lanscan_getnode.<locals>.<lambda>0  s     r   r   r   r   r   _lanscan_getnoder   -  s    >!)UWI{{KKKr   c                  &    	 t          ddd          S )Nnetstatz-ians   Address)r   r   r   r   _netstat_getnoder  2  s    >"9fjAAAr   c                       	 t                      S rR   _windll_getnoder   r   r   _ipconfig_getnoder  7      ;r   c                       	 t                      S rR   r  r   r   r   _netbios_getnoder
  <  r  r   generate_time_safe
UuidCreatec                      d S rR   r   r   r   r   _load_system_functionsr  O  s    HHr   c                  b    	 t           r&t                      \  } }t          |           j        S d S )Nrz   )_generate_time_safer   rF   )	uuid_time_s     r   _unix_getnoder  S  s:    L **,,	1)$$$))* *r   c                  \    	 t           r#t                      } t          |           j        S d S )N)r>   )_UuidCreater   rF   )
uuid_bytess    r   r  r  Y  s4    O . ]]
Z(((--. .r   c                  <    	 dd l } |                     d          dz  S )Nr   r,   l        )randomgetrandbits)r  s    r   _random_getnoder  _  s)     MMMb!!W--r   r   r   posixntc                      	 t           t           S t          t          gz   D ]:} 	  |             a n#  Y xY wt           dt           cxk    rdk     rn 1t           c S ;d S )Nr   r(   )_node_GETTERSr  )getters    r   getnoder!    s     o..  	FHHEE	HA$:$:$:$:'$:$:$:$:$:LLL s   
.2c                    	 t           Y| |cxu rRn nOt                      \  }}	 t          |          }n# t          $ r t          j        }Y nw xY wt	          ||          S dd l}|                                }|dz  dz   }t          |t          k    r
t          dz   }|a|dd l}|	                    d          }|dz  }	|dz	  d	z  }
|d
z	  dz  }|dz  }|dz	  dz  }| t                      } t	          |	|
|||| fd          S )N)r=   r   r   d   l    @'Hwr-      l    r    r~   r,   r   r   r%   r   )r?   r@   )r  r   r6   r   r   r   time_ns_last_timestampr  r  r!  )rF   rG   r  safely_generatedr   r   nanoseconds	timestampr  rA   rB   rC   rE   rD   s                 r   uuid1r*    st   < &49+D+D+D+D+D+D+D+D&9&;&;#	#	'/00GG 	' 	' 	'&GGG	')W5555 KKK,,..K s"%77I"yO'C'C#a'	O&&r**	:%HR6)H B&0O$M%Nd2|yy(O,mTCLMO O O Os   5 AAc                     	 ddl m}  || j        t          |d          z   d                                          }t	          |d d         d          S )	Nr   )md5utf-8F)usedforsecurityr!   r"   r=   r@   )hashlibr,  r=   digestr   )	namespacerq   r,  r1  s       r   uuid3r3    so    KS%g...   fhh  fSbSk1----r   c                  J    	 t          t          j        d          d          S )Nr!   r   r/  )r   r   urandomr   r   r   uuid4r6    s     !bjnna0000r   c                     	 ddl m}  || j        t          |d          z                                             }t	          |d d         d          S )Nr   )sha1r-  r!   r#   r/  )r0  r8  r=   r1  r   )r2  rq   r8  rd   s       r   uuid5r9    s^    M4	%g"6"6677>>@@Dd3B3i++++r   z$6ba7b810-9dad-11d1-80b4-00c04fd430c8z$6ba7b811-9dad-11d1-80b4-00c04fd430c8z$6ba7b812-9dad-11d1-80b4-00c04fd430c8z$6ba7b814-9dad-11d1-80b4-00c04fd430c8)NN)<r   sysenumr   r   
__author__platform_AIX_LINUXsystem_platform_systemr   r   r   r   r   r   r   r7   r=   bytes_r   r   r   r   r   r   r   r   r   r   r   r  r  r
  _uuidgetattrr  r  has_uuid_generate_time_safe_has_uuid_generate_time_safeImportErrorr  r  r  r  _OS_GETTERSrq   r  r  r!  r&  r*  r3  r6  r9  NAMESPACE_DNSNAMESPACE_URLNAMESPACE_OIDNAMESPACE_X500r   r   r   <module>rM     s  ,\ 
			 



 # # # # # # # # +
 <&&&D66OOO&x((5(D7*F
!  %J $?N ?N ?N ;h*O 	 d       P/ P/ P/ P/ P/ P/ P/ P/f  \! ! ! #  #  #F  8! ! !L      8L L L
B B B
  
  	(LLL!'%)=tDD'%t44K#(#D   ( ( (EK#'   	(I I I* * *. . .. . ., 
 7 12KK\X$l4DEKK\WKK	 7#$KK$k<#%57K7g,HHW__ ;.HHHO O O, $O $O $O $OL. . .1 1 1, , , ;<<;<<;<<<==s   (%C CC