
    -hh                     v   S SK JrJrJrJrJ	r
  S SK JrJrJrJr  S SK JrJrJr  S SK JrJrJr  S SKJ r!  S SK"J#r$  S SK%J&r'  S SK(J)r*J+r,  S S	K-J-r.  S S
Kr/S S
K0r0/ SQr1S\" S5      -  \" S5      -  r2\" S5      r3S\" S5      -   r4Sr5S\5* -  r6Sr7S
q8 " S S\0Rr                  5      r9 " S S\95      r:\9" 5       r;\;Rx                  r<\;Rz                  r=\;R|                  r>\;R~                  r?\;R                  r@\;R                  rA\;R                  rB\;R                  rC\;R                  rD\;R                  rE\;R                  rF\;R                  rG\;R                  rH\;R                  rI\;R                  rJ\;R                  rK\;R                  rL\;R                  rM\;R                  rN\;R                  rO\;R                  rP\;R                  rQ\;R                  rR\;R                  rSS rTS"S jrU\V" \/S5      (       a  \/R                  " \;Rx                  S9  S\X\Y   S
-  4S jrZS#S\X\Y   S
-  S\[\Y-  4S  jjr\\]S!:X  a  \^" \\" 5       5        g
g
)$    )logexppieceil)sqrtacoscossin)taufloorisfinite)lgammafabslog2)urandom)Sequence)index)
accumulaterepeat)bisectN)RandomSystemRandombetavariatebinomialvariatechoicechoicesexpovariategammavariategaussgetrandbitsgetstatelognormvariatenormalvariateparetovariate	randbytesrandintrandom	randrangesampleseedsetstateshuffle
triangularuniformvonmisesvariateweibullvariate   g             @      @      ?      @5         c                   *  ^  \ rS rSrSrS%S jrS&U 4S jjrU 4S jrU 4S jrS r	S	 r
S
 rS rS rS\-  4S jr\rS rS\4S jrS rS rS rSS.S jrS%SSS.S jjrS rS'S jrS(S jrS(S jrS rS)S jrS rS r S  r!S! r"S" r#S*S# jr$S$r%U =r&$ )+r   g      Nc                 4    U R                  U5        S U l        g N)r+   
