o
    n~b3v                    @   s   d dl Z d dlZd dlZd dlmZ d dlmZ dZdd Zdd Z	d$dd	Z
d$d
dZd$ddZdd Zdd Zd$ddZd$ddZd%ddZd&ddZd dlZd'ddZdd Zd dlZd'dd Zd!d" Zd#ZdS )(    N)Random)
iter_rangec                 C   sP   |dkrt  | dk s|dk rtdt| |\}}| dkr&|dkr&|d7 }|S )zDReturn ceil(n/d), that is, the smallest integer r such that r*d >= nr   zNon positive values   )ZeroDivisionError
ValueErrordivmod)ndrq r   A/usr/local/lib/python3.10/dist-packages/Cryptodome/Util/number.pyceil_div%   s   r   c                 C   s0   | dk rt dd}| |? r|d7 }| |? s|S )z)Returns the size of the number N in bits.r   z4Size in bits only avialable for non-negative numbersr   )r   )Nbitsr   r   r   size2   s   r   c                 C   sZ   |du rt j}|| d? }| d }|dkr't|dd| ? }td|| }t|}|S )a:  Return a random number at most N bits long.

    If :data:`randfunc` is omitted, then :meth:`Random.get_random_bytes` is used.

    .. deprecated:: 3.0
        This function is for internal use only and may be renamed or removed in
        the future. Use :func:`Cryptodome.Random.random.getrandbits` instead.
    N      r   r   B)r   get_random_bytesordstructpackbytes_to_long)r   randfuncSZodd_bitsZ	rand_bitsvaluer   r   r   getRandomInteger>   s   
r   c                 C   s@   ||  d }t |}t||}||krt||}||ks| | S )a=  Return a random number *n* so that *a <= n < b*.

    If :data:`randfunc` is omitted, then :meth:`Random.get_random_bytes` is used.

    .. deprecated:: 3.0
        This function is for internal use only and may be renamed or removed in
        the future. Use :func:`Cryptodome.Random.random.randrange` instead.
    r   )r   r   )abr   Zrange_r   r   r   r   r   getRandomRangeS   s   


r    c                 C   s2   t | d |}|d| d  O }t|| ksJ |S )a8  Return a random number with exactly N-bits,
    i.e. a random number between 2**(N-1) and (2**N)-1.

    If :data:`randfunc` is omitted, then :meth:`Random.get_random_bytes` is used.

    .. deprecated:: 3.0
        This function is for internal use only and may be renamed or removed in
        the future.
    r      )r   r   )r   r   r   r   r   r   getRandomNBitIntegerd   s   r"   c                 C   s2   t | } t |}| dkr||  | } }| dks|S )z<Greatest Common Denominator of :data:`x` and :data:`y`.
    r   )abs)xyr   r   r   GCDt   s
   r&   c                 C   sj   | |}}d\}}|dkr'|| }||||  }}||||  }}|dks|dk r3|| }|dk s+|S )z)The inverse of :data:`u` *mod* :data:`v`.)r   r   r   r   )uvu3Zv3u1v1r   r   r   r   inverse}   s   
r,   c                 C   sl   |du rt j}| dk rtdt| |dB }t||ds4|d }|d| > kr.d| d > dB }t||dr|S )zReturn a random N-bit prime number.

    N must be an integer larger than 1.
    If randfunc is omitted, then :meth:`Random.get_random_bytes` is used.
    Nr!   zN must be larger than 1r   )r   )r   r   r   r"   isPrime)r   r   numberr   r   r   getPrime   s   r/   c                 C   s  | dk s
| d@ dkr| dkS | d }d}|}|d@ dkr*|d7 }|dL }|d@ dksg }t t|| d D ]N}td| |}||v rKtd| |}||v sA|| t||| }	|	dks^|	|kr_q5d}
t |D ]}|	|	 |  }	|	dkru  dS |	|kr}d}
 nqe|
r dS q5dS )as  _rabinMillerTest(n:long, rounds:int, randfunc:callable):int
    Tests if n is prime.
    Returns 0 when n is definitely composite.
    Returns 1 when n is probably prime.
    Returns 2 when n is definitely prime.

    If randfunc is omitted, then Random.new().read is used.

    This function is for internal use only and may be renamed or removed in
    the future.
    r   r   r   r!   )r   minr    appendpow)r   roundsr   Zn_1r   mZtestedir   z	compositer
   r   r   r   _rabinMillerTest   s@   
r8   ư>c                 C   sz  |du rt j}tdurtt| t|||S | dk s!| d dkr%tdttt	| t	d }| d d? }dd	d
d|    d }ddd|  > d }t
|||}ddg}	dD ]Y}
td|}dgd tt }tD ]}|| }t|| | t||D ]}d||< qqod}tt|D ]}|| }|rq|| }t||}|dkr||	|
<  nq|dkrtdq]t|	d |	d |	d  }t|	d |	d |	d  }|| }|	d |	d  }||||   }	 d}tD ]}|| dkrd} nq|r|r|d@ rt||d dkrd}nt||d d	 dkrd}|r-t||}|dkr-	 |S ||7 }|d| > kr<tdq)a\  
    Return a random strong *N*-bit prime number.
    In this context, *p* is a strong prime if *p-1* and *p+1* have at
    least one large prime factor.

    Args:
        N (integer): the exact length of the strong prime.
          It must be a multiple of 128 and > 512.
        e (integer): if provided, the returned prime (minus 1)
          will be coprime to *e* and thus suitable for RSA where
          *e* is the public exponent.
        false_positive_prob (float):
          The statistical probability for the result not to be actually a
          prime. It defaults to 10\ :sup:`-6`.
          Note that the real probability of a false-positive is far less. This is
          just the mathematically provable limit.
        randfunc (callable):
          A function that takes a parameter *N* and that returns
          a random byte string of such length.
          If omitted, :func:`Cryptodome.Random.get_random_bytes` is used.
    Return:
        The new strong prime.

    .. deprecated:: 3.0
        This function is for internal use only and may be renamed or removed in
        the future.
    Ni      r   z&bits must be multiple of 128 and > 512      l   YqSU" r!   i  l     9V r   )r   r   e      z;Couln't find prime in field. Developer: Increase field_size)r   r   	_fastmathgetStrongPrimelongr   intmathceillogr    r"   len
sieve_baser   ranger8   RuntimeErrorr,   r&   )r   efalse_positive_probr   Zrabin_miller_roundsr$   lower_boundupper_boundXpr5   r%   fieldprimeoffsetjresultr7   tmpZtmp1Ztmp2R	incrementZis_possible_primer   r   r   r@      s   & 





r@   c                 C   s   |du rt j}tdurtt| ||S | dk s| d@ dkr"| dkS tD ]}| |kr- dS | | dkr6 dS q$ttt	| t	d }t
| ||S )ac  Test if a number *N* is a prime.

    Args:
        false_positive_prob (float):
          The statistical probability for the result not to be actually a
          prime. It defaults to 10\ :sup:`-6`.
          Note that the real probability of a false-positive is far less.
          This is just the mathematically provable limit.
        randfunc (callable):
          A function that takes a parameter *N* and that returns
          a random byte string of such length.
          If omitted, :func:`Cryptodome.Random.get_random_bytes` is used.

    Return:
        `True` is the input is indeed prime.
    Nr   r   r   r!   r;   )r   r   r?   r-   rA   rG   rB   rC   rD   rE   r8   )r   rK   r   rO   r3   r   r   r   r-   V  s    r-   c                 C   st  | dk s|dk rt dg }tj}|}|dkr.|d|d| d@  | d? } |d8 }|dks|dkrI|d|d| d	@  | d
