Ë
    V.j	  ã                   ó  — d Z ddlZddlmZ ddlZddlZdededdfd„Z	dededefd	„Z
d
gZedk(  rQ ed«       ddlZ ed«      D ]1  Z ej"                  «       \  ZZer nedz  dk(  sŒ$esŒ' edez  «       Œ3  ed«       yy)z„Functions for parallel computation on multiple cores.

Introduced in Python-RSA 3.1.

.. note::

    Requires Python 2.6 or newer.

é    N)Ú
ConnectionÚnbitsÚpipeÚreturnc                 ó¦   — 	 t         j                  j                  | «      }t         j                  j	                  |«      r|j                  |«       y ŒQ)N)ÚrsaÚrandnumÚread_random_odd_intÚprimeÚis_primeÚsend)r   r   Úintegers      úNC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\rsa/parallel.pyÚ_find_primer       sA   € Ø
Ü—+‘+×1Ñ1°%Ó8ˆô �9‰9×Ñ˜gÔ&Ø�I‰I�gÔØð ó    Úpoolsizec                 ó°  — t        j                  d¬«      \  }}	 t        |«      D �cg c]  }t        j                  t        | |f¬«      ‘Œ! }}|D ]  }|j                  «        Œ |j                  «       }|j                  «        |j                  «        |D ]  }|j                  «        Œ |S c c}w # |j                  «        |j                  «        w xY w)aU  Returns a prime number that can be stored in 'nbits' bits.

    Works in multiple threads at the same time.

    >>> p = getprime(128, 3)
    >>> rsa.prime.is_prime(p-1)
    False
    >>> rsa.prime.is_prime(p)
    True
    >>> rsa.prime.is_prime(p+1)
    False

    >>> from rsa import common
    >>> common.bit_size(p) == 128
    True

    F)Úduplex)ÚtargetÚargs)	ÚmpÚPipeÚrangeÚProcessr   ÚstartÚrecvÚcloseÚ	terminate)r   r   Ú	pipe_recvÚ	pipe_sendÚ_ÚprocsÚpÚresults           r   Úgetprimer%   *   s·   € ô&  ŸW™W¨EÔ2Ñ€Y�	ð	ÜRWÐX`ÔRaÓbÑRaÈQ”—‘¤;°e¸YÐ5GÖHÐRaˆÐbãˆAØ�G‰G�Ið ð —‘Ó!ˆà�‰ÔØ�‰Ôó ˆØ	�‰�ð ð €Mùò cøð 	�‰ÔØ�‰Õús   ›B3 ¨$B.Á)B3 Â.B3 Â3"Cr%   Ú__main__z'Running doctests 1000x or until failureéd   é
   z%i timeszDoctests done)Ú__doc__Úmultiprocessingr   Úmultiprocessing.connectionr   Ú	rsa.primer   Úrsa.randnumÚintr   r%   Ú__all__Ú__name__ÚprintÚdoctestr   ÚcountÚtestmodÚfailuresÚtests© r   r   Ú<module>r8      sº   ðñó Ý 1ã Û ð�sð  *ð °ó ð%�Cð % 3ð %¨3ó %ðP ˆ,€àˆzÒÙ	Ð
3Ô4Ûá�s–ˆØ+˜GŸO™OÓ-Ñˆ�5ÙÙà�2‰:˜‹?šuÙ�*˜uÑ$Õ%ð ñ 
ˆ/Õð r   