gauss_next)selfxs     //opt/python-3.13.8/usr/lib/python3.13/random.py__init__Random.__init__w   s     			!    c           	      *  > US:X  a  [        U[        [        45      (       a}  [        U[        5      (       a  UR                  S5      OUnU(       a  [	        US   5      S-  OSn[        [        U5       H  nSU-  U-  S-  nM     U[        U5      -  nUS:X  a  SOUnOUS	:X  a  [        U[        [        [        45      (       ac  [        c   SS
K	J
q  [        U[        5      (       a  UR                  5       n[        R                  U[        U5      R!                  5       -   5      nO?[        U[#        S 5      [        [$        [        [        [        45      (       d  ['        S5      e[(        TU ]U  U5        S U l        g ! [         a	    SS
KJ
q   Nf = f)Nr9   zlatin-1r      iCB l    r8   )sha512zOThe only supported seed types are:
None, int, float, str, bytes, and bytearray.)
isinstancestrbytesdecodeordmaplen	bytearray_sha512_sha2rJ   ImportErrorhashlibencodeint
from_bytesdigesttypefloat	TypeErrorsuperr+   r?   )r@   aversionrA   c	__class__s        rB   r+   Random.seed   sI   $ a<Jq3,77'1!U';';#A"#AaD	QAa[kQ&*<< !QKA2g1A\jS%,CDD: 8
 !S!!HHJq71:#4#4#667AAT
CUINOO K L L 	Q # :9:s   E? ?FFc                 N   > U R                   [        TU ]	  5       U R                  4$ r>   )VERSIONr^   r"   r?   )r@   rb   s    rB   r"   Random.getstate   s     ||UW-/@@rE   c                    > US   nUS:X  a  Uu  p#U l         [        TU ]	  U5        g US:X  a-  Uu  p#U l          [        S U 5       5      n[        TU ]	  U5        g [	        SU< SU R                  < 35      e! [         a  n[
        UeS nAff = f)Nr   r<   r8   c              3   *   #    U  H	  oS -  v   M     g7f)l        N ).0rA   s     rB   	<genexpr>"Random.setstate.<locals>.<genexpr>   s     %K]7m]s   zstate with version z( passed to Random.setstate() of version )r?   r^   r,   tuple
ValueErrorr]   re   )r@   stater`   internalstater   rb   s        rB   r,   Random.setstate   s    (a<6;3GDOG]+\6;3GDO
' %%K]%K K G]+%t||5 6 6	  'Q&'s   A7 7
BBBc                 "    U R                  5       $ r>   )r"   r@   s    rB   __getstate__Random.__getstate__   s    }}rE   c                 &    U R                  U5        g r>   )r,   )r@   ro   s     rB   __setstate__Random.__setstate__   s    erE   c                 <    U R                   SU R                  5       4$ )Nri   )rb   r"   rs   s    rB   
__reduce__Random.__reduce__   s    ~~r4==?22rE   c                    U R                    H[  nSUR                  ;   a    g SUR                  ;   a  U R                  U l          g SUR                  ;   d  MJ  U R                  U l          g    g )N
_randbelowr!   r(   )__mro____dict___randbelow_with_getrandbitsr}   _randbelow_without_getrandbits)clskwargsra   s      rB   __init_subclass__Random.__init_subclass__   sY     Aqzz)

*!$!@!@1::%!$!C!C rE   c                 v    U R                   nUR                  5       nU" U5      nXA:  a  U" U5      nXA:  a  M  U$ r>   )r!   
bit_length)r@   nr!   krs        rB   r   "Random._randbelow_with_getrandbits   s=     &&LLNNfAA frE   r9   c                     U R                   nX:  a!  SSKJn  U" S5        [        U" 5       U-  5      $ X!-  nX%-
  U-  nU" 5       nXv:  a  U" 5       nXv:  a  M  [        Xr-  5      U-  $ )Nr   )warnzUnderlying random() generator does not supply 
enough bits to choose from a population range this large.
To remove the range limitation, add a getrandbits() method.)r(   warningsr   _floor)r@   r   maxsizer(   r   remlimitr   s           rB   r   %Random._randbelow_without_getrandbits   sv     <% O P &(Q,''k')HjA jak"Q&&rE   c                 J    U R                  US-  5      R                  US5      $ )N   little)r!   to_bytesr@   r   s     rB   r&   Random.randbytes   s$    A&//8<<rE   c           	         [        U5      nUc6  U[        La  [        S5      eUS:  a  U R                  U5      $ [	        S5      e[        U5      nXT-
  n[        U5      nUS:X  a+  US:  a  X@R                  U5      -   $ [	        SU SU S35      eUS:  a  Xg-   S-
  U-  nOUS:  a  Xg-   S-   U-  nO[	        S5      eUS::  a  [	        SU SU SU S35      eXGU R                  U5      -  -   $ )	Nz Missing a non-None stop argumentr   zempty range for randrange()r9   zempty range in randrange(z, )zzero step for randrange())_index_ONEr]   r}   rn   )	r@   startstopstepistartistopwidthistepr   s	            rB   r)   Random.randrange'  s    < 4 BCCzv..:;; ttA:qy 6668r$qIJJ 19"u,AQY"u,A89968r$r$qQRR 2222rE   c                 *    U R                  XS-   5      $ Nr9   )r)   r@   r_   bs      rB   r'   Random.randintP  s     ~~a1%%rE   c                 p    [        U5      (       d  [        S5      eXR                  [        U5      5         $ )Nz$Cannot choose from an empty sequence)rQ   
IndexErrorr}   )r@   seqs     rB   r   Random.choiceY  s/    
 3xxCDD??3s8,--rE   c                     U R                   n[        [        S[        U5      5      5       H  nU" US-   5      nX   X   sX'   X'   M     g r   )r}   reversedrangerQ   )r@   rA   	randbelowijs        rB   r-   Random.shuffleb  sH     OO	%3q6*+A!a% AqtJAD!$ ,rE   )countsc                   [        U[        5      (       d  [        S5      e[        U5      nUb  [	        [        U5      5      n[        U5      U:w  a  [        S5      eU(       a  UR                  5       OSn[        U[        5      (       d  [        S5      eUS:  a  [        S5      eU R                  [        U5      US9n[        nU V	s/ s H  oU" XY5         PM     sn	$ U R                  n
SUs=::  a  U::  d  O  [        S5      eS /U-  nSnUS	:  a  US
[        [        US-  S
5      5      -  -  nXL::  a;  [	        U5      n[        U5       H  nU
" XN-
  5      nX   X'   XU-
  S-
     X'   M!     U$ [        5       nUR                   n[        U5       H/  nU
" U5      nUU;   a  U
" U5      nUU;   a  M  U" U5        X   X'   M1     U$ s  sn	f )NzAPopulation must be a sequence.  For dicts or sets, use sorted(d).z2The number of counts does not match the populationr   zCounts must be integerszCounts must be non-negative)r   z,Sample larger than population or is negative      r2   r<   r9   )rK   	_Sequencer]   rQ   list_accumulatern   poprX   r*   r   _bisectr}   _ceil_logsetadd)r@   
populationr   r   r   
cum_countstotal
selectionsr   sr   resultsetsizepoolr   r   selectedselected_adds                     rB   r*   Random.samplek  s   j *i00 @ A A
Ok&12J:!# !UVV(2JNN$EeS)) 9::qy !>??U5\Q7JF?IJz!vj45zJJOO	A{{KLL!q5qE$q1ua.111G< 
#D1Xae$ G	1uqy/   uH#<<L1XaL8m!!A 8mQ&M	  3 Ks   
G	)cum_weightsr   c          
         U R                   n[        U5      nUcQ  Uc8  [        nUS-  n[        S U5       Vs/ s H  oU" U" 5       U-  5         PM     sn$  [	        [        U5      5      nOUb  [        S5      e[        U5      U:w  a  [        S5      eUS   S-   n	U	S::  a  [        S5      e[        U	5      (       d  [        S5      e[        n
US-
  n[        S U5       Vs/ s H  nX" X5" 5       U	-  S	U5         PM     sn$ s  snf ! [         a)    [        U[        5      (       d  e Un[        SU< 35      S ef = fs  snf )
N        z4The number of choices must be a keyword argument: k=z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationrH   z*Total of weights must be greater than zerozTotal of weights must be finiter9   r   )r(   rQ   r   _repeatr   r   r]   rK   rX   rn   	_isfiniter   )r@   r   weightsr   r   r(   r   r   r   r   r   his               rB   r   Random.choices  sj    
OSAHqAQRAQA5A#67AQRR";w#78  PQQ{q RSSB#%C<IJJ>??U q)+)A 6+vx%/?BGH)+ 	++ S  !'3//KM	$+s   DD !D=3D:c                 2    XU-
  U R                  5       -  -   $ r>   r(   r   s      rB   r/   Random.uniform  s     ET[[]***rE   c                     U R                  5       n Uc  SOX1-
  X!-
  -  nXE:  a  SU-
  nSU-
  nX!p!XU-
  [        XE-  5      -  -   $ ! [         a    Us $ f = f)N      ?r5   )r(   ZeroDivisionError_sqrt)r@   lowhighmodeura   s         rB   r.   Random.triangular  st     KKM	|$*)DA 5aAaASjE!%L000 ! 	J	s   A AAc                     U R                   n U" 5       nSU" 5       -
  n[        US-
  -  U-  nXf-  S-  nU[        U5      * ::  a  OM:  XU-  -   $ )Nr5   r   r4   )r(   NV_MAGICCONSTr   )r@   musigmar(   u1u2zzzs           rB   r$   Random.normalvariate  sc     BvxBc*R/ABd2hY  I~rE   c                     U R                   nU R                  nS U l        UcN  U" 5       [        -  n[        S[	        SU" 5       -
  5      -  5      n[        U5      U-  n[        U5      U-  U l        XU-  -   $ )Ng       r5   )r(   r?   TWOPIr   r   _cos_sin)r@   r   r   r(   r   x2pig2rads          rB   r    Random.gauss+  sr    6 OO98e#D$cFHn!556ET
U"A"4j50DOI~rE   c                 6    [        U R                  X5      5      $ r>   )_expr$   )r@   r   r   s      rB   r#   Random.lognormvariateQ  s     D&&r122rE   c                 B    [        SU R                  5       -
  5      * U-  $ Nr5   )r   r(   )r@   lambds     rB   r   Random.expovariate[  s"    $ S4;;=())E11rE   c                    U R                   nUS::  a  [        U" 5       -  $ SU-  nU[        SXD-  -   5      -   n U" 5       n[        [        U-  5      nXuU-   -  nU" 5       n	U	SX-  -
  :  d  U	SU-
  [        U5      -  ::  a  OMJ  SU-  n
X-   SX-  -   -  nU" 5       nUS:  a  U[        U5      -   [        -  nU$ U[        U5      -
  [        -  nU$ )Ngư>r   r5   )r(   r   r   r   _pir   _acos)r@   r   kappar(   r   r   r   r   dr   qfu3thetas                 rB   r0   Random.vonmisesvariateo  s      D=68##%KcAEk""BS2XAUABC!%K2#'T!W)<#<  !GUsQU{#X8%(]e+E  %(]e+ErE   c                    US::  d  US::  a  [        S5      eU R                  nUS:  a  [        SU-  S-
  5      nU[        -
  nX-   n U" 5       nSUs=:  a  S:  d  O  M  SU" 5       -
  n[	        USU-
  -  5      U-  n	U[        U	5      -  n
Xw-  U-  nXVU	-  -   U
-
  nU[        -   SU-  -
  S:  d  U[	        U5      :  a  X-  $ M}  US:X  a  [	        SU" 5       -
  5      * U-  $  U" 5       n[        U-   [        -  nX-  nUS::  a	  USU-  -  n
O[	        X-
  U-  5      * n
U" 5       nUS:  a  XzUS-
  -  ::  a   X-  $ OU[        U
* 5      ::  a   X-  $ Mp  )Nr   z*gammavariate: alpha and beta must be > 0.0r5   r3   gHz>gP?r6   )rn   r(   r   LOG4r   r   SG_MAGICCONST_e)r@   alphabetar(   ainvbbbcccr   r   vrA   r   r   r   r   ps                   rB   r   Random.gammavariate  s   ( C<43;IJJ3; us*+D$,C,CXb,9,68^sRx)D0DGOGbL'MA%}$sQw.#5d1g8O  c\vx((4//
 H%Z2%E8cEk*Aquo..AXs753;// 8O	 048^8O rE   c                 d    U R                  US5      nU(       a  X3U R                  US5      -   -  $ g)Nr5   r   )r   )r@   r  r  ys       rB   r   Random.betavariate  s7    6 eS)D--dC8899rE   c                 8    SU R                  5       -
  nUSU-  -  $ )Nr5   g      r   )r@   r  r   s      rB   r%   Random.paretovariate  s#     $++-TE\""rE   c                 R    SU R                  5       -
  nU[        U5      * SU-  -  -  $ r   )r(   r   )r@   r  r  r   s       rB   r1   Random.weibullvariate  s.     $++-acDj111rE   c                    US:  a  [        S5      eUS::  d  US:  a  US:X  a  gUS:X  a  U$ [        S5      eU R                  nUS:X  a  [        U" 5       U:  5      $ US:  a  XR                  USU-
  5      -
  $ X-  S:  aK  S=pE[	        SU-
  5      nU(       d  U$  U[        [	        U" 5       5      U-  5      S-   -  nXQ:  a  U$ US-  nM0  S
n[        X-  SU-
  -  5      nSSU-  -   n	SSU	-  -   SU-  -   n
X-  S-   nSSU	-  -
  n U" 5       nUS-  nS[        U5      -
  n[        SU
-  U-  U	-   U-  U-   5      nUS:  d  X:  a  MB  U" 5       nUS:  a  X::  a  U$ U(       dO  SSU	-  -   U-  n[        USU-
  -  5      n[        US-   U-  5      n[        US-   5      [        UU-
  S-   5      -   nS	nUWXU-  -  U	-   -  -  n[        U5      W[        US-   5      -
  [        X-
  S-   5      -
  UW-
  W-  -   ::  a  U$ M  )Nr   zn must be non-negativer   r5   z&p must be in the range 0.0 <= p <= 1.0r9   r   g      $@TFgffffff?g=
ףp=@gEJYga+e?{Gz?gq=
ףp?g@r3   gQ?gp=
ף@gffffff@)
rn   r(   r   r   _log2r   r   _fabsr   _lgamma)r@   r   r  r(   rA   r  ra   setup_completespqr   r_   vrr   usr   r  r  lpqmhs                       rB   r   Random.binomialvariate  sg   " q55668qCxCxCxEFF 6&(Q,'' s7++AsQw77754< IAcAgAVE&(Oa/01445HQ	  AES1W%&4#:fqj 4!8+ECKC!G^AHAuQxBa"q(A-12A1u ATzag
 "a3.1a=)AEQ;'AENWQUQY%77!%!Bw-!+,,AAw!ga!en,wquqy/AAQUcMQQ5 rE   )r?   r>   )Nr8   )r   r5   Nr   r5   )r5   )r9   r   )'__name__
__module____qualname____firstlineno__re   rC   r+   r"   r,   rt   rw   rz   r   r   BPFr   r}   r&   r   r)   r'   r   r-   r*   r   r/   r.   r$   r    r#   r   r0   r   r   r%   r1   r   __static_attributes____classcell__)rb   s   @rB   r   r   g   s     G.`A6B3( 9:3 '( -J= %)t '3R&.$ /3 ]~#+tq #+P	+12*$L32((TCJ@#	2V VrE   r   c                   :    \ rS rSrS rS rS rS rS r\=r	r
Srg)	r   ip  c                 R    [         R                  [        S5      5      S-	  [        -  $ )NrG   r<   )rX   rY   _urandom	RECIP_BPFrs   s    rB   r(   SystemRandom.randomy  s    x{+q0I==rE   c                     US:  a  [        S5      eUS-   S-  n[        R                  [        U5      5      nX2S-  U-
  -	  $ )Nr   z#number of bits must be non-negativerG   r   )rn   rX   rY   r-  )r@   r   numbytesrA   s       rB   r!   SystemRandom.getrandbits}  sG    q5BCCEa<NN8H-.\A%&&rE   c                     [        U5      $ r>   )r-  r   s     rB   r&   SystemRandom.randbytes  s     {rE   c                     g r>   ri   r@   argskwdss      rB   r+   SystemRandom.seed  s    rE   c                     [        S5      e)Nz*System entropy source does not have state.)NotImplementedErrorr6  s      rB   _notimplementedSystemRandom._notimplemented  s    !"NOOrE   ri   N)r$  r%  r&  r'  r(   r!   r&   r+   r<  r"   r,   r)  ri   rE   rB   r   r   p  s(    >'P *)HxrE   r   c                 4   SSK JnJn  SSKJn  U" 5       n[        S U 5       Vs/ s H  oq" U6 PM	     nnU" 5       n	U" U5      n
U" X5      n[        U5      n[        U5      n[        X-
  S SU  SUR                   U< 35        [        SXX4-  5        g s  snf )Nr   )stdevfmean)perf_counterz.3fz sec, z times z"avg %g, stddev %g, min %g, max %g
)

statisticsr?  r@  timerA  r   minmaxprintr$  )r   funcr7  r?  meanrA  t0r   datat1xbarr   r   r   s                 rB   _test_generatorrM    s    /!	B!(q!12!1AD$K!1D2	B:D$E
d)Ct9D	RWSMs'$--
AB	
/42J
JK 3s   Bc                 h   [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [
        S5        [        U [
        S5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S	5        [        U [        S
5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S5        [        U [        S5        g )Nri   r#  )   g333333?)d   g      ?)r  r5   )皙?r5   )rQ  r3   )r   r5   )g?r5   )r5   r5   )r3   r5   )g      4@r5   )g      i@r5   )      @rR  )r   r5   gUUUUUU?)
rM  r(   r$   r#   r0   r   r   r    r   r.   )Ns    rB   _testrT    s    Avr"A}j1A~z2A
3A
3A4A|[1A|Z0A|Z0A|Z0A|Z0A|Z0A|Z0A|[1A|\2Auj)A{J/Az#89rE   fork)after_in_childarg_listc                    SS K nUR                  UR                  S9nUR                  5       nUR	                  SSSSS9  UR	                  SS	[
        S
SS9  UR	                  SS[        S
SS9  UR	                  S[
        SSUR                  S9  UR	                  SSSS9  UR                  U 5      nXBR                  5       4$ )Nr   )formatter_classz-cz--choice+zprint a random choice)nargshelpz-iz	--integerrS  z0print a random integer between 1 and N inclusive)r[   metavarr\  z-fz--floatz>print a random floating-point number between 0 and N inclusivez--test'  ?)r[   constr[  r\  input*zif no options given, output depends on the input
    string or multiple: same as --choice
    integer: same as --integer
    float: same as --float)
argparseArgumentParserRawTextHelpFormatteradd_mutually_exclusive_groupadd_argumentrX   r\   SUPPRESS
parse_argsformat_help)rW  rc  parsergroupr7  s        rB   _parse_argsrm    s    $$ 55 % 7F//1E	j$  & 
kS?  A 
ieSM  O 
s&    s   X&D##%%%rE   returnc                    [        U 5      u  pUR                  (       a  [        UR                  5      $ UR                  b  [        SUR                  5      $ UR                  b  [        SUR                  5      $ UR                  (       a  [        UR                  5        g[        UR                  5      S:X  a'  UR                  S   n [        U5      n[        SU5      $ [        UR                  5      S:  a  [        UR                  5      $ U$ ! [         aF     [	        U5      n[        SU5      s $ ! [         a    [        UR                  5       5      s s $ f = ff = f)Nr9   r    r8   )rm  r   integerr'   r\   r/   testrT  rQ   ra  rX   rn   split)rW  r7  	help_textvals       rB   mainrv    s   !(+OD {{dkk""||q$,,''zzq$**%%yydii 4::!jjm	+c(C1c?" 4::!djj!!  	++Cjq#& +ciik**+	+s0   
D 
E!D52E!5#EE!EE!__main__)r^  r>   )_mathr   r   r   r   r   r   r   r  r   r   r   r   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r  r   r  r   r  osr   r-  _collections_abcr   r   operatorr   r   	itertoolsr   r   r   r   r   r   _os_random__all__r   r  r  r(  r.  r   rS   r   r   _instr+   r(   r/   r.   r'   r   r)   r*   r-   r   r$   r#   r   r0   r   r    r   r   r%   r1   r"   r,   r!   r&   rM  rT  hasattrregister_at_forkr   rL   rm  rX   rv  r$  rF  ri   rE   rB   <module>r     s  j M L G G E E @ @ " 2 $ B $  : DJs+Cyd3i#I	
BW^^ BR"*6 "*X 	zz	
--

--	OO		
--
--##%%''!!''##%%>>>>OO	L":0 3

3&$s)d* &6$49t# $sSy $N z	$&M rE   