? } |d8 }|dks2|dkrd|d|d| d@  | d? } |d8 }|dksM| dkryt|dkrrd}|S d|}|S | dkr|d|d| d@  | d? } | dks}|d d|d< d|}|dkrt|d | d | }d|t|  | }|S )a	  Convert a positive integer to a byte string using big endian encoding.

    If :data:`blocksize` is absent or zero, the byte string will
    be of minimal length.

    Otherwise, the length of the byte string is guaranteed to be a multiple
    of :data:`blocksize`. If necessary, zeroes (``\x00``) are added at the left.

    .. note::
        In Python 3, if you are sure that :data:`n` can fit into
        :data:`blocksize` bytes, you can simply use the native method instead::

            >>> n.to_bytes(blocksize, 'big')

        For instance::

            >>> n = 80
            >>> n.to_bytes(2, 'big')
            b'\x00P'

        However, and unlike this ``long_to_bytes()`` function,
        an ``OverflowError`` exception is raised if :data:`n` does not fit.
    r   zValues must be non-negativer   z>Ql    @   r;   >Il        z>B   r           )r   r   r   insertrF   joinlstrip)r   	blocksizerT   r   ZbsrZbresultZ
target_lenr   r   r   long_to_bytes  sH   

rb   c                 C   s   d}t j}tjdd dk r!t| trt| } n	t| tr!|  } t	| }|d r9d|d  }d| |  } || }t
d|dD ]}|d> |d| ||d  d  }q?|S )a  Convert a byte string to a long integer (big endian).

    In Python 3.2+, use the native method instead::

        >>> int.from_bytes(s, 'big')

    For instance::

        >>> int.from_bytes(b' P', 'big')
        80

    This is (essentially) the inverse of :func:`long_to_bytes`.
    r   r   )r!   r<   r;   r;   r\   rZ   rY   )r   unpacksysversion_info
isinstance	bytearraybytes
memoryviewtobytesrF   rH   )saccrc   lengthextrar5   r   r   r   r     s   


$r   c                 C   s   t d t| |S )Nz/long2str() has been replaced by long_to_bytes())warningswarnrb   )r   ra   r   r   r   long2str  s   

