One Hat Cyber Team
Your IP :
3.128.180.89
Server IP :
103.133.214.160
Server :
Linux venus.ewebguru.net 4.18.0-553.30.1.el8_10.x86_64 #1 SMP Tue Nov 26 02:30:26 EST 2024 x86_64
Server Software :
Apache/2
PHP Version :
8.1.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
lib64
/
python3.6
/
__pycache__
/
View File Name :
_pydecimal.cpython-36.opt-2.pyc
3 � \T���������������$���@���sF��d�ddddddddd d ddd ddddddddddddddddddd d!d"d#g$Z�eZd$Zd%Zd&Zd'd(lZd'd(lZd'd(l Z yd'd)l mZ�edd*�Z W�n�ek r����d+d,��Z Y�nX�dZdZdZdZdZdZdZdZd-Ze jd�kr�d1Zd1Zd�Znd2Zd2Zd�Zeed0��ZG�d3d��de�ZG�d4d��de�ZG�d5d��de�Z G�d6d��de �Z!G�d7d ��d ee"�Z#G�d8d��de �Z$G�d9d��de e"�Z%G�d:d ��d e�Z&G�d;d��de �Z'G�d<d��de�Z(G�d=d��de�Z)G�d>d ��d e&e(�Z*G�d?d��de&e(e)�Z+G�d@d��dee,�Z-ee#e&e*e(e+e e)e-g Z.e!e e$e e%e e'e iZ/eeeeeeeefZ0yd'd(l1Z1W�n.�ek �rd���G�dAdB��dBe2�Z3e3��Z1[3Y�nX�y e1j4�W�n>�e5k �r����e6e1j7��dC��r�e1j7��`8dDd��Z9dEd��Z:Y�n6X�e1j4��Z4e6e4dC��r�e4`8e4fdFd�Z:e4fdGd�Z9[1[4d�dHd�Z;G�dId���d�e2�Z<d�dKdL�Z=ej>j?e<��G�dMdN��dNe2�Z@G�dOd��de2�ZAG�dPdQ��dQe2�ZBd�dRdS�ZCeDjEZFdTdU��ZGdVdW��ZHdXdY��ZIdZd[��ZJd�d]d^�ZKd_d`��ZLdadb��ZMG�dcdd��dde2�ZNeN��jOZPd�dedf�ZQdgdh��ZRdidj��ZSdkdldmdndodpdqdrdsdt� fdudv�ZTd�dwdx�ZUd�dydz�ZVeAd{ee#e*e gg�d|d�d0d'd}�ZWeAd~ee#e*e ee+gg�d�ZXeAd~eg�g�d�ZYd'd(lZZZeZj[d�eZj\eZj]B��j^Z_eZj[d��j^Z`eZj[d��j^ZaeZj[d�eZj\eZjbB��Zc[Zyd'd(ldZeW�n�ek �r����Y�nX�d�d�d��Zfd�d���Zgd�d���Zhd�d�d��Zid�d���Zjd�d���Zke<d��Zle<d��Zme<d��Zne<d'�Zoe<d0�Zpe<d��ZqelemfZre jsjtZue jsjvZwe jsjxZyezdreud.�eu�Z{[ d(S�)��Decimal�Context�DecimalTuple�DefaultContext�BasicContext�ExtendedContext�DecimalException�Clamped�InvalidOperation�DivisionByZero�Inexact�Rounded� Subnormal�Overflow� Underflow�FloatOperation�DivisionImpossible�InvalidContext�ConversionSyntax�DivisionUndefined� ROUND_DOWN� ROUND_HALF_UP�ROUND_HALF_EVEN� ROUND_CEILING�ROUND_FLOOR�ROUND_UP�ROUND_HALF_DOWN� ROUND_05UP� setcontext� getcontext�localcontext�MAX_PREC�MAX_EMAX�MIN_EMIN� MIN_ETINY�HAVE_THREADSZdecimalz1.70z2.4.2�����N)� namedtuplezsign digits exponentc��������������G���s���|�S�)N��)�argsr'���r'����"/usr/lib64/python3.6/_pydecimal.py�<lambda>����s����r*���T�����?�������l�����N�Zoi@�Tc���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s���d�S�)Nr'���)�self�contextr(���r'���r'���r)����handle����s����zDecimalException.handleN)�__name__� __module__�__qualname__r0���r'���r'���r'���r)���r�������s���c���������������@���s���e�Zd�ZdS�)r���N)r1���r2���r3���r'���r'���r'���r)���r�������s��� c���������������@���s���e�Zd�Zdd��ZdS�)r ���c�������������G���s,���|r(t�|d�j|d�jdd�}|j|�S�tS�)Nr%����nT)�_dec_from_triple�_sign�_int�_fix_nan�_NaN)r.���r/���r(����ansr'���r'���r)���r0�������s���� zInvalidOperation.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r �������s���c���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s���t�S�)N)r9���)r.���r/���r(���r'���r'���r)���r0�����s����zConversionSyntax.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r�������s���c���������������@���s���e�Zd�Zdd��ZdS�)r ���c�������������G���s���t�|�S�)N)�_SignedInfinity)r.���r/����signr(���r'���r'���r)���r0�����s����zDivisionByZero.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r �����s��� c���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s���t�S�)N)r9���)r.���r/���r(���r'���r'���r)���r0�����s����zDivisionImpossible.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r�����s���c���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s���t�S�)N)r9���)r.���r/���r(���r'���r'���r)���r0���)��s����zDivisionUndefined.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r���!��s���c���������������@���s���e�Zd�ZdS�)r���N)r1���r2���r3���r'���r'���r'���r)���r���,��s��� c���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s���t�S�)N)r9���)r.���r/���r(���r'���r'���r)���r0���C��s����zInvalidContext.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r���8��s���c���������������@���s���e�Zd�ZdS�)r���N)r1���r2���r3���r'���r'���r'���r)���r���F��s��� c���������������@���s���e�Zd�ZdS�)r ���N)r1���r2���r3���r'���r'���r'���r)���r ���R��s��� c���������������@���s���e�Zd�Zdd��ZdS�)r���c�������������G���s����|j�ttttfkrt|�S�|dkrR|j�tkr4t|�S�t|d|j�|j |j�d��S�|dkr�|j�t krlt|�S�t|d|j�|j |j�d��S�d�S�)Nr%����9r-���)�roundingr���r���r���r���r;���r���r5����prec�Emaxr���)r.���r/���r<���r(���r'���r'���r)���r0���s��s���� zOverflow.handleN)r1���r2���r3���r0���r'���r'���r'���r)���r���]��s���c���������������@���s���e�Zd�ZdS�)r���N)r1���r2���r3���r'���r'���r'���r)���r������s��� c���������������@���s���e�Zd�ZdS�)r���N)r1���r2���r3���r'���r'���r'���r)���r������s��� c���������������@���s���e�Zd�Zefdd�ZdS�)� MockThreadingc�������������C���s ���|j�t�S�)N)�modules� __xname__)r.����sysr'���r'���r)����local���s����zMockThreading.localN)r1���r2���r3���rD���rE���r'���r'���r'���r)���rA������s���rA����__decimal_context__c�������������C���s,���|�t�ttfkr|�j��}�|�j���|�tj��_d�S�)N)r���r���r����copy�clear_flags� threading�current_threadrF���)r/���r'���r'���r)���r������s����c��������������C���s4���y t�j��jS��tk r.���t��}�|�t�j��_|�S�X�d�S�)N)rI���rJ���rF����AttributeErrorr���)r/���r'���r'���r)���r������s���� c�������������C���s,���y|�j�S��tk r&���t��}||�_�|S�X�d�S�)N)rF���rK���r���)�_localr/���r'���r'���r)���r������s����c�������������C���s(���|�t�ttfkr|�j��}�|�j���|�|_d�S�)N)r���r���r���rG���rH���rF���)r/���rL���r'���r'���r)���r������s����c�������������C���s���|�d�krt���}�t|��S�)N)r����_ContextManager)Zctxr'���r'���r)���r������s����$�c������������ ���@���s���e�Zd�Zd�Zd�dd�Zed d ���Zdd��Zd d��Zd�dd�Z dd��Z dd��Zdd��Zd�dd�Z d�dd�Zd�dd�Zd�dd�Zd�dd �Zd�d!d"�Zd#d$��Zd%d&��Zd'd(��Zd)d*��Zd�d,d-�Zd�d.d/�Zd�d0d1�Z�d�d2d3�Z�dd5d6�Z�dd7d8�ZeZ�dd9d:�Z�dd;d<�Z�dd=d>�Z e Z!�dd?d@�Z"dAdB��Z#�ddCdD�Z$�ddEdF�Z%�d dGdH�Z&�d dIdJ�Z'�ddKdL�Z(�ddMdN�Z)�d dOdP�Z*�ddQdR�Z+dSdT��Z,dUdV��Z-e-Z.dWdX��Z/e0e/�Z/dYdZ��Z1e0e1�Z1d[d\��Z2d]d^��Z3d_d`��Z4dadb��Z5dcdd��Z6dedf��Z7dgdh��Z8didj��Z9dkdl��Z:dmdn��Z;dodp��Z<dqdr��Z=e>e6e7e8e9e:e;e<e=ds�Z?�ddtdu�Z@dvdw��ZAdxdy��ZB�ddzd{�ZC�dd|d}�ZDd~d��ZE�dd�d��ZF�dd�d��ZG�dd�d��ZH�dd�d��ZI�dd�d��ZJd�d���ZKd�d���ZL�dd�d��ZM�dd�d��ZNeNZO�dd�d��ZP�dd�d��ZQ�dd�d��ZRd�d���ZSd�d���ZTd�d���ZUd�d���ZV�dd�d��ZW�dd�d��ZX�dd�d��ZYd�d���ZZd�d���Z[�dd�d��Z\�d d�d��Z]d�d���Z^d�d���Z_d�d���Z`d�d���Za�d!d�d��Zbd�d���Zcd�d���Zdd�d���Ze�d"d�d��Zfd�d���Zgd�dÄ�Zh�d#d�dńZid�dDŽ�Zj�d$d�dɄZk�d%d�d˄Zld�d̈́�Zmd�dτ�Zn�d&d�dфZo�d'd�dӄZp�d(d�dՄZq�d)d�dׄZr�d*d�dلZs�d+d�dۄZt�d,d�d݄Zu�d-d�d߄Zv�d.d�d�Zw�d/d�d�Zxd�d��Zy�d0d�d�Zz�d1d�d�Z{�d2d�d�Z|d�d��Z}d�d��Z~d�d��Z�d3d�d�Z�dS�(4��r����_expr7���r6����_is_special�0Nc�������������C���s���t�j|��}t|t��r$t|j��jdd��}|d�krP|d�kr@t��}|jt d|��S�|j d�dkrfd|_nd|_|j d�}|d�k r�|j d �p�d}t|j d �p�d�}tt||���|_ |t|��|_d|_nZ|j d �}|d�k �rtt|p�d��jd�|_ |j d��rd|_nd|_nd|_ d|_d|_|S�t|t��rf|dk�rBd|_nd|_d|_tt|��|_ d|_|S�t|t��r�|j|_|j|_|j |_ |j|_|S�t|t��r�|j|_t|j�|_ t|j�|_d|_|S�t|ttf��r&t|�dk�r�td��t|d�t��o|d�dk�std��|d�|_|d�dk�rHd|_ |d�|_d|_n�g�} x^|d�D�]R} t| t��r�d| ��k�ozdkn���r�| �s�| dk�r�| j| ��ntd���qVW�|d�dk�r�djtt| ��|_ |d�|_d|_nDt|d�t��rdjtt| �p�dg��|_ |d�|_d|_ntd��|S�t|t��r||d�k�rBt��}|jtd��tj|�}|j|_|j|_|j |_ |j|_|S�t d|���d�S�)N�_��zInvalid literal for Decimal: %rr<����-r-���r%����intZfrac�exprP���F�diag�signal�Nr4����FT����ztInvalid tuple size in creation of Decimal from list or tuple. The list or tuple should have exactly three elements.z|Invalid sign. The first value in the tuple should be an integer; either 0 for a positive number or 1 for a negative number.r+���� ���zTThe second value in the tuple must be composed of integers in the range 0 through 9.zUThe third value in the tuple must be an integer, or one of the strings 'F', 'n', 'N'.z;strict semantics for mixing floats and Decimals are enabledzCannot convert %r to Decimal)r%���r-���)r4���rX���)!�object�__new__� isinstance�str�_parser�strip�replacer����_raise_errorr����groupr6���rT���r7����lenrN���rO����lstrip�absr����_WorkRepr<���rU����list�tuple� ValueError�append�join�map�floatr���� from_float� TypeError)�cls�valuer/���r.����m�intpart�fracpartrU���rV����digitsZdigitr'���r'���r)���r]���4��s����� ( zDecimal.__new__c�������������C���s����t�|t�r|�|�S�t�|t�s$td��tj|�s8tj|�rD|�t|��S�tjd|�dkrZd}nd}t |�j ��\}}|j��d�}t|t |d|���|��}|�tkr�|S�|�|�S�d�S�)Nzargument must be int or float.g�������?r%���r-�������)r^���rT���ro���rq����_mathZisinfZisnan�reprZcopysignrg����as_integer_ratio� bit_lengthr5���r_���r���)rr����fr<���r4����d�k�resultr'���r'���r)���rp������s���� zDecimal.from_floatc�������������C���s(���|�j�r$|�j}|dkrdS�|dkr$dS�dS�)Nr4���r-���rX���r+���r%���)rO���rN���)r.���rU���r'���r'���r)����_isnan���s����zDecimal._isnanc�������������C���s���|�j�dkr|�jrdS�dS�dS�)NrY���r-���r%������)rN���r6���)r.���r'���r'���r)����_isinfinity��s ���� zDecimal._isinfinityc�������������C���s|���|�j���}|d�krd}n|j���}|s&|rx|d�kr4t��}|dkrJ|jtd|��S�|dkr`|jtd|�S�|rn|�j|�S�|j|�S�dS�)NFr+����sNaNr%���)r����r���rc���r ���r8���)r.����otherr/����self_is_nan�other_is_nanr'���r'���r)����_check_nans��s"���� zDecimal._check_nansc�������������C���sv���|d�krt���}|�js|jrr|�j��r0|jtd|��S�|j��rF|jtd|�S�|�j��r\|jtd|��S�|j��rr|jtd|�S�dS�)Nzcomparison involving sNaNzcomparison involving NaNr%���)r���rO����is_snanrc���r ����is_qnan)r.���r����r/���r'���r'���r)����_compare_check_nans.��s(����zDecimal._compare_check_nansc�������������C���s���|�j�p|�jdkS�)NrP���)rO���r7���)r.���r'���r'���r)����__bool__O��s����zDecimal.__bool__c�������������C���s��|�j�s|j�r8|�j��}|j��}||kr(dS�||k�r4dS�dS�|�sP|sDdS�d|j��S�|s^d|�j�S�|j|�jk�rndS�|�j|jk�r~dS�|�j��}|j��}||k��r�|�jd|�j|j���}|jd|j|�j���}||kr�dS�||k�r�d|�j��S�d |�j�S�n ||k�rd |�j�S�d|�j��S�d�S�)Nr%���r-���rP���r����r����r����r����r����r����r����r����)rO���r����r6����adjustedr7���rN���)r.���r����Zself_infZ other_inf� self_adjustedZother_adjusted�self_paddedZother_paddedr'���r'���r)����_cmpV��s>���� zDecimal._cmpc�������������C���s<���t�|�|dd�\}�}|tkr|S�|�j||�r.dS�|�j|�dkS�)NT)�equality_opFr%���)�_convert_for_comparison�NotImplementedr����r����)r.���r����r/���r'���r'���r)����__eq__���s����zDecimal.__eq__c�������������C���s<���t�|�|�\}�}|tkr|S�|�j||�}|r.dS�|�j|�dk�S�)NFr%���)r����r����r����r����)r.���r����r/���r:���r'���r'���r)����__lt__���s����zDecimal.__lt__c�������������C���s<���t�|�|�\}�}|tkr|S�|�j||�}|r.dS�|�j|�dkS�)NFr%���)r����r����r����r����)r.���r����r/���r:���r'���r'���r)����__le__���s����zDecimal.__le__c�������������C���s<���t�|�|�\}�}|tkr|S�|�j||�}|r.dS�|�j|�dkS�)NFr%���)r����r����r����r����)r.���r����r/���r:���r'���r'���r)����__gt__���s����zDecimal.__gt__c�������������C���s<���t�|�|�\}�}|tkr|S�|�j||�}|r.dS�|�j|�dkS�)NFr%���)r����r����r����r����)r.���r����r/���r:���r'���r'���r)����__ge__���s����zDecimal.__ge__c�������������C���s>���t�|dd�}|�js|r0|jr0|�j||�}|r0|S�t|�j|��S�)NT)�raiseit)�_convert_otherrO���r����r���r����)r.���r����r/���r:���r'���r'���r)����compare���s����zDecimal.comparec�������������C���s����|�j�r4|�j��rtd��n|�j��r$tS�|�jr0t�S�tS�|�jdkrNtd|�jt �}ntt |�j�t �}t|�j�|�t �}|�dkr||n|�}|dkr�dS�|S�)Nz"Cannot hash a signaling NaN value.r%���� ���r-���r+���r�������) rO���r����rq����is_nan�_PyHASH_NANr6����_PyHASH_INFrN����pow�_PyHASH_MODULUS� _PyHASH_10INVrT���r7���)r.���Zexp_hashZhash_r:���r'���r'���r)����__hash__���s���� zDecimal.__hash__c�������������C���s���t�|�jttt|�j��|�j�S�)N)r���r6���rj���rn���rT���r7���rN���)r.���r'���r'���r)����as_tuple���s����zDecimal.as_tuplec�������������C���s����|�j�r |�j��rtd��ntd��|�s(dS�t|�j�}|�jdkrR|d|�j��d�}}nr|�j�}x(|dkr�|d�dkr�|d�}|d8�}q\W�|�j�}t||�@�j��d�|�}|r�||L�}||8�}d|�|>�}|�j r�|�}||fS�)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratior%���r-���r����rx���)r%���r-���) rO���r����rk���� OverflowErrorrT���r7���rN����minr|���r6���)r.���r4���r~���Zd5Zd2Zshift2r'���r'���r)���r{������s,���� zDecimal.as_integer_ratioc�������������C���s���dt�|���S�)Nz Decimal('%s'))r_���)r.���r'���r'���r)����__repr__'��s����zDecimal.__repr__Fc������� ������C���sd��ddg|�j��}|�jrL|�jdkr&|d�S�|�jdkr>|d�|�j�S�|d�|�j�S�|�jt|�j��}|�jdkrt|dkrt|}n6|s~d }n,|�jdkr�|d �d�d �}n|d �d�d �}|dkr�d}d d|���|�j�}nN|t|�j�k��r�|�jd|t|�j����}d}n |�jd�|��}d |�j|d����}||k�r*d}n*|d�k�r:t��}ddg|j�d||���}||�|�|�S�)NrR���rS���rY���ZInfinityr4����NaNr����r%�������r-���rP���rZ����.�e�Ez%+di����)r6���rO���rN���r7���re���r����capitals) r.����engr/���r<���� leftdigits�dotplaceru���rv���rU���r'���r'���r)����__str__,��s:���� zDecimal.__str__c�������������C���s���|�j�d|d�S�)NT)r����r/���)r����)r.���r/���r'���r'���r)���� to_eng_string`��s����zDecimal.to_eng_stringc�������������C���sT���|�j�r|�j|d�}|r|S�|d�kr(t��}|��rB|jtkrB|�j��}n|�j��}|j|�S�)N)r/���)rO���r����r���r>���r����copy_abs�copy_negate�_fix)r.���r/���r:���r'���r'���r)����__neg__i��s���� zDecimal.__neg__c�������������C���sT���|�j�r|�j|d�}|r|S�|d�kr(t��}|��rB|jtkrB|�j��}nt|��}|j|�S�)N)r/���)rO���r����r���r>���r���r����r���r����)r.���r/���r:���r'���r'���r)����__pos__��s���� zDecimal.__pos__Tc�������������C���sJ���|s|�j���S�|�jr&|�j|d�}|r&|S�|�jr:|�j|d�}n|�j|d�}|S�)N)r/���)r����rO���r����r6���r����r����)r.����roundr/���r:���r'���r'���r)����__abs__���s����zDecimal.__abs__c������� ������C���sl��t�|�}|tkr|S�|d�kr"t��}|�js.|jr�|�j||�}|rB|S�|�j��rr|�j|jkrj|j��rj|jtd�S�t |��S�|j��r�t |�S�t |�j|j�}d}|jt kr�|�j|jkr�d}|��r�|�r�t |�j|j�}|r�d}t|d|�}|j|�}|S�|��s"t||j|j�d��}|j||j�}|j|�}|S�|�sZt||�j|j�d��}|�j||j�}|j|�}|S�t|��}t|�}t|||j�\}}t��} |j|jk�r�|j|jk�r�t|d|�}|j|�}|S�|j|jk��r�||�}}|jdk�r�d| _|j|j�|_|_nd| _n&|jdk�rd| _d\|_|_nd| _|jdk�r@|j|j�| _n|j|j�| _|j| _t | �}|j|�}|S�)Nz -INF + INFr%���r-���rP���)r%���r%���)r����r����r���rO���r����r����r6���rc���r ���r���r����rN���r>���r���r5���r�����maxr?����_rescalerh���� _normalizer<���rT���rU���) r.���r����r/���r:���rU���Znegativezeror<����op1�op2r����r'���r'���r)����__add__���s|���� zDecimal.__add__c�������������C���sH���t�|�}|tkr|S�|�js |jr6|�j||d�}|r6|S�|�j|j��|d�S�)N)r/���)r����r����rO���r����r����r����)r.���r����r/���r:���r'���r'���r)����__sub__��s����zDecimal.__sub__c�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r����)r.���r����r/���r'���r'���r)����__rsub__��s����zDecimal.__rsub__c�������������C���sD��t�|�}|tkr|S�|d�kr"t��}|�j|jA�}|�js:|jr�|�j||�}|rN|S�|�j��rn|sf|jtd�S�t |�S�|j��r�|�s�|jtd�S�t |�S�|�j |j �}|��s�|�r�t|d|�}|j|�}|S�|�j dkr�t||j |�}|j|�}|S�|j dk�rt||�j |�}|j|�}|S�t|��}t|�}t|t|j|j��|�}|j|�}|S�)Nz(+-)INF * 0z0 * (+-)INFrP����1)r����r����r���r6���rO���r����r����rc���r ���r;���rN���r5���r����r7���rh���r_���rT���)r.���r����r/���Z resultsignr:���Z resultexpr����r����r'���r'���r)����__mul__��sH���� zDecimal.__mul__c�������������C���s���t�|�}|tkrtS�|d�kr"t��}|�j|jA�}|�js:|jr�|�j||�}|rN|S�|�j��rj|j��rj|jtd�S�|�j��rzt |�S�|j��r�|jt d��t|d|j���S�|s�|�s�|jt d�S�|jtd|�S�|�s�|�j|j�}d}n�t|j�t|�j��|j�d�}|�j|j�|�}t|��}t|�} |dk�r:t|jd|��| j�\}} nt|j| jd|����\}} | �rt|d �dk�r�|d7�}n<|�j|j�}x.||k��r�|d�dk�r�|d�}|d7�}�q�W�t|t|�|�}|j|�S�) Nz(+-)INF/(+-)INFzDivision by infinityrP���z0 / 0zx / 0r%���r-���r����rx���)r����r����r���r6���rO���r����r����rc���r ���r;���r���r5����Etinyr���r ���rN���re���r7���r?���rh����divmodrT���r_���r����)r.���r����r/���r<���r:���rU����coeff�shiftr����r����� remainder� ideal_expr'���r'���r)����__truediv__Q��sP���� zDecimal.__truediv__c�������������C���s ��|�j�|j�A�}|j��r|�j}nt|�j|j�}|�j��|j���}|��sP|j��sP|dkrjt|dd�|�j||j�fS�||jk�rt |��}t |�}|j |j kr�|�jd|j |j ��9��_n|�jd|j |j ��9��_t|j|j�\}} |d|j�k��rt|t |�d�t|�j�t | �|�fS�|jtd�} | | fS�)Nr+���rP���r%���r����z%quotient too large in //, % or divmodr����)r6���r����rN���r����r����r5���r����r>���r?���rh���rU���rT���r����r_���rc���r���)r.���r����r/���r<���r�����expdiffr����r�����q�rr:���r'���r'���r)����_divide���s*���� zDecimal._dividec�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r����)r.���r����r/���r'���r'���r)����__rtruediv__���s����zDecimal.__rtruediv__c�������������C���s����t�|�}|tkr|S�|d�kr"t��}|�j||�}|r:||fS�|�j|jA�}|�j��r~|j��rj|jtd�}||fS�t|�|jtd�fS�|s�|�s�|jt d�}||fS�|jt d|�|jtd�fS�|�j||�\}}|j|�}||fS�)Nzdivmod(INF, INF)zINF % xzdivmod(0, 0)zx // 0zx % 0) r����r����r���r����r6���r����rc���r ���r;���r���r ���r����r����)r.���r����r/���r:���r<���Zquotientr����r'���r'���r)���� __divmod__���s0���� zDecimal.__divmod__c�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r����)r.���r����r/���r'���r'���r)����__rdivmod__���s����zDecimal.__rdivmod__c�������������C���s����t�|�}|tkr|S�|d�kr"t��}|�j||�}|r6|S�|�j��rJ|jtd�S�|sj|�r^|jtd�S�|jtd�S�|�j||�d�}|j |�}|S�)NzINF % xzx % 0z0 % 0r-���) r����r����r���r����r����rc���r ���r���r����r����)r.���r����r/���r:���r����r'���r'���r)����__mod__���s"���� zDecimal.__mod__c�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r����)r.���r����r/���r'���r'���r)����__rmod__���s����zDecimal.__rmod__c�������������C���s���|d�krt���}t|dd�}|�j||�}|r.|S�|�j��rB|jtd�S�|sb|�rV|jtd�S�|jtd�S�|j��r|t|��}|j|�S�t |�j |j �}|�s�t|�jd|�}|j|�S�|�j ��|j ���}||jd�kr�|jt�S�|dkr�|�j||j�}|j|�S�t|��}t|�}|j|jk�r(|�jd |j|j��9��_n|�jd |j|j��9��_t|j|j�\}} d| �|d@��|jk�r~| |j8�} |d7�}|d |j�k�r�|jt�S�|�j} | d k��r�d| �} | �} t| t| �|�}|j|�S�)NT)r����zremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)rP���r-���r+���r����r%���r����)r���r����r����r����rc���r ���r���r���r����r����rN���r5���r6���r����r?���r���r����r>���rh���rU���rT���r����r_���)r.���r����r/���r:����ideal_exponentr����r����r����r����r����r<���r'���r'���r)����remainder_near��sZ���� zDecimal.remainder_nearc�������������C���s����t�|�}|tkr|S�|d�kr"t��}|�j||�}|r6|S�|�j��rb|j��rR|jtd�S�t|�j|jA��S�|s�|�r�|jt d|�j|jA��S�|jt d�S�|�j||�d�S�)Nz INF // INFzx // 0z0 // 0r%���)r����r����r���r����r����rc���r ���r;���r6���r ���r���r����)r.���r����r/���r:���r'���r'���r)����__floordiv__L��s$����zDecimal.__floordiv__c�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r����)r.���r����r/���r'���r'���r)���� __rfloordiv__h��s����zDecimal.__rfloordiv__c�������������C���s8���|�j���r(|�j��rtd��|�jr"dnd}nt|��}t|�S�)Nz%Cannot convert signaling NaN to floatz-nan�nan)r����r����rk���r6���r_���ro���)r.����sr'���r'���r)���� __float__o��s����zDecimal.__float__c�������������C���st���|�j�r(|�j��rtd��n|�j��r(td��d|�j�}|�jdkrT|t|�j��d|�j��S�|t|�jd�|�j��pjd��S�d�S�)NzCannot convert NaN to integerz"Cannot convert infinity to integerr-���r%���r����rP���r����) rO���r����rk���r����r����r6���rN���rT���r7���)r.���r����r'���r'���r)����__int__y��s���� zDecimal.__int__c�������������C���s���|�S�)Nr'���)r.���r'���r'���r)����real���s����zDecimal.realc�������������C���s���t�d�S�)Nr%���)r���)r.���r'���r'���r)����imag���s����zDecimal.imagc�������������C���s���|�S�)Nr'���)r.���r'���r'���r)���� conjugate���s����zDecimal.conjugatec�������������C���s���t�t|���S�)N)�complexro���)r.���r'���r'���r)����__complex__���s����zDecimal.__complex__c�������������C���sR���|�j�}|j|j�}t|�|krJ|t|�|�d���jd�}t|�j||�jd�S�t|��S�)NrP���T) r7���r?����clampre���rf���r5���r6���rN���r���)r.���r/���ZpayloadZmax_payload_lenr'���r'���r)���r8������s����zDecimal._fix_nanc�������������C���sX��|�j�r |�j��r|�j|�S�t|��S�|j��}|j��}|�s�|j|g|j�}tt |�j |�|�}||�j krx|jt��t |�jd|�S�t|��S�t|�j�|�j �|j�}||kr�|jtd|�j�}|jt��|jt��|S�||k�}|r�|}|�j |k��r�t|�j�|�j �|�} | dk��rt |�jd|d��}�d} |�j|j�} | |�| �}|�jd�| ���p>d}|dk�r~tt|�d��}t|�|jk�r~|d�d��}|d7�}||k�r�|jtd|�j�}nt |�j||�}|�r�|�r�|jt��|�r�|jt��|�r�|jt��|jt��|�s�|jt��|S�|�r|jt��|jdk�rP|�j |k�rP|jt��|�jd|�j |���} t |�j| |�S�t|��S�)NrP���z above Emaxr%���r����r-���r����)rO���r����r8���r���r�����Etopr@���r����r����r����rN���rc���r���r5���r6���re���r7���r?���r���r���r����_pick_rounding_functionr>���r_���rT���r���r ���)r.���r/���r����r�����exp_maxZnew_expZexp_minr:���Zself_is_subnormalrw���Zrounding_method�changedr����r����r'���r'���r)���r�������sn���� zDecimal._fixc�������������C���s���t�|�j|�rdS�dS�d�S�)Nr%���r-���r����)� _all_zerosr7���)r.���r?���r'���r'���r)����_round_down��s����zDecimal._round_downc�������������C���s���|�j�|��S�)N)r����)r.���r?���r'���r'���r)���� _round_up��s����zDecimal._round_upc�������������C���s*���|�j�|�dkrdS�t|�j�|�r"dS�dS�d�S�)NZ56789r-���r%���r����)r7���r����)r.���r?���r'���r'���r)����_round_half_up��s ����zDecimal._round_half_upc�������������C���s���t�|�j|�rdS�|�j|�S�d�S�)Nr-���r����)�_exact_halfr7���r����)r.���r?���r'���r'���r)����_round_half_down��s����zDecimal._round_half_downc�������������C���s8���t�|�j|�r*|dks&|�j|d��dkr*dS�|�j|�S�d�S�)Nr%���r-����02468r����)r����r7���r����)r.���r?���r'���r'���r)����_round_half_even#��s����zDecimal._round_half_evenc�������������C���s ���|�j�r|�j|�S�|�j|��S�d�S�)N)r6���r����)r.���r?���r'���r'���r)����_round_ceiling+��s���� zDecimal._round_ceilingc�������������C���s ���|�j�s|�j|�S�|�j|��S�d�S�)N)r6���r����)r.���r?���r'���r'���r)����_round_floor2��s���� zDecimal._round_floorc�������������C���s0���|r |�j�|d��dkr |�j|�S�|�j|��S�d�S�)Nr-���Z05)r7���r����)r.���r?���r'���r'���r)����_round_05up9��s���� zDecimal._round_05up)r���r���r���r���r���r���r���r���c�������������C���sb���|d�k r2t�|t�std��tdd|��}|�j|�S�|�jrR|�j��rJtd��ntd��t|�j dt ��S�)Nz+Second argument to round should be integralr%���r����zcannot round a NaNzcannot round an infinity)r^���rT���rq���r5����quantizerO���r����rk���r����r����r���)r.���r4���rU���r'���r'���r)���� __round__K��s����/ zDecimal.__round__c�������������C���s0���|�j�r |�j��rtd��ntd��t|�jdt��S�)Nzcannot round a NaNzcannot round an infinityr%���)rO���r����rk���r����rT���r����r���)r.���r'���r'���r)���� __floor__���s ���� zDecimal.__floor__c�������������C���s0���|�j�r |�j��rtd��ntd��t|�jdt��S�)Nzcannot round a NaNzcannot round an infinityr%���)rO���r����rk���r����rT���r����r���)r.���r'���r'���r)����__ceil__���s ���� zDecimal.__ceil__c�������������C���s��t�|dd�}t�|dd�}|�js$|jr�|d�kr2t��}|�jdkrJ|jtd|��S�|jdkrb|jtd|�S�|�jdkrr|�}nf|jdkr�|}nV|�jdkr�|s�|jtd�S�t|�j|jA��}n*|jdkr�|�s�|jtd�S�t|�j|jA��}n0t|�j|jA�t t |�j�t |j���|�j|j��}|j||�S�) NT)r����rX���r����r4���rY���zINF * 0 in fmaz0 * INF in fma) r����rO���r���rN���rc���r ���r;���r6���r5���r_���rT���r7���r����)r.���r����Zthirdr/����productr'���r'���r)����fma���s6���� zDecimal.fmac�������������C���s���t�|�}|tkr|S�t�|�}|tkr(|S�|d�kr6t��}|�j��}|j��}|j��}|sZ|sZ|r�|dkrp|jtd|��S�|dkr�|jtd|�S�|dkr�|jtd|�S�|r�|�j|�S�|r�|j|�S�|j|�S�|�j��o�|j��o�|j��s�|jtd�S�|dk�r�|jtd�S�|�s|jtd�S�|j��|j k�r(|jtd�S�|��rD|���rD|jtd�S�|j ���rTd}n|�j}tt |��}t|�j���}t|j���} |j |�td |j|��|�}x t| j�D�]} t|d |�}�q�W�t|| j |�}t|t|�d�S�) Nr+���r����z@pow() 3rd argument not allowed unless all arguments are integersr%���zApow() 2nd argument cannot be negative when 3rd argument specifiedzpow() 3rd argument cannot be 0zSinsufficient precision: pow() 3rd argument must not have more than precision digitszXat least one of pow() 1st argument and 2nd argument must be nonzero; 0**0 is not definedr����)r����r����r���r����rc���r ���r8���� _isintegerr����r?����_isevenr6���rg���rT���rh����to_integral_valuer����rU����ranger5���r_���)r.���r�����modulor/���r����r����Z modulo_is_nanr<����base�exponent�ir'���r'���r)���� _power_modulo���sl���� zDecimal._power_moduloc�������������C���s��t�|��}|j|j�}}x |d�dkr6|d�}|d7�}qW�t�|�}|j|j�}}x |d�dkrn|d�}|d7�}qPW�|dk�r||9�}x |d�dkr�|d�}|d7�}q�W�|dk�r�d�S�|d|��} |jdkr�| �} |j��o�|jdk�r|�jt|��} t| | �|d��}nd}tddd|��| |��S�|jdk�r�|d�}|dk�r�||�@�|k�rPd�S�t |�d�} |d �d�}|t t|��k�r~d�S�t| |�|�} t||�|�}| d�k�s�|d�k�r�d�S�| |k�r�d�S�d| �}n�|dk�r�t |�d �d�} t d| �|�\}}|�r�d�S�x$|d�dk�r$|d�}| d8�} �qW�|d�d�}|t t|��k�rHd�S�t| |�|�} t||�|�}| d�k�sx|d�k�r|d�S�| |k�r�d�S�d| �}nd�S�|d|�k�r�d�S�| �|�}tdt|�|�S�|dk�r�|d|��d�}}n�|dk�rt tt||����|�k�rd�S�t |�}|dk�r>t tt|�|���|�k�r>d�S�|d|���}}x:|d�|d���k�oldkn���r�|d�}|d�}�qPW�x:|d�|d���k�o�dkn���r�|d�}|d�}�q�W�|dk�rt|dk�r�||k�r�d�S�t ||�\}}|dk�rd�S�dt |��|��>�}x>t |||d���\}}||k�r>P�n||d��|�|�}�qW�||k�oh|dk�spd�S�|}|dk�r�||d�t|��k�r�d�S�||�}||9�}|d|�k�r�d�S�t|�}|j���r�|jdk�r�|�jt|��} t|| �|t |���}nd}td|d|��||��S�)Nr����r%���r-���r����rP���r+�������r���������]����A���rx�������rZ����d���)r+���r��r����r��)rh���rT���rU���r<���r����r6���rN���r����r5����_nbitsre���r_����_decimal_lshift_exactr����rg���� _log10_lb)r.���r�����p�x�xc�xe�y�yc�yer����r����ZzerosZ last_digitr����Zemaxr����rt���r4���Zxc_bits�rem�ar����r����Zstr_xcr'���r'���r)����_power_exact(��s�����: &&&& zDecimal._power_exactc�������������C���s@��|d�k r|�j�|||�S�t|�}|tkr*|S�|d�kr8t��}|�j||�}|rL|S�|sd|�s`|jtd�S�tS�d}|�jdkr�|j ��r�|j ��s�d}n|�r�|jtd�S�|�j��}�|�s�|jdkr�t|dd�S�t |�S�|�j��r�|jdkr�t |�S�t|dd�S�|�tk�r�|j ���rZ|jdk�rd}n||jk�r"|j}nt|�}|�j|�}|d|j�k��rxd|j�}|jt��n|jt��|jt��d|j�}t|dd|���|�S�|�j��}|j���r�|jdk|dk�k�r�t|dd�S�t |�S�d�}d} |�j��|j���} |dk|jdkk�r| tt|j��k�rHt|d|jd��}n,|j��}| tt|���k�rHt|d|d��}|d�k�r�|�j||jd��}|d�k �r�|dk�r�td|j|j�}d} |d�k�r:|j}t|��} | j| j�}}t|�}|j|j�}}|jdk�r�|�}d }xJt||||||��\}}|d dtt|��|�d�����rP�|d 7�}�q�W�t|t|�|�}| �r2|j ����r2t|j�|jk�r�|jd�t|j��}t|j|jd|��|j|��}|j ��}|j!���xt"D�]}d|j#|<��q�W�|j$|�}|jt��|j%t&��r�|jt'��|j%t(��r�|jt(d|j��x:t't&ttt)fD�]}|j%|��r|j|���qW�n |j$|�}|S�) Nz0 ** 0r%���r-���z+x ** y with x negative and y not an integerrP���r����FTrZ���rx���r����z above Emax)*r���r����r����r���r����rc���r ����_Oner6���r����r����r����r5���r;���r����r?���rT���rN���r���r���r�����_log10_exp_boundre���r_���r@���r����r��r7���rh���rU���r<����_dpowerrG���rH����_signals�trapsr�����flagsr ���r���r���r���)r.���r����r����r/���r:���Zresult_signZ multiplierrU���Zself_adj�exactZboundr����r ��r��r��r ��r��r��r���extrar����r����Z newcontextZ exceptionr'���r'���r)����__pow__ ��s����� " zDecimal.__pow__c�������������C���s"���t�|�}|tkr|S�|j|�|d�S�)N)r/���)r����r����r��)r.���r����r/���r'���r'���r)����__rpow__� ��s����zDecimal.__rpow__c�������������C���s����|d�krt���}|�jr(|�j|d�}|r(|S�|�j|�}|j��r>|S�|sPt|jdd�S�|j|j��g|j �}t |j�}|j}x.|j|d��dkr�||k�r�|d7�}|d8�}qvW�t|j|jd�|��|�S�)N)r/���rP���r%���r-���) r���rO���r����r����r����r5���r6���r@���r����r����re���r7���rN���)r.���r/���r:����dupr�����endrU���r'���r'���r)���� normalize� ��s$���� zDecimal.normalizec�������������C���s���t�|dd�}|d�krt��}|d�kr(|j}|�js4|jr||�j||�}|rH|S�|j��sX|�j��r||j��rp|�j��rpt|��S�|jtd�S�|j ��|j ��ko�|jkn��s�|jtd�S�|�s�t|�j d|j �}|j|�S�|�j��}||jkr�|jtd�S�||j �d�|jk�r|jtd�S�|�j|j |�}|j��|jk�r0|jtd�S�t|j�|jk�rN|jtd�S�|�rn|j��|jk��rn|jt��|j |�j k�r�||�k�r�|jt��|jt��|j|�}|S�) NT)r����zquantize with one INFz)target exponent out of bounds in quantizerP���z9exponent of quantize result too large for current contextr-���z7quantize result has too many digits for current context)r����r���r>���rO���r����r����r���rc���r ���r����rN���r@���r5���r6���r����r����r?���r����re���r7����Eminr ���r���r���)r.���rU���r>���r/���r:���r����r'���r'���r)���r���� ��sT���� zDecimal.quantizec�������������C���sD���t�|dd�}|�js|jr8|�j��r(|j��p6|�j��o6|j��S�|�j|jkS�)NT)r����)r����rO���r�����is_infiniterN���)r.���r����r/���r'���r'���r)����same_quantumJ ��s ���� zDecimal.same_quantumc�������������C���s����|�j�rt|��S�|�s t|�jd|�S�|�j|krHt|�j|�jd|�j|���|�S�t|�j�|�j�|�}|dk�rzt|�jd|d��}�d}|�j|�}||�|�}|�jd�|��p�d}|dkr�tt |�d��}t|�j||�S�)NrP���r%���r����r-���) rO���r���r5���r6���rN���r7���re���r����r_���rT���)r.���rU���r>���rw���Z this_functionr����r����r'���r'���r)���r����Y ��s"���� zDecimal._rescalec�������������C���sh���|dkrt�d��|�js|��r$t|��S�|�j|�j��d�|�|�}|j��|�j��krd|j|j��d�|�|�}|S�)Nr%���z'argument should be at least 1 in _roundr-���)rk���rO���r���r����r����)r.����placesr>���r:���r'���r'���r)����_round{ ��s���� zDecimal._roundc�������������C���s����|�j�r"|�j|d�}|r|S�t|��S�|�jdkr4t|��S�|�sFt|�jdd�S�|d�krTt��}|d�krb|j}|�jd|�}||�kr�|j t ��|j t��|S�)N)r/���r%���rP���)rO���r����r���rN���r5���r6���r���r>���r����rc���r���r���)r.���r>���r/���r:���r'���r'���r)����to_integral_exact� ��s$���� zDecimal.to_integral_exactc�������������C���s`���|d�krt���}|d�kr|j}|�jr>|�j|d�}|r6|S�t|��S�|�jdkrPt|��S�|�jd|�S�d�S�)N)r/���r%���)r���r>���rO���r����r���rN���r����)r.���r>���r/���r:���r'���r'���r)���r����� ��s���� zDecimal.to_integral_valuec�������������C���s���|d�krt���}|�jrB|�j|d�}|r(|S�|�j��rB|�jdkrBt|��S�|�sdt|�jd|�jd��}|j|�S�|�jdkrz|j t d�S�|jd�}t|��}|j d?�}|j d@�r�|jd�}t|�j�d?�d�}n|j}t|�j�d�d?�}||�}|dkr�|d|�9�}d } nt|d|���\}} | �} ||8�}d|�}x(||�}||k�r:P�n||�d?�}�q$W�| �o\||�|k} | �r�|dk�r||d|��}n|d|��9�}||7�}n|d �dk�r�|d7�}tdt|�|�}|j��}|jt�} |j|�}| |_|S�)N)r/���r%���rP���r+���r-���zsqrt(-x), x > 0r����r��Trx���)r���rO���r����r����r6���r���r5���rN���r����rc���r ���r?���rh���rU���rT���re���r7���r����r_���� _shallow_copy� _set_roundingr���r>���)r.���r/���r:���r?����opr�����c�lr����r��r����r4���r����r>���r'���r'���r)����sqrt� ��s`���� zDecimal.sqrtc�������������C���s����t�|dd�}|d�krt��}|�js&|jr~|�j��}|j��}|s>|r~|dkrX|dkrX|�j|�S�|dkrr|dkrr|j|�S�|�j||�S�|�j|�}|dkr�|�j|�}|dkr�|}n|�}|j|�S�)NT)r����r-���r%���r����)r����r���rO���r����r����r����r����� compare_total)r.���r����r/����sn�onr*��r:���r'���r'���r)���r����%��s&���� zDecimal.maxc�������������C���s����t�|dd�}|d�krt��}|�js&|jr~|�j��}|j��}|s>|r~|dkrX|dkrX|�j|�S�|dkrr|dkrr|j|�S�|�j||�S�|�j|�}|dkr�|�j|�}|dkr�|�}n|}|j|�S�)NT)r����r-���r%���r����)r����r���rO���r����r����r����r����r-��)r.���r����r/���r.��r/��r*��r:���r'���r'���r)���r����O��s&���� zDecimal.minc�������������C���s8���|�j�r dS�|�jdkrdS�|�j|�jd���}|dt|��kS�)NFr%���TrP���)rO���rN���r7���re���)r.����restr'���r'���r)���r����q��s���� zDecimal._isintegerc�������������C���s(���|��s|�j�dkrdS�|�jd|�j���dkS�)Nr%���Tr-���r����r����)rN���r7���)r.���r'���r'���r)���r����z��s����zDecimal._isevenc�������������C���s.���y|�j�t|�j��d�S��tk r(���dS�X�d�S�)Nr-���r%���)rN���re���r7���rq���)r.���r'���r'���r)���r�������s����zDecimal.adjustedc�������������C���s���|�S�)Nr'���)r.���r'���r'���r)���� canonical���s����zDecimal.canonicalc�������������C���s.���t�|dd�}|�j||�}|r |S�|�j||d�S�)NT)r����)r/���)r����r����r����)r.���r����r/���r:���r'���r'���r)����compare_signal���s ����zDecimal.compare_signalc�������������C���sf��t�|dd�}|�jr|j�rtS�|�j�r0|jr0tS�|�j}|�j��}|j��}|sP|�r||kr�t|�j�|�jf}t|j�|jf}||k�r�|r�tS�tS�||kr�|r�tS�tS�tS�|r�|dkr�tS�|dkr�tS�|dkr�tS�|dkr�tS�n4|dkr�tS�|dkr�tS�|dk�r�tS�|dk�rtS�|�|k��rtS�|�|k�r*tS�|�j|jk��rF|�rBtS�tS�|�j|jk�rb|�r^tS�tS�tS�)NT)r����r-���r+���) r����r6����_NegativeOner��r����re���r7����_ZerorN���)r.���r����r/���r<���Zself_nanZ other_nanZself_keyZ other_keyr'���r'���r)���r-�����sf���� zDecimal.compare_totalc�������������C���s&���t�|dd�}|�j��}|j��}|j|�S�)NT)r����)r����r����r-��)r.���r����r/���r�����or'���r'���r)����compare_total_mag���s����zDecimal.compare_total_magc�������������C���s���t�d|�j|�j|�j�S�)Nr%���)r5���r7���rN���rO���)r.���r'���r'���r)���r�������s����zDecimal.copy_absc�������������C���s2���|�j�rtd|�j|�j|�j�S�td|�j|�j|�j�S�d�S�)Nr%���r-���)r6���r5���r7���rN���rO���)r.���r'���r'���r)���r�������s����zDecimal.copy_negatec�������������C���s"���t�|dd�}t|j|�j|�j|�j�S�)NT)r����)r����r5���r6���r7���rN���rO���)r.���r����r/���r'���r'���r)���� copy_sign���s���� zDecimal.copy_signc�������������C���s���|d�krt���}|�j|d�}|r"|S�|�j��d kr2tS�|�s:tS�|�j��dkrNt|��S�|j}|�j��}|�jdkr�|t t |jd�d���kr�tdd|jd��}�n0|�jdkr�|t t |j ���d�d���kr�tdd|j ��d��}n�|�jdko�||�k��r tddd|d���d�|��}n�|�jdk�rB||�d�k��rBtdd|d��|�d��}n�t|��}|j|j�}}|jdk�rj|�}d}xFt||||��\} } | dd t t | ��|�d�����r�P�|d7�}�qpW�tdt | �| �}|j��}|jt�}|j|�}||_|S�)N)r/���r-���r%���rZ���r����rP���r=���rx���r����r����)r���r����r����r4��r��r���r?���r����r6���re���r_���r@���r5���r����rh���rT���rU���r<����_dexpr'��r(��r���r����r>���)r.���r/���r:���r ���adjr)��r*��r����r��r����rU���r>���r'���r'���r)���rU�����sJ����$( " zDecimal.expc�������������C���s���dS�)NTr'���)r.���r'���r'���r)����is_canonicalL��s����zDecimal.is_canonicalc�������������C���s���|�j��S�)N)rO���)r.���r'���r'���r)���� is_finiteT��s����zDecimal.is_finitec�������������C���s ���|�j�dkS�)NrY���)rN���)r.���r'���r'���r)���r"��\��s����zDecimal.is_infinitec�������������C���s ���|�j�dkS�)Nr4���rX���)r4���rX���)rN���)r.���r'���r'���r)���r����`��s����zDecimal.is_nanc�������������C���s,���|�j�s|��rdS�|d�krt��}|j|�j��kS�)NF)rO���r���r!��r����)r.���r/���r'���r'���r)���� is_normald��s ����zDecimal.is_normalc�������������C���s ���|�j�dkS�)Nr4���)rN���)r.���r'���r'���r)���r����l��s����zDecimal.is_qnanc�������������C���s ���|�j�dkS�)Nr-���)r6���)r.���r'���r'���r)���� is_signedp��s����zDecimal.is_signedc�������������C���s ���|�j�dkS�)NrX���)rN���)r.���r'���r'���r)���r����t��s����zDecimal.is_snanc�������������C���s,���|�j�s|��rdS�|d�krt��}|�j��|jk�S�)NF)rO���r���r����r!��)r.���r/���r'���r'���r)����is_subnormalx��s ����zDecimal.is_subnormalc�������������C���s���|�j��o|�jdkS�)NrP���)rO���r7���)r.���r'���r'���r)����is_zero���s����zDecimal.is_zeroc�������������C���s����|�j�t|�j��d�}|dkr4tt|d�d���d�S�|dkrXttd|�d�d���d�S�t|��}|j|j�}}|dkr�t|d|����}t|�}t|�t|��||k��S�|ttd|��|����d�S�)Nr-�������r����r+���r%���r����r����)rN���re���r7���r_���rh���rT���rU���)r.���r9��r)��r*��r�����num�denr'���r'���r)���� _ln_exp_bound���s����zDecimal._ln_exp_boundc������� ������C���s��|d�krt���}|�j|d�}|r"|S�|�s*tS�|�j��dkr:tS�|�tkrFtS�|�jdkr\|jt d�S�t |��}|j|j�}}|j }||�j���d�}x>t|||�}|ddttt|���|�d����r�P�|d7�}q�W�tt|dk��tt|��|��}|j��}|jt�} |j|�}| |_|S�) N)r/���r-���zln of a negative valuer+���rx���r����rZ���r%���)r���r�����_NegativeInfinityr����� _Infinityr��r4��r6���rc���r ���rh���rT���rU���r?���rC���_dlogre���r_���rg���r5���r'��r(��r���r����r>���) r.���r/���r:���r)��r*��r����r ��r$��r����r>���r'���r'���r)����ln���s:���� $ z Decimal.lnc�������������C���s����|�j�t|�j��d�}|dkr,tt|��d�S�|dkrHttd|���d�S�t|��}|j|j�}}|dkr�t|d|����}td|��}t|�t|��||k��d�S�td|��|��}t|�|�|dk��d�S�) Nr-���r+���r%���r���������Z231r����r����)rN���re���r7���r_���rh���rT���rU���)r.���r9��r)��r*��r����rA��rB��r'���r'���r)���r�����s����zDecimal._log10_exp_boundc������� ������C���sH��|d�krt���}|�j|d�}|r"|S�|�s*tS�|�j��dkr:tS�|�jdkrP|jtd�S�|�jd�dkr�|�jdd���dt |�j�d��kr�t |�jt |�j��d��}n�t|��}|j |j�}}|j}||�j���d�}x>t|||�}|dd t tt|���|�d����r�P�|d 7�}q�W�tt |dk��tt|��|��}|j��}|jt�} |j|�}| |_|S�)N)r/���r-���zlog10 of a negative valuer%���r����rP���r+���rx���r����rZ���)r���r����rD��r����rE��r6���rc���r ���r7���re���r���rN���rh���rT���rU���r?���r���_dlog10r_���rg���r5���r'��r(��r���r����r>���) r.���r/���r:���r)��r*��r����r ��r$��r����r>���r'���r'���r)����log10���s:���� .$ z Decimal.log10c�������������C���sV���|�j�|d�}|r|S�|d�kr"t��}|�j��r.tS�|�s@|jtdd�S�t|�j���}|j|�S�)N)r/���zlogb(0)r-���) r����r���r����rE��rc���r ���r���r����r����)r.���r/���r:���r'���r'���r)����logb ��s���� zDecimal.logbc�������������C���s8���|�j�dks|�jdkrdS�x|�jD�]}|dkr dS�q W�dS�)Nr%���FZ01T)r6���rN���r7���)r.����digr'���r'���r)���� _islogical> ��s����zDecimal._islogicalc�������������C���s����|j�t|��}|dkr$d|�|�}n|dk�r<||j��d���}|j�t|��}|dkr`d|�|�}n|dk�rx||j��d���}||fS�)Nr%���rP���)r?���re���)r.���r/����opa�opbZdifr'���r'���r)���� _fill_logicalL ��s����zDecimal._fill_logicalc�������������C���s~���|d�krt���}t|dd�}|�j���s.|j���r8|jt�S�|�j||�j|j�\}}djdd��t||�D���}t d|j d�pxdd�S�)NT)r����rR���c�������������S���s$���g�|�]\}}t�t|�t|�@���qS�r'���)r_���rT���)�.0r���br'���r'���r)���� <listcomp>g ��s����z'Decimal.logical_and.<locals>.<listcomp>r%���rP���)r���r����rM��rc���r ���rP��r7���rm����zipr5���rf���)r.���r����r/���rN��rO��r����r'���r'���r)����logical_andY ��s���� zDecimal.logical_andc�������������C���s(���|d�krt���}|�jtdd|j�d�|�S�)Nr%���r����)r����logical_xorr5���r?���)r.���r/���r'���r'���r)����logical_invertj ��s����zDecimal.logical_invertc�������������C���s~���|d�krt���}t|dd�}|�j���s.|j���r8|jt�S�|�j||�j|j�\}}djdd��t||�D���}t d|j d�pxdd�S�)NT)r����rR���c�������������S���s$���g�|�]\}}t�t|�t|�B���qS�r'���)r_���rT���)rQ��r��rR��r'���r'���r)���rS�� ��s����z&Decimal.logical_or.<locals>.<listcomp>r%���rP���)r���r����rM��rc���r ���rP��r7���rm���rT��r5���rf���)r.���r����r/���rN��rO��r����r'���r'���r)���� logical_orq ��s���� zDecimal.logical_orc�������������C���s~���|d�krt���}t|dd�}|�j���s.|j���r8|jt�S�|�j||�j|j�\}}djdd��t||�D���}t d|j d�pxdd�S�)NT)r����rR���c�������������S���s$���g�|�]\}}t�t|�t|�A���qS�r'���)r_���rT���)rQ��r��rR��r'���r'���r)���rS��� ��s����z'Decimal.logical_xor.<locals>.<listcomp>r%���rP���)r���r����rM��rc���r ���rP��r7���rm���rT��r5���rf���)r.���r����r/���rN��rO��r����r'���r'���r)���rV��� ��s���� zDecimal.logical_xorc�������������C���s����t�|dd�}|d�krt��}|�js&|jr~|�j��}|j��}|s>|r~|dkrX|dkrX|�j|�S�|dkrr|dkrr|j|�S�|�j||�S�|�j��j|j���}|dkr�|�j|�}|dkr�|}n|�}|j|�S�)NT)r����r-���r%���r����) r����r���rO���r����r����r����r����r����r-��)r.���r����r/���r.��r/��r*��r:���r'���r'���r)����max_mag� ��s&���� zDecimal.max_magc�������������C���s����t�|dd�}|d�krt��}|�js&|jr~|�j��}|j��}|s>|r~|dkrX|dkrX|�j|�S�|dkrr|dkrr|j|�S�|�j||�S�|�j��j|j���}|dkr�|�j|�}|dkr�|�}n|}|j|�S�)NT)r����r-���r%���r����) r����r���rO���r����r����r����r����r����r-��)r.���r����r/���r.��r/��r*��r:���r'���r'���r)����min_mag� ��s&���� zDecimal.min_magc�������������C���s����|d�krt���}|�j|d�}|r"|S�|�j��dkr2tS�|�j��dkrTtdd|j�|j���S�|j��}|jt ��|j ���|�j|�}||�kr�|S�|�jtdd|j ��d��|�S�)N)r/���r-���r%���r=���r����r����)r���r����r����rD��r5���r?���r����rG���r(��r����_ignore_all_flagsr����r����r����)r.���r/���r:����new_selfr'���r'���r)���� next_minus� ��s"���� zDecimal.next_minusc�������������C���s����|d�krt���}|�j|d�}|r"|S�|�j��dkr2tS�|�j��dkrTtdd|j�|j���S�|j��}|jt ��|j ���|�j|�}||�kr�|S�|�jtdd|j ��d��|�S�)N)r/���r-���r=���r%���r����r����)r���r����r����rE��r5���r?���r����rG���r(��r���r[��r����r����r����)r.���r/���r:���r\��r'���r'���r)���� next_plus� ��s"���� zDecimal.next_plusc�������������C���s����t�|dd�}|d�krt��}|�j||�}|r.|S�|�j|�}|dkrJ|�j|�S�|dkr^|�j|�}n |�j|�}|j��r�|jt d|j ��|jt��|jt��nD|j ��|jk�r�|jt��|jt��|jt��|jt��|s�|jt��|S�)NT)r����r%���r-���z Infinite result from next_towardr����)r����r���r����r����r7��r^��r]��r����rc���r���r6���r���r���r����r!��r���r ���r���)r.���r����r/���r:���Z comparisonr'���r'���r)����next_toward� ��s4���� zDecimal.next_towardc�������������C���s����|�j���rdS�|�j��rdS�|�j��}|dkr,dS�|d kr8dS�|�j��rN|�jrJdS�dS�|d�kr\t��}|�j|d�rv|�jrrd S�d S�|�jr�dS�dS�d�S�)Nr����r����r-���z +Infinityz -Infinityz-Zeroz+Zero)r/���z -Subnormalz +Subnormalz-Normalz+Normalr����)r����r����r����r?��r6���r���r>��)r.���r/����infr'���r'���r)����number_class+��s,����zDecimal.number_classc�������������C���s���t�d�S�)Nr����)r���)r.���r'���r'���r)����radixU��s����z Decimal.radixc�������������C���s����|d�krt���}t|dd�}|�j||�}|r.|S�|jdkrB|jt�S�|j�t|���ko^|jkn��sn|jt�S�|�j��r~t |��S�t|�}|�j }|jt|��}|dkr�d|�|�}n|dk�r�||�d���}||d���|d�|���}t|�j |jd�p�d|�j�S�)NT)r����r%���rP���)r���r����r����rN���rc���r ���r?���rT���r����r���r7���re���r5���r6���rf���)r.���r����r/���r:����torot�rotdig�topadZrotatedr'���r'���r)����rotateY��s,���� " zDecimal.rotatec�������������C���s����|d�krt���}t|dd�}|�j||�}|r.|S�|jdkrB|jt�S�d|j|j��}d|j|j��}|t|���kox|kn��s�|jt�S�|�j ��r�t |��S�t|�j|�j |�jt|���}|j|�}|S�)NT)r����r%���r+���r����)r���r����r����rN���rc���r ���r@���r?���rT���r����r���r5���r6���r7���r����)r.���r����r/���r:���ZliminfZlimsupr~���r'���r'���r)����scalebz��s"���� zDecimal.scalebc�������������C���s��|d�krt���}t|dd�}|�j||�}|r.|S�|jdkrB|jt�S�|j�t|���ko^|jkn��sn|jt�S�|�j��r~t |��S�t|�}|�j }|jt|��}|dkr�d|�|�}n|dk�r�||�d���}|dk�r�|d�|��}n|d|��}||j�d���}t|�j |jd��pd|�j�S�)NT)r����r%���rP���)r���r����r����rN���rc���r ���r?���rT���r����r���r7���re���r5���r6���rf���)r.���r����r/���r:���rc��rd��re��Zshiftedr'���r'���r)���r�������s2���� " z Decimal.shiftc�������������C���s���|�j�t|��ffS�)N)� __class__r_���)r.���r'���r'���r)���� __reduce__���s����zDecimal.__reduce__c�������������C���s���t�|��tkr|�S�|�jt|���S�)N)�typer���rh��r_���)r.���r'���r'���r)����__copy__���s����zDecimal.__copy__c�������������C���s���t�|��tkr|�S�|�jt|���S�)N)rj��r���rh��r_���)r.����memor'���r'���r)����__deepcopy__���s����zDecimal.__deepcopy__c�������������C���sN��|d�krt���}t||d�}|�jrXt|�j|�}t|�j���}|d�dkrL|d7�}t|||�S�|d�d�krvddg|j�|d<�|d�dkr�t |�j|�j |�jd��}�|j}|d�}|d�k �r|d�dkr�|�j |d �|�}�nF|d�d kr�|�j|�|�}�n*|d�dk�rt|�j �|k�r|�j ||�}�|���rB|�jdk�rB|d�d k�rB|�jd|�}�|�jt|�j ��} |d�dk�r�|���r||d�k �r|d |�} nd } nB|d�d k�r�| } n.|d�dk�r�|�jdk�r�| dk�r�| } nd } | dk��r�d}d| ��|�j �}nP| t|�j �k�r|�j d| t|�j ����}d}n"|�j d�| ���p$d}|�j | d���}| | �} t|�j||| |�S�)N)�_localeconvrj���%�g�Gr+���� precision�eEr-���zfF%ZgGr%���r����rP���rR���i����)r����_parse_format_specifierrO����_format_signr6���r_���r����� _format_alignr����r5���r7���rN���r>���r%��r����re����_format_number)r.���Z specifierr/���rn���specr<����bodyr>���rr��r����r����ru���rv���rU���r'���r'���r)���� __format__���sZ���� " zDecimal.__format__)rN���r7���r6���rO���)rP���N)NN)N)N)N)N)N)N)FN)N)N)N)TN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)NN)N)N)NN)N)NN)NN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)NN)�r1���r2���r3���� __slots__r]����classmethodrp���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r{���r����r����r����r����r����r����r�����__radd__r����r����r�����__rmul__r����r����r����r����r����r����r����r����r����r����r����r����� __trunc__r�����propertyr����r����r����r8���r����r����r����r����r����r����r����r����r�����dictr����r����r����r����r����r���r��r��r��r ��r����r#��r����r%��r&��r�����to_integralr,��r����r����r����r����r����r1��r2��r-��r6��r����r����r7��rU���r:��r;��r"��r����r<��r����r=��r����r>��r?��rC��rG��r��rJ��rK��rM��rP��rU��rW��rX��rV��rY��rZ��r]��r^��r_��ra��rb��rf��rg��r����ri��rk��rm��rz��r'���r'���r'���r)���r���+��s�� �( !@ 2 4 V7;!$K f >,U�n�Y="c*" IK23 .*!'Fc�������������C���s&���t�jt�}|�|_||_||_||_|S�)N)r\���r]���r���r6���r7���rN���rO���)r<���Zcoefficientr����Zspecialr.���r'���r'���r)���r5�����s���� r5���c���������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)rM���c�������������C���s���|j���|�_d�S�)N)rG����new_context)r.���r���r'���r'���r)����__init__9��s����z_ContextManager.__init__c�������������C���s���t���|�_t|�j��|�jS�)N)r���� saved_contextr���r���)r.���r'���r'���r)���� __enter__;��s���� z_ContextManager.__enter__c�������������C���s���t�|�j��d�S�)N)r���r���)r.����t�v�tbr'���r'���r)����__exit__?��s����z_ContextManager.__exit__N)r1���r2���r3���r���r���r���r'���r'���r'���r)���rM���3��s���rM���c������������ ���@���s���e�Zd�Zd�dd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z e Zd�dd�Zdd��Zdd��Zdd��ZdZd d!��Zd"d#��Zd$d%��Zd�d'd(�Zd)d*��Zd+d,��Zd-d.��Zd/d0��Zd1d2��Zd3d4��Zd5d6��Zd7d8��Zd9d:��Z d;d<��Z!d=d>��Z"d?d@��Z#dAdB��Z$dCdD��Z%dEdF��Z&dGdH��Z'dIdJ��Z(dKdL��Z)dMdN��Z*dOdP��Z+dQdR��Z,dSdT��Z-dUdV��Z.dWdX��Z/dYdZ��Z0d[d\��Z1d]d^��Z2d_d`��Z3dadb��Z4dcdd��Z5dedf��Z6dgdh��Z7didj��Z8dkdl��Z9dmdn��Z:dodp��Z;dqdr��Z<dsdt��Z=dudv��Z>dwdx��Z?dydz��Z@d{d|��ZAd}d~��ZBdd���ZCd�d���ZDd�d���ZEd�d���ZFd�d�d��ZGd�d���ZHd�d���ZId�d���ZJd�d���ZKd�d���ZLd�d���ZMd�d���ZNd�d���ZOd�d���ZPd�d���ZQd�d���ZRd�d���ZSd�d���ZTd�d���ZUeUZVdS�)�r���Nc ����������������s>��yt�} W�n�tk r���Y�nX�|d�k r*|n| j|�_|d�k r>|n| j|�_|d�k rR|n| j|�_|d�k rf|n| j|�_|d�k rz|n| j|�_|d�k r�|n| j|�_| d�kr�g�|�_n| |�_�d�kr�| j j ��|�_ n.t�t�s�t�fdd�t ��D���|�_ n�|�_ ��d�k�r tjt d�|�_n0t��t��s4t��fdd�t ���D���|�_n��|�_d�S�)Nc�������������3���s���|�]}|t�|��k�fV��qd�S�)N)rT���)rQ��r����)r��r'���r)���� <genexpr>n��s����z#Context.__init__.<locals>.<genexpr>r%���c�������������3���s���|�]}|t�|��k�fV��qd�S�)N)rT���)rQ��r����)r��r'���r)���r���u��s����)r���� NameErrorr?���r>���r!��r@���r����r�����_ignored_flagsr��rG���r^���r���r���fromkeysr��)r.���r?���r>���r!��r@���r����r����r��r��r���Zdcr'���)r��r��r)���r���U��s.���� zContext.__init__c�������������C���s����t�|t�std|���|dkr<||kr�td||||f���nJ|dkrb||k�r�td||||f���n$||k�sr||kr�td||||f���tj|�||�S�)Nz%s must be an integerz-infz%s must be in [%s, %d]. got: %sr`��z%s must be in [%d, %s]. got: %sz%s must be in [%d, %d]. got %s)r^���rT���rq���rk���r\����__setattr__)r.����namers���ZvminZvmaxr'���r'���r)����_set_integer_checky��s���� zContext._set_integer_checkc�������������C���sh���t�|t�std|���x |D�]}|tkrtd|���qW�x tD�]}||kr>td|���q>W�tj|�||�S�)Nz%s must be a signal dictz%s is not a valid signal dict)r^���r���rq���r���KeyErrorr\���r���)r.���r���r~����keyr'���r'���r)����_set_signal_dict���s���� zContext._set_signal_dictc�������������C���s����|dkr|�j�||dd�S�|dkr0|�j�||dd�S�|dkrH|�j�||dd�S�|dkr`|�j�||dd�S�|d krx|�j�||dd�S�|d kr�|tkr�td|���tj|�||�S�|dks�|d kr�|�j||�S�|dkr�tj|�||�S�td|���d�S�)Nr?���r-���r`��r!��z-infr%���r@���r����r����r>���z%s: invalid rounding moder��r��r���z.'decimal.Context' object has no attribute '%s')r����_rounding_modesrq���r\���r���r���rK���)r.���r���rs���r'���r'���r)���r������s(����zContext.__setattr__c�������������C���s���t�d|���d�S�)Nz%s cannot be deleted)rK���)r.���r���r'���r'���r)����__delattr__���s����zContext.__delattr__c���������� ���C���sN���dd��|�j�j��D��}dd��|�jj��D��}|�j|�j|�j|�j|�j|�j|�j ||ffS�)Nc�������������S���s���g�|�]\}}|r|�qS�r'���r'���)rQ���sigr���r'���r'���r)���rS�����s����z&Context.__reduce__.<locals>.<listcomp>c�������������S���s���g�|�]\}}|r|�qS�r'���r'���)rQ��r���r���r'���r'���r)���rS�����s����) r���itemsr��rh��r?���r>���r!��r@���r����r����)r.���r��r��r'���r'���r)���ri�����s ����zContext.__reduce__c�������������C���s|���g�}|j�dt|�����dd��|�jj��D��}|j�ddj|��d���dd��|�jj��D��}|j�ddj|��d���dj|�d �S�) NzrContext(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d, clamp=%(clamp)dc�������������S���s���g�|�]\}}|r|j��qS�r'���)r1���)rQ��r}���r���r'���r'���r)���rS�����s����z$Context.__repr__.<locals>.<listcomp>zflags=[z, �]c�������������S���s���g�|�]\}}|r|j��qS�r'���)r1���)rQ��r���r���r'���r'���r)���rS�����s����ztraps=[�))rl����varsr��r���rm���r��)r.���r�����namesr'���r'���r)���r�������s����zContext.__repr__c�������������C���s���x|�j�D�]}d|�j�|<�qW�d�S�)Nr%���)r��)r.����flagr'���r'���r)���rH������s����zContext.clear_flagsc�������������C���s���x|�j�D�]}d|�j�|<�qW�d�S�)Nr%���)r��)r.���r���r'���r'���r)����clear_traps���s����zContext.clear_trapsc���������� ���C���s.���t�|�j|�j|�j|�j|�j|�j|�j|�j|�j � }|S�)N) r���r?���r>���r!��r@���r����r����r��r��r���)r.����ncr'���r'���r)���r'�����s����zContext._shallow_copyc���������� ���C���s6���t�|�j|�j|�j|�j|�j|�j|�jj��|�j j��|�j � }|S�)N)r���r?���r>���r!��r@���r����r����r��rG���r��r���)r.���r���r'���r'���r)���rG������s ����zContext.copyc�������������G���sZ���t�j||�}||�jkr(|��j|�f|���S�d|�j|<�|�j|�sN|��j|�f|���S�||��d�S�)Nr-���)�_condition_map�getr���r0���r��r��)r.���Z conditionZexplanationr(����errorr'���r'���r)���rc������s���� zContext._raise_errorc�������������C���s ���|�j�t��S�)N)� _ignore_flagsr��)r.���r'���r'���r)���r[�����s����zContext._ignore_all_flagsc�������������G���s���|�j�t|��|�_�t|�S�)N)r���ri���)r.���r��r'���r'���r)���r������s����zContext._ignore_flagsc�������������G���s<���|rt�|d�ttf�r|d�}x|D�]}|�jj|��q$W�d�S�)Nr%���)r^���rj���ri���r����remove)r.���r��r���r'���r'���r)���� _regard_flags���s���� zContext._regard_flagsc�������������C���s���t�|�j|�j�d��S�)Nr-���)rT���r!��r?���)r.���r'���r'���r)���r������s����z Context.Etinyc�������������C���s���t�|�j|�j�d��S�)Nr-���)rT���r@���r?���)r.���r'���r'���r)���r������s����zContext.Etopc�������������C���s���|�j�}||�_�|S�)N)r>���)r.���rj��r>���r'���r'���r)���r(����s����zContext._set_roundingrP���c�������������C���sj���t�|t�r*||j��ksd|kr*|�jtd�S�t||�d�}|j��r`t|j�|�j |�j �kr`|�jtd�S�|j|��S�)NrQ���zAtrailing or leading whitespace and underscores are not permitted.)r/���zdiagnostic info too long in NaN)r^���r_���ra���rc���r���r���r����re���r7���r?���r����r����)r.���rA��r~���r'���r'���r)����create_decimal#��s����zContext.create_decimalc�������������C���s���t�j|�}|j|��S�)N)r���rp���r����)r.���r}���r~���r'���r'���r)����create_decimal_from_float4��s���� z!Context.create_decimal_from_floatc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)���rg���F��s����zContext.absc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)����add[��s ����zContext.addc�������������C���s���t�|j|���S�)N)r_���r����)r.���r��r'���r'���r)����_applyp��s����zContext._applyc�������������C���s���t�|t�std��|j��S�)Nz,canonical requires a Decimal as an argument.)r^���r���rq���r1��)r.���r��r'���r'���r)���r1��s��s���� zContext.canonicalc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r�������s����!zContext.comparec�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r2��)r.���r��rR��r'���r'���r)���r2�����s���� zContext.compare_signalc�������������C���s���t�|dd�}|j|�S�)NT)r����)r����r-��)r.���r��rR��r'���r'���r)���r-�����s����zContext.compare_totalc�������������C���s���t�|dd�}|j|�S�)NT)r����)r����r6��)r.���r��rR��r'���r'���r)���r6�����s����zContext.compare_total_magc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r����)r.���r��r'���r'���r)���r�������s���� zContext.copy_absc�������������C���s���t�|dd�}t|�S�)NT)r����)r����r���)r.���r��r'���r'���r)����copy_decimal���s���� zContext.copy_decimalc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r����)r.���r��r'���r'���r)���r������s���� zContext.copy_negatec�������������C���s���t�|dd�}|j|�S�)NT)r����)r����r7��)r.���r��rR��r'���r'���r)���r7����s����zContext.copy_signc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)����divide+��s ����zContext.dividec�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)���� divide_intP��s ����zContext.divide_intc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)���r����g��s ����zContext.divmodc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����rU���)r.���r��r'���r'���r)���rU���|��s����zContext.expc�������������C���s���t�|dd�}|j|||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r*��r'���r'���r)���r�������s����zContext.fmac�������������C���s���t�|t�std��|j��S�)Nz/is_canonical requires a Decimal as an argument.)r^���r���rq���r:��)r.���r��r'���r'���r)���r:�����s���� zContext.is_canonicalc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r;��)r.���r��r'���r'���r)���r;�����s����zContext.is_finitec�������������C���s���t�|dd�}|j��S�)NT)r����)r����r"��)r.���r��r'���r'���r)���r"�����s����zContext.is_infinitec�������������C���s���t�|dd�}|j��S�)NT)r����)r����r����)r.���r��r'���r'���r)���r�������s���� zContext.is_nanc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r<��)r.���r��r'���r'���r)���r<�����s����zContext.is_normalc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r����)r.���r��r'���r'���r)���r������s����zContext.is_qnanc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r=��)r.���r��r'���r'���r)���r=����s����zContext.is_signedc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r����)r.���r��r'���r'���r)���r����$��s���� zContext.is_snanc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r>��)r.���r��r'���r'���r)���r>��4��s����zContext.is_subnormalc�������������C���s���t�|dd�}|j��S�)NT)r����)r����r?��)r.���r��r'���r'���r)���r?��J��s����zContext.is_zeroc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����rG��)r.���r��r'���r'���r)���rG��[��s����z Context.lnc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����rJ��)r.���r��r'���r'���r)���rJ��q��s����z Context.log10c�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����rK��)r.���r��r'���r'���r)���rK�����s����zContext.logbc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rU��)r.���r��rR��r'���r'���r)���rU�����s����zContext.logical_andc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����rW��)r.���r��r'���r'���r)���rW�����s����zContext.logical_invertc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rX��)r.���r��rR��r'���r'���r)���rX�����s����zContext.logical_orc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rV��)r.���r��rR��r'���r'���r)���rV�����s����zContext.logical_xorc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r������s����zContext.maxc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rY��)r.���r��rR��r'���r'���r)���rY��&��s����zContext.max_magc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r����7��s����zContext.minc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rZ��)r.���r��rR��r'���r'���r)���rZ��R��s����zContext.min_magc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)����minusc��s����z Context.minusc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)����multiplyt��s ����zContext.multiplyc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r]��)r.���r��r'���r'���r)���r]�����s����zContext.next_minusc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r^��)r.���r��r'���r'���r)���r^�����s����zContext.next_plusc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r_��)r.���r��rR��r'���r'���r)���r_�����s���� zContext.next_towardc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r ��)r.���r��r'���r'���r)���r �����s����zContext.normalizec�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����ra��)r.���r��r'���r'���r)���ra�����s����/zContext.number_classc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)����plus)��s����zContext.plusc�������������C���s:���t�|dd�}|j|||�d�}|tkr2td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r��r����rq���)r.���r��rR��r����r����r'���r'���r)����power:��s ����Iz Context.powerc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r�������s����7zContext.quantizec�������������C���s���t�d�S�)Nr����)r���)r.���r'���r'���r)���rb�����s����z Context.radixc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)���r�������s ����zContext.remainderc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r�������s����zContext.remainder_nearc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rf��)r.���r��rR��r'���r'���r)���rf����s����zContext.rotatec�������������C���s���t�|dd�}|j|�S�)NT)r����)r����r#��)r.���r��rR��r'���r'���r)���r#��1��s����zContext.same_quantumc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����rg��)r.���r��rR��r'���r'���r)���rg��I��s����zContext.scalebc�������������C���s���t�|dd�}|j||�d�S�)NT)r����)r/���)r����r����)r.���r��rR��r'���r'���r)���r����\��s����z Context.shiftc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r,��)r.���r��r'���r'���r)���r,��z��s����zContext.sqrtc�������������C���s8���t�|dd�}|j||�d�}|tkr0td|���n|S�d�S�)NT)r����)r/���zUnable to convert %s to Decimal)r����r����r����rq���)r.���r��rR��r����r'���r'���r)����subtract���s ����zContext.subtractc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)���r�������s����zContext.to_eng_stringc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)���� to_sci_string���s����zContext.to_sci_stringc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r&��)r.���r��r'���r'���r)���r&�����s����zContext.to_integral_exactc�������������C���s���t�|dd�}|j|�d�S�)NT)r����)r/���)r����r����)r.���r��r'���r'���r)���r�������s����zContext.to_integral_value) NNNNNNNNN)N)rP���)N)Wr1���r2���r3���r���r���r���r���r���ri��r����rH���r���r'��rG���rk��rc���r[��r���r���r����r����r����r(��r���r���rg���r���r���r1��r����r2��r-��r6��r����r���r����r7��r���r���r����rU���r����r:��r;��r"��r����r<��r����r=��r����r>��r?��rG��rJ��rK��rU��rW��rX��rV��r����rY��r����rZ��r���r���r]��r^��r_��r ��ra��r���r���r����rb��r����r����rf��r#��rg��r����r,��r���r����r���r&��r����r���r'���r'���r'���r)���r���B��s������ " $# % #2 P:&" c���������������@���s&���e�Zd�Zd Zd dd�Zdd��ZeZdS�)rh���r<���rT���rU���Nc�������������C���sf���|d�krd�|�_�d|�_d�|�_nFt|t�rD|j|�_�t|j�|�_|j|�_n|d�|�_�|d�|�_|d�|�_d�S�)Nr%���r-���r+���)r<���rT���rU���r^���r���r6���r7���rN���)r.���rs���r'���r'���r)���r�����s���� z_WorkRep.__init__c�������������C���s���d|�j�|�j|�jf�S�)Nz(%r, %r, %r))r<���rT���rU���)r.���r'���r'���r)���r����(��s����z_WorkRep.__repr__)r<���rT���rU���)N)r1���r2���r3���r{��r���r����r����r'���r'���r'���r)���rh�����s��� rh���c�������������C���s����|�j�|j�k�r|}|�}n|�}|}tt|j��}tt|j��}|j�td||�d���}||j��d�|k�rpd|_||_�|�jd|j�|j���9��_|j�|_�|�|fS�)Nr-���r+���r����r����)rU���re���r_���rT���r����)r����r����r?���Ztmpr����Ztmp_lenZ other_lenrU���r'���r'���r)���r����/��s����r����c�������������C���sb���|�dkrdS�|dkr |�d|��S�t�t|���}t|�t|jd���}||�k�rPd�S�|�d|���S�d�S�)Nr%���r����rP���)r_���rg���re����rstrip)r4���r����Zstr_nZval_nr'���r'���r)���r��O��s����r��c�������������C���sF���|�dks|dkrt�d��d}x$||kr@|||��|��d?��}}qW�|S�)Nr%���z3Both arguments to _sqrt_nearest should be positive.r-���)rk���)r4���r��rR��r'���r'���r)���� _sqrt_nearestd��s���� r���c�������������C���s2���d|>�|�|?��}}|d|�|d�@��|d@��|k�S�)Nr-���r+���r'���)r��r����rR��r����r'���r'���r)����_rshift_nearests��s����r���c�������������C���s&���t�|�|�\}}|d|�|d@��|k�S�)Nr+���r-���)r����)r��rR��r����r����r'���r'���r)����_div_nearest{��s����r���r��c������� ��� ���C���s����|�|�}d}xn||kr*t�|�||�>�|ksF||krzt�|�||�?�|krzt||�d>�|t||t||���|���}|d7�}qW�tdtt|���d|����}t||�}t||�}x0t|d�dd�D�]}t||�t||�|��}q�W�t||�|�S�)Nr%���r-���r����rZ���i����r����)rg���r���r���r���rT���re���r_���r����) r���M�Lr���R�TZyshift�wr���r'���r'���r)����_ilog���s���� r���c������� ������C���s����|d7�}t�t|���}||�||�dk�}|dkr�d|�}||�|�}|dkrZ|�d|�9�}�nt|�d|���}�t|�|�}t|�}t||�|�}||�} nd}t|d|���} t| |�d�S�)Nr+���r-���r%���r����r��)re���r_���r���r���� _log10_digits) r*��r����r ��r+��r}���r���r����log_dZlog_10Zlog_tenpowerr'���r'���r)���rI�����s ���� rI��c������� ������C���s����|d7�}t�t|���}||�||�dk�}|dkrr||�|�}|dkrR|�d|�9�}�nt|�d|���}�t|�d|��}nd}|r�t�tt|���d�}||�dkr�t|t||���d|��}q�d}nd}t||�d�S�)Nr+���r-���r%���r����r��)re���r_���r���r���rg���r���) r*��r����r ��r+��r}���r���r���r��Z f_log_tenr'���r'���r)���rF�����s"����rF��c���������������@���s���e�Zd�Zdd��Zdd��ZdS�)� _Log10Memoizec�������������C���s ���d|�_�d�S�)NZ/23025850929940456840179914546843642076011014886)rw���)r.���r'���r'���r)���r�����s����z_Log10Memoize.__init__c�������������C���s����|dk�rt�d��|t|�j�kr�d}xLd||�d��}tttd|�|�d��}||�d���d|�krdP�|d7�}q$W�|jd�d�d ��|�_t|�jd�|d����S�) Nr%���zp should be nonnegativerZ���r����r+���r��rP���r-���r����)rk���re���rw���r_���r���r���r���rT���)r.���r ��r��r���rw���r'���r'���r)���� getdigits��s���� z_Log10Memoize.getdigitsN)r1���r2���r3���r���r���r'���r'���r'���r)���r�����s���r���c������� ������C���s����t�|�|>�|��}tdtt|���d|����}t|�|�}||>�}x.t|d�dd�D�]}t|�||��||��}qRW�x6t|d�dd �D�]"}||d�>�}t|||��|�}q�W�||�S�) Nr����rZ���r-���r%���r+���i����r����r����r����)r��rT���re���r_���r���r����) r��r���r���r���r���r��ZMshiftr����r���r'���r'���r)����_iexp&��s���� r���c������� ������C���s����|d7�}t�d|tt|����d��}||�}||�}|dkrH|�d|��}n|�d|���}t|t|��\}}t|d|��}tt|d|��d�||�d�fS�)Nr+���r%���r-���r����i���rZ���)r����re���r_���r����r���r���r���) r*��r����r ��r��r����r����ZcshiftZquotr��r'���r'���r)���r8��K��s����r8��c�������������C���s����t�tt|���|�}t|�|||�d��}||�}|dkrJ||�d|��}nt||�d|���}|dkr�t�t|���|�dk|dkkr�d|d��d�d|��} } q�d|�d�|��} } n,t||d��|d��\} } t| d�} | d7�} | | fS�)Nr-���r%���r����)re���r_���rg���rF��r���r8��)r��r ��r��r��r ��rR��Zlxcr����Zpcr����rU���r'���r'���r)���r��o��s���� r��r���F����5����(�������r@������r����rx���) r�����2�3�4�5�6�7�8r=���c�������������C���s0���|�dkrt�d��t|��}dt|��||d���S�)Nr%���z0The argument to _log10_lb should be nonnegative.r��)rk���r_���re���)r*��Z correctionZstr_cr'���r'���r)���r �����s����r ��c�������������C���sL���t�|�t�r|�S�t�|�t�r t|��S�|r8t�|�t�r8tj|��S�|rHtd|����tS�)NzUnable to convert %s to Decimal)r^���r���rT���ro���rp���rq���r����)r����r����Zallow_floatr'���r'���r)���r�������s���� r����c�������������C���s����t�|t�r|�|fS�t�|tj�rR|�jsDt|�jtt|�j �|j ��|�j�}�|�t|j�fS�|rrt�|tj �rr|jdkrr|j}t�|t�r�t��}|r�d|jt<�n|jtd��|�tj|�fS�ttfS�)Nr%���r-���z;strict semantics for mixing floats and Decimals are enabled)r^���r����_numbersZRationalrO���r5���r6���r_���rT���r7����denominatorrN���� numeratorZComplexr����r����ro���r���r��r���rc���rp���r����)r.���r����r����r/���r'���r'���r)���r�������s$���� r����r��i?B�)r?���r>���r��r��r@���r!��r����r����r[���)r?���r>���r��r��a��� # A numeric string consists of: # \s* (?P<sign>[-+])? # an optional sign, followed by either... ( (?=\d|\.\d) # ...a number (with at least one digit) (?P<int>\d*) # having a (possibly empty) integer part (\.(?P<frac>\d*))? # followed by an optional fractional part (E(?P<exp>[-+]?\d+))? # followed by an optional exponent, or... | Inf(inity)? # ...an infinity, or... | (?P<signal>s)? # ...an (optionally signaling) NaN # NaN (?P<diag>\d*) # with (possibly empty) diagnostic info. ) # \s* \Z z0*$z50*$z�\A (?: (?P<fill>.)? (?P<align>[<>=^]) )? (?P<sign>[-+ ])? (?P<alt>\#)? (?P<zeropad>0)? (?P<minimumwidth>(?!0)\d+)? (?P<thousands_sep>,)? (?:\.(?P<precision>0|(?!0)\d+))? (?P<type>[eEfFgGn%])? \Z c�������������C���s���t�j|��}|d�krtd|����|j��}|d�}|d�}|d�d�k |d<�|d�rv|d�k rbtd|����|d�k rvtd|����|p|d|d<�|p�d|d<�|d �d�kr�d |d <�t|d�p�d�|d<�|d �d�k r�t|d ��|d <�|d �dkr�|d�d�ks�|d�dkr�d|d <�|d�dk�rfd|d<�|d�k�r&tj��}|d�d�k �r@td|����|d�|d<�|d�|d<�|d�|d<�n*|d�d�k�r|d|d<�ddg|d<�d|d<�|S�)NzInvalid format specifier: �fill�align�zeropadz7Fill character conflicts with '0' in format specifier: z2Alignment conflicts with '0' in format specifier: � �>r<���rS����minimumwidthrP���rr��r%���rj��ZgGnr-���r4���rp��� thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: �grouping� decimal_pointrR���rZ���r����)�_parse_format_specifier_regex�matchrk���� groupdictrT����_locale� localeconv)�format_specrn��rt���Zformat_dictr���r���r'���r'���r)���rt��D��sN���� rt��c������� ������C���s����|d�}|d�}||t�|���t�|���}|d�}|dkrF|�|�|�}nj|dkr\||��|�}nT|dkrr|�|�|�}n>|dkr�t�|�d�}|d�|��|��|�||d����}ntd ��|S�) Nr���r���r����<r����=�^r+���zUnrecognised alignment field)re���rk���) r<���ry��rx��r���r���Zpaddingr���r����Zhalfr'���r'���r)���rv�����s����"rv��c�������������C���sp���ddl�m}m}�|�sg�S�|�d�dkrJt|��dkrJ||�d�d��||�d���S�|�d �tjkrd|�d�d ��S�td��d�S�)Nr%���)�chain�repeatr-���r+���z unrecognised format for groupingr����r����r����r����r����)� itertoolsr���r���re���r����CHAR_MAXrk���)r���r���r���r'���r'���r)����_group_lengths���s���� r���c�������������C���s����|d�}|d�}g�}x�t�|�D�]�}|dkr2td��ttt|��|d�|�}|jd|t|����|�|�d������|�d�|���}�||8�}|��r�|dkr�P�|t|�8�}qW�tt|��|d�}|jd|t|����|�|�d������|jt|��S�)Nr���r���r%���zgroup length should be positiver-���rP���)r���rk���r����r����re���rl���rm����reversed)rw���rx��� min_width�sepr����groupsr+��r'���r'���r)����_insert_thousands_sep���s ����$$r���c�������������C���s$���|�rdS�|d�dkr|d�S�dS�d�S�)NrS���r<���z +rR���r'���)�is_negativerx��r'���r'���r)���ru�����s ����ru��c�������������C���s����t�|�|�}|s|d�r"|d�|�}|dks6|d�dkr\ddddd�|d��}|d j||�7�}|d�d krp|d 7�}|d�r�|d�t|��t|��}nd}t|||�}t|||�|�S�) NZaltr���r%���rj��rs��r����r����)r����r����rq��rp��z{0}{1:+}ro��r���r���)ru���formatre���r���rv��)r���ru���rv���rU���rx��r<���Zecharr���r'���r'���r)���rw�����s���� rw��ZInfz-Infr����l������������l��������l������N�Zoi���)N)F)r%���)r��)r��)FF)Fi���)N)r-���r����)|�__all__r1���rC����__version__Z__libmpdec_version__Zmathry���Znumbersr���rD����collectionsr&���Z_namedtupler����ImportErrorr���r���r���r���r���r���r���r���r$����maxsizer ���r!���r"���r#����ArithmeticErrorr���r���r ���r����ZeroDivisionErrorr ���r���r���r���r���r���r ���r���r���rq���r���r��r���r���rI���r\���rA���rE���rK����hasattrrJ���rF���r���r���r���r���r5����Number�registerrM���r���rh���r����rT���r|���r��r��r���r���r���r���rI��rF��r���r���r���r���r8��r��r ��r����r����r���r���r����re�compile�VERBOSE� IGNORECASEr���r`���r����r�����DOTALLr���Zlocaler���rt��rv��r���r���ru��rw��rE��rD��r9���r4��r��r3��r;���� hash_info�modulusr����r`��r����r����r����r����r����r'���r'���r'���r)����<module>u���s~�� & .�������������������������� �������������^ 0",# %$+ * P % )