rq   c                 C   s   t d t| S )Nz/str2long() has been replaced by bytes_to_long())ro   rp   r   )rk   r   r   r   str2long  s   
rr   ('  r!   r   r>   r<                        %   )   +   /   5   ;   =   C   G   I   O   S   Y   a   r=   g   k   m   q                                                                           i  i  i  i  i  i  i  i%  i3  i7  i9  i=  iK  iQ  i[  i]  ia  ig  io  iu  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i#  i-  i3  i9  i;  iA  iK  iQ  iW  iY  i_  ie  ii  ik  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i)  i+  i5  i7  i;  i=  iG  iU  iY  i[  i_  im  iq  is  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i  i%  i'  i-  i?  iC  iE  iI  iO  iU  i]  ic  ii  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i  i  i  i'  i)  i/  iQ  iW  i]  ie  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i+  i/  i=  iA  iG  iI  iM  iS  iU  i[  ie  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i'  i7  iE  iK  iO  iQ  iU  iW  ia  im  is  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i#  i'  i)  i3  i?  iA  iQ  iS  iY  i]  i_  ii  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i	  i	  i#	  i%	  i+	  i/	  i5	  iC	  iI	  iM	  iO	  iU	  iY	  i_	  ik	  iq	  iw	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i	  i
  i
  i!
  i1
  i9
  i=
  iI
  iW
  ia
  ic
  ig
  io
  iu
  i{
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i
  i  i  i  i  i#  i)  i-  i?  iG  iQ  iW  i]  ie  io  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i/  i1  iA  i[  i_  ia  im  is  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i+  i-  i=  i?  iO  iU  ii  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i!  i'  i/  i5  i;  iK  iW  iY  i]  ik  iq  iu  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i)  i1  iC  iG  iM  iO  iS  iY  i[  ig  ik  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i%  i+  i9  i=  i?  iQ  ii  is  iy  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i'  i-  i9  iE  iG  iY  i_  ic  ii  io  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i)  i+  i1  i7  iA  iG  iS  i_  iq  is  iy  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i'  i-  i7  iC  iE  iI  iO  iW  i]  ig  ii  im  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i/  i3  i;  iE  iM  iY  ik  io  iq  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i)  i+  i7  i=  iA  iC  iI  i_  ie  ig  ik  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i  i  i  i%  i3  i9  i=  iE  iO  iU  ii  im  io  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i#  i'  i3  iA  i]  ic  iw  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i5  i7  i;  iC  iI  iM  iU  ig  iq  iw  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i1  i3  iE  iI  iQ  i[  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i#  i-  i/  i5  i?  iM  iQ  ii  ik  i{  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i%  i/  i1  i7  i;  iA  iG  iO  iU  iY  ie  ik  is  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i'  i+  i-  i3  i=  iE  iK  iO  iU  is  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i!  i#  i5  i9  i?  iA  iK  iS  i]  ic  ii  iq  iu  i{  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i+  i/  i=  iI  iM  iO  im  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i9  iI  iK  iQ  ig  iu  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i   i   i'   i)   i-   i3   iG   iM   iQ   i_   ic   ie   ii   iw   i}   i   i   i   i   i   i   i   i   i   i   i   i   i   i!  i!  i5!  iA!  iI!  iO!  iY!  i[!  i_!  is!  i}!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i"  i	"  i"  i"  i!"  i%"  i+"  i1"  i9"  iK"  iO"  ic"  ig"  is"  iu"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i"  i#  i	#  i#  i'#  i)#  i/#  i3#  i5#  iE#  iQ#  iS#  iY#  ic#  ik#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i#  i$  i$  i$  i$  i)$  i=$  iA$  iC$  iM$  i_$  ig$  ik$  iy$  i}$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i$  i%  i%  i%  i%  i'%  i1%  i=%  iC%  iK%  iO%  is%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i%  i&  i&  i&  i&  i'&  i)&  i5&  i;&  i?&  iK&  iS&  iY&  ie&  ii&  io&  i{&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i&  i'  i'  i5'  i7'  iM'  iS'  iU'  i_'  ik'  im'  is'  iw'  i'  i'  i'  i'  i'  i'  i'  i'  i'  i'  i'  i'  i'  i(  i(  i(  i(  i(  i(  i!(  i1(  i=(  i?(  iI(  iQ(  i[(  i](  ia(  ig(  iu(  i(  i(  i(  i(  i(  i(  i(  i(  i(  i(  i(  i(  i)  i)  i)  i!)  i#)  i?)  iG)  i])  ie)  ii)  io)  iu)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i)  i*  i*  i*  i%*  i/*  iO*  iU*  i_*  ie*  ik*  im*  is*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i*  i+  i'+  i1+  i3+  i=+  i?+  iK+  iO+  iU+  ii+  im+  io+  i{+  i+  i+  i+  i+  i+  i+  i+  i+  i+  i+  i+  i+  i+  i	,  i,  i,  i#,  i/,  i5,  i9,  iA,  iW,  iY,  ii,  iw,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i,  i-  i-  i-  i;-  iC-  iI-  iM-  ia-  ie-  iq-  i-  i-  i-  i-  i-  i-  i-  i-  i-  i-  i.  i.  i.  i.  i.  i.  i%.  i-.  i3.  i7.  i9.  i?.  iW.  i[.  io.  iy.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i.  i/  i	/  i/  i/  i'/  i)/  iA/  iE/  iK/  iM/  iQ/  iW/  io/  iu/  i}/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i/  i0  i0  i#0  i)0  i70  i;0  iU0  iY0  i[0  ig0  iq0  iy0  i}0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i0  i1  i	1  i1  i!1  i'1  i-1  i91  iC1  iE1  iK1  i]1  ia1  ig1  im1  is1  i1  i1  i1  i1  i1  i1  i1  i1  i1  i1  i1  i1  i1  i	2  i2  i2  i2  i)2  i52  iY2  i]2  ic2  ik2  io2  iu2  iw2  i{2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i2  i3  i%3  i+3  i/3  i53  iA3  iG3  i[3  i_3  ig3  ik3  is3  iy3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i4  i4  i4  i4  i4  i74  iE4  iU4  iW4  ic4  ii4  im4  i4  i4  i4  i4  i4  i4  i4  i4  i4  i4  i4  i4  i4  i	5  i5  i5  i-5  i35  i;5  iA5  iQ5  ie5  io5  iq5  iw5  i{5  i}5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i5  i6  i6  i6  i#6  i16  i56  i76  i;6  iM6  iO6  iS6  iY6  ia6  ik6  im6  i6  i6  i6  i6  i6  i6  i6  i6  i6  i6  i6  i7  i7  i7  i7  i?7  iE7  iI7  iO7  i]7  ia7  iu7  i7  i7  i7  i7  i7  i7  i7  i7  i7  i7  i7  i8  i8  i!8  i38  i58  iA8  iG8  iK8  iS8  iW8  i_8  ie8  io8  iq8  i}8  i8  i8  i8  i8  i8  i8  i8  i8  i8  i8  i8  i8  i8  i9  i9  i#9  i%9  i)9  i/9  i=9  iA9  iM9  i[9  ik9  iy9  i}9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i9  i:  i:  i:  i:  i':  i+:  i1:  iK:  iQ:  i[:  ic:  ig:  im:  iy:  i:  i:  i:  i:  i:  i:  i:  i:  i:  i:  i:  i;  i;  i;  i!;  i#;  i-;  i9;  iE;  iS;  iY;  i_;  iq;  i{;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i;  i<  i<  i<  i<  i<  i)<  i5<  iC<  iO<  iS<  i[<  ie<  ik<  iq<  i<  i<  i<  i<  i<  i<  i<  i<  i<  i<  i<  i<  i=  i=  i=  i=  i=  i!=  i-=  i3=  i7=  i?=  iC=  io=  is=  iu=  iy=  i{=  i=  i=  i=  i=  i=  i=  i=  i=  i=  i=  i=  i=  i>  i	>  i>  i>  i>  i#>  i)>  i/>  i3>  iA>  iW>  ic>  ie>  iw>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i>  i?  i?  i7?  i;?  i=?  iA?  iY?  i_?  ie?  ig?  iy?  i}?  i?  i?  i?  i?  i?  i?  i?  i?  i?  i?  i?  i@  i!@  i%@  i+@  i1@  i?@  iC@  iE@  i]@  ia@  ig@  im@  i@  i@  i@  i@  i@  i@  i@  i@  i@  i@  i@  i@  i	A  iA  iA  iA  i!A  i3A  i5A  i;A  i?A  iYA  ieA  ikA  iwA  i{A  iA  iA  iA  iA  iA  iA  iA  iA  iA  iA  iB  iB  iB  iB  i#B  i)B  i/B  iCB  iSB  iUB  i[B  iaB  isB  i}B  iB  iB  iB  iB  iB  iB  iB  iB  iB  iB  iB  iB  iB  iC  iC  iC  i%C  i'C  i3C  i7C  i9C  iOC  iWC  iiC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  iC  i	D  iD  iD  i#D  i)D  i;D  i?D  iED  iKD  iQD  iSD  iYD  ieD  ioD  iD  iD  iD  iD  iD  iD  iD  iD  iD  iD  iD  iD  iD  iE  iE  iE  i+E  i1E  iAE  iIE  iSE  iUE  iaE  iwE  i}E  iE  iE  iE  iE  iE  iE  iE  iE  iE  iE  iE  iE  iF  iF  i	F  iF  i%F  i'F  i3F  i9F  i=F  iCF  iEF  i]F  iyF  i{F  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iF  iG  iG  iG  i#G  i)G  i/G  i5G  i9G  iKG  iMG  iQG  i]G  ioG  iqG  i}G  iG  iG  iG  iG  iG  iG  iG  iG  iG  iG  iG  iG  iG  iH  iH  iH  iH  iH  iH  i1H  i=H  iGH  iUH  iYH  i[H  ikH  imH  iyH  iH  iH  iH  iH  iH  iH  iH  iH  iI  iI  iI  iI  i+I  i7I  i=I  iEI  iUI  icI  iiI  imI  isI  iI  iI  iI  iI  iI  iI  iI  iI  iJ  iJ  iJ  i#J  i9J  iAJ  iEJ  iWJ  i]J  ikJ  i}J  iJ  iJ  iJ  iJ  iJ  iJ  iJ  iJ  iJ  iJ  iJ  iK  iK  iK  iK  iK  i%K  i1K  i;K  iCK  iIK  iYK  ieK  imK  iwK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iK  iL  iL  iL  iL  iL  iL  i!L  i-L  i3L  iKL  iUL  iWL  iaL  igL  isL  iyL  iL  iL  iL  iL  iL  iL  iL  iL  iL  iL  iM  iM  iM  i'M  i)M  i/M  i3M  iAM  iQM  iYM  ieM  ikM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iM  iN  iN  iN  iN  iN  i+N  i5N  i7N  i=N  iON  iSN  i_N  igN  iyN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iN  iO  i	O  iO  i%O  i-O  i?O  iIO  icO  igO  imO  iuO  i{O  iO  iO  iO  iO  iO  iO  iO  iO  iO  iO  iO  iO  iO  iO  iP  iP  iP  i)P  i5P  i?P  iEP  iGP  iSP  iqP  iwP  iP  iP  iP  iP  iP  iP  iP  iP  iP  iP  iP  iQ  iQ  iQ  iQ  iQ  i#Q  i%Q  i5Q  iGQ  iIQ  iqQ  iyQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  iQ  i	R  iR  iR  iR  iR  iR  i'R  iCR  iER  iKR  iaR  imR  isR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iR  iS  iS  i#S  iAS  iES  iGS  iKS  i]S  icS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iS  iT  iT  iT  iT  i5T  i7T  i;T  iAT  iIT  iST  iUT  i_T  iaT  ikT  imT  iqT  iT  iT  iT  iT  iT  iT  iT  iT  iT  iT  iT  iT  iU  iU  iU  i'U  i+U  i9U  i=U  iOU  iQU  i[U  icU  igU  ioU  iyU  iU  iU  iU  iU  iU  iU  iU  iU  iU  iU  iU  iV  iV  iV  iV  i#V  i/V  i3V  i9V  i?V  iKV  iMV  i]V  i_V  ikV  iqV  iuV  iV  iV  iV  iV  iV  iV  iV  iV  iV  iV  iV  iW  iW  iW  iW  iW  iW  i#W  iGW  iMW  i_W  iaW  imW  iwW  i}W  iW  iW  iW  iW  iW  iW  iW  iW  iW  iW  iX  iX  iX  iX  i'X  i+X  i-X  iUX  i[X  i]X  imX  ioX  isX  i{X  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iX  iY  iY  iY  i!Y  iEY  iKY  iMY  iWY  i]Y  iuY  i{Y  iY  iY  iY  iY  iY  iY  iY  iY  iY  iY  iY  iY  iY  iY  iZ  iZ  iZ  iZ  iZ  iZ  i)Z  i/Z  i;Z  iMZ  i[Z  igZ  iwZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  iZ  i[  i[  i[  i[  i%[  i+[  i=[  iI[  iK[  ig[  iy[  i[  i[  i[  i[  i[  i[  i[  i[  i[  i[  i\  i	\  i\  i\  i\  i)\  i/\  i3\  i9\  iG\  iK\  iM\  iQ\  io\  iu\  iw\  i}\  i\  i\  i\  i\  i\  i\  i\  i\  i\  i\  i\  i\  i]  i]  i]  i]  i]  i1]  i=]  iA]  iG]  iO]  iU]  i[]  ie]  ig]  im]  iy]  i]  i]  i]  i]  i]  i]  i]  i]  i]  i]  i]  i]  i]  i^  i^  i^  i^  i!^  i'^  i+^  i-^  i1^  i9^  iE^  iI^  iW^  ii^  is^  iu^  i^  i^  i^  i^  i^  i^  i^  i^  i^  i	_  i_  i'_  i3_  i5_  i;_  iG_  iW_  i]_  ic_  ie_  iw_  i{_  i_  i_  i_  i_  i_  i_  i_  i_  i_  i_  i_  i`  i#`  i/`  i7`  iS`  i_`  ie`  ik`  is`  iy`  i`  i`  i`  i`  i`  i`  i`  i`  i`  i`  i	a  ia  ia  ia  i-a  i9a  iKa  iUa  iWa  i[a  ioa  iya  ia  ia  ia  ia  ia  ia  ia  ia  ia  ia  ia  ia  i	b  ib  ib  i!b  i'b  i;b  iAb  iKb  iQb  iSb  i_b  ieb  ib  ib  ib  ib  ib  ib  ib  ib  ib  ib  ib  ib  ib  ib  ic  ic  ic  ic  i/c  iAc  iCc  iOc  i_c  igc  imc  iqc  iwc  i}c  ic  ic  ic  ic  ic  ic  ic  ic  ic  id  id  i	d  id  i!d  i'd  i+d  i9d  iCd  iId  iOd  i]d  igd  iud  id  id  id  id  id  id  id  id  id  id  id  id  id  ie  ie  i!e  i/e  i9e  i?e  iKe  iMe  iSe  iWe  i_e  iqe  i}e  ie  ie  ie  ie  ie  ie  ie  ie  ie  ie  ie  ie  if  if  if  i)f  i1f  i;f  iAf  iGf  iMf  i[f  iaf  isf  i}f  if  if  if  if  if  if  if  if  if  if  if  if  if  ig  ig  ig  ig  i'g  i1g  i7g  i?g  iEg  iQg  i[g  iog  iyg  ig  ig  ig  ig  ig  ig  ig  ig  ig  ih  i	h  ih  ih  i-h  i9h  i;h  i?h  iEh  iKh  iMh  iWh  iYh  i]h  ich  iih  ikh  iqh  ih  ih  ih  ih  ih  ih  ih  ih  ih  ih  ih  ih  ii  ii  ii  ii  i)i  i/i  iCi  iGi  iIi  iOi  iei  iki  iqi  ii  ii  ii  ii  ii  ii  ii  ii  ii  ii  ii  ii  ii  ii  ij  i+j  i7j  i=j  iKj  igj  iij  iuj  i{j  ij  ij  ij  ij  ij  ij  ij  ij  ij  ik  ik  ik  i#k  i'k  i-k  i9k  iAk  iWk  iYk  i_k  iuk  ik  ik  ik  ik  ik  ik  ik  ik  ik  ik  ik  il  il  i)l  i+l  i1l  i5l  iUl  iYl  i[l  i_l  iel  igl  isl  iwl  i}l  il  il  il  il  il  il  il  il  il  il  il  il  il  il  im  im  i%m  i'm  i+m  i1m  i9m  i?m  iOm  i]m  iam  ism  i{m  im  im  im  im  im  im  im  im  im  im  im  im  in  in  in  i)n  i3n  i;n  iEn  iun  iwn  i{n  in  in  in  in  in  in  in  in  in  in  in  in  io  io  io  io  i/o  i=o  iMo  iSo  iao  ieo  iyo  i}o  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  io  ip  ip  ip  i'p  i3p  i9p  iOp  iQp  iWp  icp  iup  iyp  ip  ip  ip  ip  ip  ip  ip  ip  ip  ip  ip  ip  ip  iq  iq  i!q  i3q  iQq  iYq  i]q  i_q  icq  iiq  iq  iq  iq  iq  iq  iq  iq  iq  iq  iq  iq  iq  iq  ir  ir  ir  ir  i%r  i/r  i;r  iCr  iUr  igr  iqr  iwr  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  ir  is  is  i!s  i+s  i=s  iWs  i[s  ias  is  is  is  is  is  is  is  is  is  is  is  is  is  is  it  it  i-t  i9t  i?t  iAt  i]t  ikt  i{t  it  it  it  it  it  it  it  it  it  it  it  it  iu  iu  i%u  i;u  i=u  iMu  i_u  iku  iwu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iu  iv  iv  i!v  i-v  i3v  i=v  i?v  iUv  icv  iiv  iov  isv  iv  iv  iv  iv  iv  iv  iv  iv  iv  iw  iw  iw  iw  i!w  i-w  i5w  iAw  iKw  iYw  i]w  i_w  iqw  iw  iw  iw  iw  iw  iw  iw  iw  iw  iw  iw  iw  iw  ix  i%x  i+x  i5x  i=x  iSx  iYx  iax  imx  iwx  iyx  ix  ix  ix  ix  ix  ix  ix  ix  ix  ix  ix  ix  ix  iy  iy  i%y  i+y  i9y  i?y  iKy  iWy  i]y  igy  iiy  isy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iy  iz  iz  iz  iz  iz  i#z  i'z  i-z  iKz  iWz  iYz  i_z  iez  iiz  i}z  iz  iz  iz  iz  iz  iz  iz  iz  i{  i{  i{  i{  i+{  i5{  i7{  i;{  iO{  iU{  i_{  iq{  iw{  i{  i{  i{  i{  i{  i{  i{  i{  i{  i{  i{  i{  i{  i|  i|  i|  i1|  i7|  iI|  ig|  ii|  is|  i|  i|  i|  i|  i|  i|  i|  i|  i|  i}  i	}  i}  i}  i3}  i9}  i;}  i?}  iE}  iM}  iS}  iY}  ic}  iu}  iw}  i}  i}  i}  i}  i}  i}  i}  i}  i}  i}  i}  i}  i~  i~  i)~  i+~  i/~  i5~  iA~  iC~  iG~  iU~  ia~  ig~  ik~  iq~  is~  iy~  i}~  i~  i~  i~  i~  i~  i~  i~  i~  i~  i~  i~  i~  i~  i  i  i  i1  i3  i9  i=  iC  iK  i[  ia  ic  im  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i#  i?  iA  iG  iK  ie  iw  i  i  i  i  i  i  i  iɀ  iˀ  i׀  iۀ  i  i  i  i  i  i  i  i  i/  i1  i;  iC  iS  iY  i_  i}  i  i  i  i  i  i  i  i  iǁ  i߁  i  i	  i  i  i%  i1  i3  i?  iC  iE  iI  iO  ia  io  i{  i  i  i  i  i  i  iǂ  iς  iՂ  i߂  i  i  i  i  i  i!  i)  i-  i3  i5  i?  iA  iM  iQ  iS  iW  i]  ie  ii  io  i  i  i  i  i˃  iՃ  i׃  i݃  i  i  i  i  i  i  i  i#  i%  i;  iA  iG  iO  ia  ie  iw  i  i  i  i  i  i  ḯ  i  i  i  i  i	  i  iK  iO  iQ  i]  ic  im  io  i{  i  i  i  i  i  iͅ  iӅ  iՅ  iۅ  i  i  i  i  i  i	  i  i  i!  i/  i9  i?  iA  iM  ic  iu  i}  i  i  i  i  i  i  iÆ  iņ  iφ  iц  i׆  i  i  i  i  i  i  i+  i/  i5  iG  iY  i[  ik  iq  iw  i  i  i  i  i  i  i  iŇ  iǇ  iˇ  i݇  i  i  i  i  i  i!  i7  i=  iC  iQ  ia  ig  i{  i  i  i  i  iψ  iӈ  i  i  i  i  i	  i  i  i  i#  i'  i-  i9  iE  iM  iQ  iW  ic  i  i  i  i  i  iÉ  iω  iщ  iۉ  i  i  i  i  i  i  i#  i5  iA  iI  iO  i[  i_  im  iw  iy  i  i  i  i  i  iǊ  iˊ  i͊  iъ  i׊  i  i  i  i	  i  i  i!  iW  i]  i  i  i  i  i  i  iՋ  iً  iۋ  i  i  i  i  i  i  i  i'  i9  i;  iG  iS  i]  io  i{  i  i  i  i  i  i  i  i  i  iŌ  i݌  i  i  i  i  i  i  i#  i)  i7  iA  i[  i_  iq  iy  i  i  i  i  i  i  iō  iˍ  iӍ  iٍ  iߍ  i  i  i  i  i  i%  iQ  ic  ii  is  iu  iy  i  i  i  i  i  i  i  iǎ  iώ  iӎ  iێ  i  i  i  i  i  i  i#  i-  i?  iE  iK  iS  iY  ie  ii  iq  i  i  i  i  i  i  i  i  i  iɏ  iՏ  i  i  i  i  i  i  i#  i%  i1  i7  i;  iA  iC  iO  iS  im  is  i  i  i  i  i  i  i  i  iŐ  iߐ  i  i  i  i  i'  i3  i=  iE  iO  iQ  ia  ig  i{  i  i  i  i  i  i  iɑ  iّ  iۑ  i  i  i  i  i  i  i!  i/  iA  iG  iW  ik  iq  iu  i}  i  i  i  i  i  i  i  i  i  iÒ  iŒ  i˒  iՒ  iג  i  i  i  i  i  i  i  i;  i=  iC  iU  is  i  i  i  i  i  iǓ  iד  iݓ  i  i  i  i  i	  i  i?  iE  iK  iO  ic  ig  ii  im  i{  i  i  i  i  iÔ  i  i  i  i	  i  i!  i'  i-  i5  i9  iK  iW  i]  i_  iu  i  i  i  i  i  i  i  i  i  i  iϕ  i  i  i  i  i/  i1  i5  i;  i=  ie  i  i  i  i  i  i  i˖  iі  iӖ  i  i  i  i  i  i  i  i%  i+  i3  i7  i9  iC  iI  iQ  i[  i]  io  i  i  i  i  i  i  i×  i͗  iӗ  iٗ  i  i  i  i	  i  i  i)  i/  i;  iA  iQ  ik  io  i  i  i  i  i  i  i  iØ  iɘ  iϘ  iݘ  i  i  i  i  i  i  i  i)  i1  i;  i=  iA  iG  iI  iS  i}  i  i  i  i  i  i  i  iǙ  i˙  i͙  iי  i  i  i  i  i  i  i%  iK  iO  iU  iW  ia  iu  i  i  i  i  i  iÚ  iǚ  iϚ  i  i  i  i  i  i  i'  i/  i5  iE  iQ  iY  ic  io  iw  i  i  i  i  i  i  i  i  i  iś  i˛  iϛ  iݛ  i  i  i  i#  i+  i/  i5  iI  iM  i_  ie  ig  i  i  i  i  i  i  i  i  iל  iٜ  i  i  i  i  i  i  i'  i-  i1  i=  iU  i[  ia  i  i  i  i  iÝ  i  i  i  i  i  i  i#  i'  i-  i3  i;  iG  iQ  iS  i_  io  i  i  i  i  i  i  i  i  i  i  i  i  i#  i/  i7  i;  iC  iS  ia  im  is  iw  i}  i  i  i  i  i  i  i  i  iǟ  iߟ  i  i  i  i  i  i!  i3  i9  i?  iO  iW  i[  ia  iu  iy  i  i  i  i  i  i  iɠ  i٠  i۠  iߠ  i  i  i  i  i  i  i  i  i  i)  i/  i5  iA  iS  iu  i}  i  i  i  i  i  i  iá  iš  i  i  i  i  i  i#  i)  i/  i1  iC  iG  iM  ik  iy  i}  i  i  i  i  i  i  i  i  i  i  iŢ  iѢ  iע  i  i  i	  i  i!  i+  i1  iI  iQ  iU  is  iy  i{  i  i  i  i  i  i  i  iǣ  iգ  iۣ  i  i  i  i  i  i  i  i  i!  i#  i'  i;  iM  iW  iY  ic  ii  iu  i  i  i  i  iä  iŤ  iˤ  iѤ  iդ  i  i  i  i  i  i  i)  i+  i5  i;  iC  iS  i[  ia  im  iw  i  i  i  i  i  i  i  i  iť  i˥  iӥ  i٥  iݥ  iߥ  i  i  i  i  i  i  i%  i=  iI  iK  iQ  i]  is  i  i  i  i  i  i  i  iɦ  iͦ  iϦ  iզ  iߦ  i  i  i  i  i  i  i#  i)  i-  iE  iM  iW  iY  ie  ik  io  i  i  i  i  i  i  iɧ  iѧ  iק  i  i  i  i  i  i  i)  i+  i7  i;  iU  i_  im  i}  i  i  i  i  i  iǨ  iר  i  i  i  i  i  i1  i7  i9  iC  i  i  i  i  i  i  i  i  i  i٩  iߩ  i  i  i  i  i5  i9  i;  iG  iM  iW  iY  i]  ik  iq  i  i  i  i  i  i  iŪ  iɪ  i  i  i  i  i  i  i  i  i  iM  i[  iq  is  i  i  i  i  i  i  i  iū  iӫ  i׫  iݫ  i  i  i  i  i	  i  i  i'  i7  i9  iE  iO  iW  i[  ia  ic  i  i  i  i  i  i  i  i  i٬  i  i  i  i  i  i  i  i  i?  iE  iS  i]  i_  ie  i  i  i  ií  i˭  iѭ  iխ  iۭ  i  i  i  i  i  i  i  i#  i+  iI  iM  iO  iY  ia  ig  ik  iq  i  i  i  i  i  i  iŮ  iѮ  i  i  i  i  i  i	  i  i'  i+  i3  iC  iO  iW  i]  im  iu  i  i  i  i  i  i  i  i  iϯ  iկ  i  i  i  i  i?  iA  iG  iK  iQ  iS  ii  i{  i}  i  i  i  i  i˰  iϰ  i  i  i  i  i  i  i  i  i  i  i1  iA  iM  i[  ie  is  iy  i  i  i  i  i  iӱ  iݱ  i  i  i  i  i  i  i  i-  i?  iI  i[  ic  ii  im  i{  i  i  i  i  i  iò  iǲ  iӲ  i  i  i  i  i	  i  i  i'  i-  i?  iE  iw  i}  i  i  i  i  i  ių  i˳  i  i  i  i  i  i  i  i  i5  i=  iC  iI  i[  ie  ig  ik  iw  i  i  i  i  i  i  iǴ  iݴ  i  i  i  i  i  i  i-  i?  iK  ig  ii  io  is  iy  i  i  i  i  i  i  i  iյ  iߵ  i  i  i  i  i	  i  i)  i/  i3  i9  iG  iW  iY  i_  ic  io  i  i  i  i  i  i  i  i׶  i۶  i  i  i  i  i  i  i  i  i)  i5  iG  iU  im  i  i  i  i  i˷  iѷ  iӷ  i  i  i  i  i  i  i!  i'  i+  i-  i9  iU  ig  iu  i  i  i  i  i  i  i  iǸ  i͸  iո  i  i  i  i  i  i  i  i/  i9  i;  iG  iQ  ic  i  i  i  i  i  i  i  i  i  i˹  iѹ  iݹ  i  i  i  i  i  i  i%  i)  i+  iA  iS  iU  i_  ia  ie  iy  i}  i  i  i  i  i  i  i  i˺  iݺ  i  i  i  i	  i  i'  i-  i=  iC  iK  iO  i[  ia  ii  im  i  i  i  i  iɻ  iϻ  iۻ  i  i  i  i  i  i#  i3  i;  iA  iE  i]  io  iw  i  i  i  i  i  i  iѼ  iռ  i  i  i  i  i  i  i  i5  iA  iO  iY  i_  ia  ig  ik  iq  i  i  i  i  i  i  i  iͽ  iѽ  i  i  i  i  i	  i  i!  i%  i'  i[  i]  io  iu  iy  i  i  i  i  i  i  i  i  i  iϾ  iپ  i۾  i  i  i  i  i  i3  i9  iM  i]  i_  ik  iq  i{  i  i  i  i  i  i  i  iϿ  iտ  iݿ  i  i  i  i  i  i  i  i)  i/  i1  i7  i;  iG  ie  im  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i+  i3  i7  iE  iI  i[  is  iy  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i/  i?  iK  iM  iS  i]  iw  i{  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  iG  iI  iO  ie  ig  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i3  i7  iU  iW  ia  io  is  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  iA  iG  iQ  i_  ik  io  iu  iw  i  i  i  i  i  i  i  i  i  i  i  i#  i5  iA  iO  iU  iY  ie  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i1  i9  iW  ic  ig  is  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i'  i)  i9  i?  iS  iW  ik  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i/  i7  i=  iA  iS  i_  ik  iy  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i%  i7  i9  iK  iU  i[  ii  is  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i)  i5  i;  iS  iY  ic  ie  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i+  iA  iC  iM  iY  ia  i  i  i  i  i  i  i  i  i  i	  i  i  i%  i1  i=  i?  iI  iQ  iW  i[  ic  ig  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i/  iG  iM  iQ  ie  i{  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i7  i;  iM  iU  i_  ia  ie  im  iy  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i3  i=  iK  iO  ii  io  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i/  iA  iW  iY  i]  ii  ik  iq  iw  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i5  i;  iG  iY  ia  ie  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i+  iC  iK  iU  ii  iu  i{  i  i  i  i  i  i  i  i  i  i  i  i'  i/  i3  i;  iK  iY  i_  ic  ii  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i1  i5  i7  iI  iY  i_  ie  ig  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i1  iC  iU  i]  ia  i{  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i  i!  i'  i?  iE  iM  iW  ik  i{  i  i  i  i  i  i  i  i  i  i  i  i  i#  i%  i)  i+  i/  i7  iM  iU  ig  is  i  i  i  i  i  i  i  i  i  i  i  i%  i3  i9  iC  iE  iO  iQ  iW  im  io  is  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i  i  i#  i)  i?  iQ  iY  i]  i_  iq  iw  i{  i}  i  i  i  i  i  i  i  i  i  i  i  i  i#  i%  i1  i;  iC  iU  ig  ik  is  i  i  i  i  i  i  i  i  i  i  i  i  i'  i1  i9  i?  iI  iQ  ia  io  iu  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i5  i9  iS  iW  i_  ii  io  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i)  i;  i=  iA  iM  iO  iY  i[  ia  im  iw  i}  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i+  i3  i7  i=  iK  iU  i[  ig  ii  is  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i'  i-  i5  iE  iS  iq  i{  i  i  i  i  i  i  i  i  i  i  i  i%  i)  i1  i5  iC  iO  iY  ia  im  iq  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i+  i-  i=  iC  iW  i[  iu  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i#  i'  i)  i9  i;  iM  iQ  iW  i_  ic  ii  iu  iw  i}  i  i  i  i  i  i  i  i  i  i  i  i  i#  i+  i1  i;  iG  iI  iS  iU  im  iq  i  i  i  i  i  i  i  i  i  i  i  i!  i%  i7  i?  iE  iK  iW  ig  im  iu  i  i  i  i  i  i  i	  i  i  i  i  i!  i)  i9  i?  iS  iW  ic  io  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i/  i=  iG  iI  iS  iU  ia  ig  ik  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i1  i3  i7  i=  iK  iO  iQ  ii  iu  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i3  i;  iK  iQ  i_  ic  ii  i{  i  i  i  i  i  i  i  i  i  i  i/  i5  iC  iM  i_  im  iq  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i1  i9  i?  i[  ia  ic  io  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i)  iM  iQ  i]  ii  io  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i/  i7  i=  iA  iU  iY  i[  ie  ik  iy  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i  i!  iI  iO  ic  ig  is  i{  i  i  i  i  i  i  i  i  i  i  i'  i/  iE  iM  ic  ik  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i+  i/  i5  iC  iG  iO  ig  ik  iq  iw  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i7  i=  iU  iu  i{  i  i  i  i  i  i  i  i  i  i	  i  i  i  i#  i'  i3  i;  iA  iW  i_  ie  ii  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  iA  iY  i[  i_  ig  is  iw  i  i  i  i  i  i  i  i  i	  i  i  i!  i%  i+  iE  iK  iU  ic  iu  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i)  i5  iG  iQ  ic  ik  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i5  i7  iS  i[  ia  ig  iy  i  i  i  i  i  i  i  i  i  i	  i  i-  i1  iC  iO  iQ  iU  ic  ii  is  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i!  i'  i-  i5  iG  iY  ic  ie  io  iq  iw  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i1  i7  i;  iA  iO  i_  ia  im  iq  iw  i  i  i  i  i  i  i  i  i  i  i!  i%  i?  iC  iQ  i[  im  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i-  i/  i?  iG  iM  iu  i}  i  i  i  i  i  i  i  i  i  i  i)  i7  iA  iC  iO  iY  ia  ie  im  is  iy  i  i  i  i  i  i  i  i  i  i  i  i  i+  i1  iQ  iU  ig  im  io  i{  i  i  i  i  i  i  i  i  i  i  i  i  i	  i  i'  i/  iA  iK  iM  iW  i_  ic  ii  iu  i{  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i+  i/  iI  iM  i[  ie  iq  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i+  i-  i3  i?  iI  iQ  i]  ia  io  is  iy  i  i  i  i  i  i  i  i  i  i  i  i  i  i i# i' i- i/ i3 i; iK iY ik i i i i i i i i i i i i i i i i# i) i7 i; i= iY iq iy i} i i i i i i i i! i' i+ i7 i9 iE iI iO ic im i i i i i i i i i i i i i i	 i i i! i) i9 iE iS i] i{ i i i i i i i i i i i i i i i# i% i/ i= iC iI ig ik is i i i i i i i i i i i i i i i i i1 i9 iC iE iQ iU ia im is iu i i i i i i i i i i i i i i i) i? iG iQ iS i] ic ie ii iw i} i i i i i i i i i i i i i i i i i i# i/ iC i_ is i} i i i i i i i i i i i i i i i	 i	 i	 i+	 i3	 i=	 iW	 i[	 i]	 ic	 ig	 iu	 iy	 i	 i	 i	 i	 i	 i	 i	 i	 i	 i	 i
 i
 i
 i-
 i3
 iA
 iK
 io
 iq
 iu
 i{
 i
 i
 i
 i
 i
 i
 i
 i
 i i% i/ iU i[ i_ ia iy i} i i i i i i i i i i i i i i i i3 i= iK iO i[ ig ii iy i i i i i i i i i i i i i i i! i# i' i- i5 i? iS ic i i i i i i i i i i i i i i i i+ iG iI iM iS ie iq iw i i i i i i i i i i i i i i i3 i7 i? iQ iW i[ ia ii is iu iy i{ i i i i i i i- i; iA iM ii ik i i i i i i i i i i i i i i i i) i+ i5 iG ig im iq is iy i i i i i i i i i i i i i i i i! i% i' i7 i9 i? iO iU i] ia ii i i i i i i i i i i i i i i i' i3 i9 i; iQ iW iY ie ik i i i i i i i i i i i i i i i i i5 i= iI ia iq i i i i i i i i i i i i i i i	 i i% i' i- i9 iC iE iO iU iW ic io i i i i i i i i i i i i i i i) iA iE iQ iY i] i_ iw i} i i i i i i i i i i i i i i i i i i i i i/ i1 i7 i; iO ig iq i} i i i i i i i i i i i i i i! i' i= iQ ia im i i i i i i i i i i i i i i i i i i i# i/ i3 i9 i? iS i_ ik io iu i i i i i i i i i i i i i i i i# i% i; i= iM iO iU i_ is iy i i i i i i i i i i i i! i- i1 i7 iU ic ig io i i i i i i i i i i i i i i i i i i# i; i? i] iq iw i i i i i i i i i i i i i i i i i i% i1 i5 i; iM iO iS ie ig iw i i i i i i i i i i+ i= iK iW i] io is i i i i i i i i i i i i i i i- i3 i9 iK iQ iY ic io iu i} i i i i i i i i i i i i i i i  i  i+  i7  i[  i_  iw  iy  i  i  i  i  i  i  i  i  i  i  i  i! i!! i%! i+! i?! iC! iW! i]! im! is! iu! i! i! i! i! i! i! i! i! i! i! i! i! i! i! i" i'" i/" i5" i9" iG" iM" iS" iq" iu" i{" i" i" i" i" i" i" i" i" i" i" i" i# i# i# i# i## i7# iA# iG# iM# i[# ie# iq# is# i# i# i# i# i# i# i# i# i# i# i# i$ i	$ i$ i$ i-$ iE$ iK$ iO$ i[$ ii$ im$ iu$ iy$ i$ i$ i$ i$ i$ i$ i$ i$ i$ i% i% i	% i% i% i!% iG% iK% ie% i}% i% i% i% i% i% i% i% i% i% i% i% i% i% i& i& i& i+& i;& iA& iI& iS& iY& ig& iq& i}& i& i& i& i& i& i& i& i& i& i' i' i' i' i' i!' i%' i3' i9' i?' i[' ia' ic' im' iy' i' i' i' i' i' i' i' i' i' i' i' i' i' i( i( i( i( i-( i9( iM( i]( ik( i( i( i( i( i( i( i( i( i( i( i( i( i( i) i/) i1) i;) iC) iG) i[) ia) is) i}) i) i) i) i) i) i) i) i) i) i) i) i* i* i-* i7* iO* iQ* i[* ic* is* i* i* i* i* i* i* i* i* i* i* i* i* i* i* i+ i#+ i5+ i;+ i?+ iW+ ii+ ik+ i{+ i+ i+ i+ i+ i+ i+ i+ i+ i+ i+ i, i, i, i, i%, i/, iG, iI, iS, ik, iq, iw, i, i, i, i, i, i, i, i, i, i, i, i- i- i%- i-- iQ- iU- ia- io- is- i- i- i- i- i- i- i- i- i- i- i- i- i- i. i. i. i#. i'. i/. i9. iA. iG. ii. ik. iw. i. i. i. i. i. i. i. i. i. i. i. i. i. i. i. i/ i/ i/ i/ i+/ i1/ i5/ iI/ iO/ i[/ iq/ iw/ iy/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i/ i0 i0 i'0 i+0 iE0 iK0 ii0 im0 i0 i0 i0 i0 i0 i0 i0 i0 i0 i0 i0 i0 i1 i)1 i91 i;1 iM1 iS1 iW1 i]1 ic1 io1 iq1 i{1 i1 i1 i1 i1 i1 i1 i1 i1 i1 i1 i2 i2 i2 iA2 i[2 ie2 ig2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i2 i3 i3 i3 i33 i93 i=3 ic3 ii3 is3 iy3 i3 i3 i3 i3 i3 i3 i3 i3 i3 i3 i3 i4 i	4 i4 i'4 i)4 i-4 i54 iG4 iQ4 i]4 i4 i4 i4 i4 i4 i4 i4 i4 i4 i5 i5 i#5 i+5 i/5 i15 i75 iM5 iS5 iY5 ia5 i}5 i5 i5 i5 i5 i5 i5 i5 i5 i5 i5 i5 i5 i5 i6 i6 i!6 i%6 i'6 i36 i?6 iC6 iI6 i[6 iy6 i6 i6 i6 i6 i6 i6 i6 i6 i6 i6 i6 i7 i7 i7 i7 i)7 i57 iG7 iK7 iM7 iQ7 iS7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i7 i8 i8 i8 i8 i#8 iC8 iG8 i_8 ie8 ik8 is8 i}8 i8 i8 i8 i8 i8 i8 i8 i8 i9 i9 i9 i9 i'9 i-9 i19 i?9 iO9 iQ9 i]9 ig9 ii9 io9 i{9 i9 i9 i9 i9 i9 i9 i9 i9 i9 i9 i9 i: i: i-: i?: iA: iW: iY: ii: ik: i: i: i: i: i: i: i: i: i: i: i: i; i; i; i; i%; i); i+; i/; i=; iI; ia; ik; im; iy; i; i; i; i; i; i; i; i; i; i; i; i< i< i< i< i< i!< i%< i9< iC< i]< ii< iu< iy< i{< i< i< i< i< i< i< i< i< i< i< i< i< i< i= i= i= i= i-= i/= i3= iG= iQ= iW= i= i= i= i= i= i= i= i= i= i= i= i= i= i> i> i> i1> i7> ie> im> iw> i}> i> i> i> i> i> i> i> i> i> i> i> i> i? i? i? i? i%? i'? i+? i?? iI? iU? ia? ii? im? i? i? i? i? i? i? i? i? i? i? i	@ i@ i@ i@ i!@ i/@ i3@ i5@ iS@ iW@ iY@ i]@ ie@ io@ iu@ iw@ i@ i@ i@ i@ i@ i@ i@ i@ i@ iA iA iA iA i)A i+A i/A i7A i=A iAA iUA i[A igA i}A iA iA iA iA iA iA iA iA iA iB iB i%B i'B i3B i7B i=B iCB iKB iaB icB iuB iB iB iB iB iB iB iB iB iB iB iB iB iC i!C i#C i'C i)C iEC iGC iKC i]C icC iiC ioC i{C i}C iC iC iC iC iC iC iC iC iD i%D i5D i;D iAD iOD igD isD iwD iD iD iD iD iD iD iD iD iE iE iE iE iE iE i!E i+E i9E iCE iEE iIE icE ioE iE iE iE iE iE iE iE iE iE iE iE iE iE iE iF iF iF i)F iQF ieF iiF ikF i{F iF iF iF iF iF iF iF iF iF iF iF iG iG iG i1G i=G iAG iOG ieG iyG iG iG iG iG iG iG iG iG iG iG iH iH iH i+H i1H iOH iUH i[H i]H icH iyH iH iH iH iH iH iH iH iH iH iH iH iH iH iI iI iI i'I iKI iSI iYI i]I i_I i{I i}I iI iI iI iI iI iI iI iI iI iI iI iI iI iJ iJ iJ iJ i)J i+J i5J iGJ iOJ imJ iJ iJ iJ iJ iJ iJ iJ iJ iJ iJ iJ iJ iK iK iK i3K i9K iIK iKK i[K iyK i{K iK iK iK iK iK iK iK iK iK iK iL iL i#L i-L i9L iEL iYL i_L icL ieL ioL iuL iL iL iL iL iL iL iL iL iL iL iL iL iL iM i1M i7M iAM iSM iUM iqM isM iyM iM iM iM iM iM iM iM iM iM iM i	N iN iN iN i-N iCN iIN i]N iaN igN isN iuN i{N iN iN iN iN iN iN iN iN iN iN iN iO i!O i9O i;O iEO iGO iMO iSO iWO i]O iO iO iO iO iO iO iO iO iP iP iP i5P i=P iCP i_P iaP ieP isP iyP iP iP iP iP iP iP iP iP iP iP iP iP iP iP iQ iQ iQ iQ i'Q i3Q iEQ iOQ iQQ iUQ iaQ icQ imQ iuQ iQ iQ iQ iQ iQ iQ iQ iQ iQ iQ iQ iR iR iR i!R i-R i3R i;R iGR icR ieR iR iR iR iR iR iR iR iR iR iR iR iS i5S i;S iCS iIS iMS iUS iS iS iS iS iS iS iS iS iS iS iS iS iT i	T iT i+T i?T iCT iOT iQT i]T imT ioT iT iT iT iT iT iT iT iT iT iT iT iT iU iU iU iU i)U i?U iWU ikU ioU i}U iU iU iU iU iU iU iU iU iU iU iU iU iU iV iV iV iV i#V i%V i=V iGV iMV iOV iYV i[V iaV iwV iV iV iV iV iV iV iV iV iV iV iV iV iV iV iW iW i-W i=W iEW iIW iOW igW imW i{W iW iW iW iW iW iW iW iW iW iW iW iX iX iX i5X iAX iiX iqX iX iX iX iX iX iX iX iX iY iY iY iY i;Y iMY i[Y igY ikY iY iY iY iY iY iY iY iY iZ iZ iZ i!Z iCZ iKZ iQZ iUZ iWZ i[Z iiZ iZ iZ iZ iZ iZ iZ iZ iZ iZ iZ iZ iZ iZ iZ i[ i[ i[ i#[ i)[ i3[ iA[ iG[ iW[ ii[ iw[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i[ i\ i\ i\ i\ i#\ i1\ iA\ ie\ is\ iy\ i}\ i\ i\ i\ i\ i\ i\ i\ i\ i\ i\ i] i] i%] i+] i1] i7] iE] iI] iW] ic] ii] is] i] i] i] i] i] i] i] i] i] i] i] i] i] i] i^ i^ i^ i!^ i5^ i9^ i;^ iE^ iG^ iQ^ iY^ i^ i^ i^ i^ i^ i^ i^ i^ i^ i^ i^ i^ i_ i#_ i)_ i+_ i5_ i=_ iC_ iS_ ig_ ik_ iy_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i_ i	` i` i%` i3` i=` iK` iO` iU` iW` i[` ii` is` i` i` i` i` i` i` i` i` i` ia ia ia ia i!a i#a i'a iEa iGa iea iia iqa ia ia ia ia ia ia ia ia ia ia ia ib ib ib i#b i5b i7b iIb iOb iUb ikb i}b ib ib ib ib ib ib ib ib ib ic ic ic ic i%c i3c iCc i[c iac imc iuc ic ic ic ic ic ic ic ic ic ic id id id id id id i/d i9d i?d i]d ied ikd iqd iud id id id id id id id id id id id ie ie ie ie i)e i=e iAe iCe iGe iee ike iye ie ie ie ie ie ie ie ie ie ie if i+f i7f i?f iUf iif imf i{f if if if if if if if if if if ig ig i#g i'g i/g i5g i9g i?g iAg i]g icg iig ig ig ig ig ig ig ig ig ig ig ih ih ih ih i+h i;h i=h iCh iIh iMh iSh i[h imh ih ih ih ih ih ih ih ih ih ih ih ih ih ih ih ih ii ii i+i i-i i3i i?i iIi iWi i[i ii ii ii ii ii ii ii ii ii ii ii ii ii ii i	j ij ij ij i#j i-j i3j iAj iQj iYj i_j ikj iuj iwj ij ij ij ij ij ij ij ij ij ij ij ij ij ik ik ik ik i;k iAk iIk iwk i}k ik ik ik ik ik ik ik ik ik ik ik ik ik il il i-l i7l i9l iCl iEl iIl iOl ial icl igl i{l il il il il il il il il il il im i'm i)m i/m i3m i5m i9m i?m iSm iYm iqm ium iwm i{m im im im im im im in in in i+n iAn iCn i[n iqn isn in in in in in in in in in in in in in io io io io i-o i7o i9o iQo iao iio ioo io io io io io io io io io io io ip ip i-p i5p iAp iSp icp iep iqp iwp i{p ip ip ip ip ip ip ip ip ip ip ip ip ip iq iq i1q iAq iCq iMq iOq iSq i_q iaq imq iwq iq iq iq iq iq iq iq iq iq ir ir ir i3r i9r i=r iEr iIr i[r icr igr iur iyr ir ir ir ir ir ir ir ir ir ir is is is i!s i-s i3s iWs i_s iks ios iqs ius i}s is is is is is is is is is is is is it it it it i#t i)t i/t i7t iOt iUt i_t ikt it it it it it it it it it it it it it it iu i'u i+u i3u i=u iIu iQu i]u imu isu iu iu iu iu iu iu iu iu iu iu iu iu iv iv i'v i-v i/v i9v i;v iEv iKv iqv i}v iv iv iv iv iv iv iv iv iv iv iv iv iv iw iw iw i+w i5w i;w iOw iaw iw iw iw iw iw iw iw iw iw iw iw ix ix ix ix i!x i%x iCx iIx iKx iQx iax iyx ix ix ix ix ix ix ix ix ix ix ix ix iy iy i)y i-y iEy iKy iMy iYy iy iy iy iy iy iy iy iy iy iy iy iy iz iz iz iz iz i5z i7z i;z iOz iSz iYz i}z iz iz iz iz iz iz iz iz iz iz iz iz iz i{ i1{ i9{ iO{ i]{ ig{ i{ i{ i{ i{ i{ i{ i{ i{ i{ i{ i{ i| i| i| i/| iW| iY| i]| ic| ie| ik| iu| i| i| i| i| i| i| i| i| i| i| i} i} i} i} i#} i)} i+} i/} iG} iI} iM} iq} is} i} i} i} i} i} i} i} i} i~ i%~ i1~ i3~ i7~ i9~ iC~ iE~ iO~ iW~ i[~ i~ i~ i~ i~ i~ i~ i~ i~ i~ i~ i~ i~ i~ i	 i! i5 iK iQ i_ i i i i i i i i i i i i i i i+ iA iI iS iU ig ik is i} i i i i i i i iˀ i׀ i i i i i i% i= iC iO iQ ig im i i i i i i i iՁ iہ i i i i i! i3 i5 i9 iG iM iQ iS i] i_ io iq i{ i i i i i i ił iɂ iς i i i i i i i% i/ i; i= iA iC iM ie im iw i i i i i i i̓ iك i i i i' i+ i1 i? iE iI iQ ig io i i i iÄ iǄ iɄ i߄ i i i i i i i i' i; iM iS i_ ii i{ i} i i i i i i i˅ iх i i i i i i i i i% i) i= iC iS iY iy i i i i i iˆ iц iن i i i i! i7 i9 iI iW i] ia io iu i i i i iÇ iɇ iه i i i i	 i i i' i) i3 i; iA i_ ik iu i i i i i i i i iÈ iň iψ i i i i i) i= iA iU i[ i_ i} i i i i i i iˉ i׉ i݉ i i i+ i1 i? iC iI iO i] iu i{ i i i i i iǊ iي i i i i i i i i i' i) i5 i? iM iS iW iY ie i i i i i i iˋ iՋ i݋ i i i i i i i# i+ i5 iI i[ ie ik iq i} i i i i i i i iŌ i͌ iߌ i i i i	 i i i1 i= iE iW i[ ii im is iu i i i i iɍ i͍ iύ i i i i i i i! i) i3 iE iK iY ic io iq i} i i i i i i i i i iՎ i׎ iێ i i i i i% i/ i5 i7 i; iI iU iY ia ik im is i i i i i i i׏ iߏ i i i	 i! i% i3 i= iQ ia ic ig i{ i i i i i i i i iϐ iӐ i i i i i i i i- ii ik iq i i i i i iˑ iב iݑ i i i i i i) i7 iG iY i_ i i i i i i i i i iӒ i i i	 i i1 i? iE iy i{ i i i i i iۓ iߓ i i i i i i i! i/ i; iW ii i} i i i i i i i i iÔ i۔ i i i i i i i i+ iY ik iy i i i i i i iѕ iߕ i i i i i i! i+ i- i7 i9 i= iC iI iU ia io iu i{ i i i i i i iӖ iՖ i i i i i i' i) i/ i3 iY i_ ii iu iw i i i i i i iɗ iϗ i i i i i i+ iA iO iY i_ ie ig iq i i i i i i˘ iӘ i i i i i i i i i i )N)r   r9   N)r9   N)r   )rC   rd   r   Z
Cryptodomer   ZCryptodome.Util.py3compatr   r?   r   r   r   r    r"   r&   r,   r/   r8   r@   r-   rb   r   ro   rq   rr   rG   r   r   r   r   <module>   s2   


	


0 
'
D%
