ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //opt/alt/python311/lib64/python3.11/__pycache__/_pydecimal.cpython-311.opt-2.pyc

hR

	gdZeZdZdZdZddlZddlZddl	Z		ddl
mZeddZ
n#e$rd	Z
YnwxYwd
ZdZdZd
ZdZdZdZdZdZdZe	jdkrdZdZdZndZdZdZeedz
z
ZGddeZGddeZ GddeZ!Gdd e!Z"Gd!d"ee#Z$Gd#d$e!Z%Gd%d&e!e#Z&Gd'd(eZ'Gd)d*e!Z(Gd+d,eZ)Gd-d.eZ*Gd/d0e'e)Z+Gd1d2e'e)e*Z,Gd3d4ee-Z.e e$e'e+e)e,e!e*e.g	Z/e"e!e%e!e&e!e(e!iZ0eeeeeeeefZ1ddl2Z2e2j3d5Z4e5gd6Z6d7Z7d8Z8[2dtd9Z9Gd:d;e:Z;dud=Z<ej=>e;Gd>d?e:Z?Gd@dAe:Z@GdBdCe:ZAdvdDZBeCjDZEdEZFdFZGdGZHdHZIdwdJZJdKZKdLZLGdMdNe:ZMeMjNZOdwdOZPdPZQdQZRdRdSdTdUdVdWdXdYdZd[	fd\ZSdxd]ZTdud^ZUe@d_ee$e+e!ggd`daddbZVe@dcee$e+e!e e,ggdZWe@dceggdZXddlYZYeYjZdeeYj[eYj\zj]Z^eYjZdfj]Z_eYjZdgj]Z`eYjZdheYj[eYjazZb[Y	ddlcZdn#e$rYnwxYwdtdiZedjZfdkZgdydlZhdmZidnZje;doZke;dpZle;dqZme;dZne;dZoe;drZpekelfZqe	jrjsZte	jrjuZve	jrjwZxeydYetdsz
etZz[	dS)z)%DecimalContextDecimalTupleDefaultContextBasicContextExtendedContextDecimalExceptionClampedInvalidOperationDivisionByZeroInexactRounded	SubnormalOverflow	UnderflowFloatOperationDivisionImpossibleInvalidContextConversionSyntaxDivisionUndefined
ROUND_DOWN
ROUND_HALF_UPROUND_HALF_EVEN
ROUND_CEILINGROUND_FLOORROUND_UPROUND_HALF_DOWN
ROUND_05UP
setcontext
getcontextlocalcontextMAX_PRECMAX_EMAXMIN_EMIN	MIN_ETINYHAVE_THREADSHAVE_CONTEXTVARdecimalz1.70z2.4.2N)
namedtuplerzsign digits exponentc|SN)argss 1/opt/alt/python311/lib64/python3.11/_pydecimal.py<lambda>r/srrrrrrrrTllNZolNZoi@TiceZdZ	dZdS)rcdSr+r,selfcontextr-s   r.handlezDecimalException.handlesr0N__name__
__module____qualname__r7r,r0r.rrs($




r0rceZdZdS)r	Nr9r:r;r,r0r.r	r			r0r	ceZdZ	dZdS)r
c|r=t|dj|djdd}||StS)Nr(nT)_dec_from_triple_sign_int_fix_nan_NaN)r5r6r-anss    r.r7zInvalidOperation.handles@	)"47=$q',TJJC<<(((r0Nr8r,r0r.r
r
s(,r0r
ceZdZ	dZdS)rctSr+rFr4s   r.r7zConversionSyntax.handler0Nr8r,r0r.rrs(r0rceZdZ	dZdS)rct|Sr+)_SignedInfinityr5r6signr-s    r.r7zDivisionByZero.handles
t$$r0Nr8r,r0r.rr
s(
%%%%%r0rceZdZ	dZdS)rctSr+rJr4s   r.r7zDivisionImpossible.handle"rKr0Nr8r,r0r.rr(r0rceZdZ	dZdS)rctSr+rJr4s   r.r7zDivisionUndefined.handle-rKr0Nr8r,r0r.rr%rSr0rceZdZdS)rNr=r,r0r.rr0r>r0rceZdZ	dZdS)rctSr+rJr4s   r.r7zInvalidContext.handleGrKr0Nr8r,r0r.rr<s(r0rceZdZdS)r
Nr=r,r0r.r
r
Jr>r0r
ceZdZdS)rNr=r,r0r.rrVsr0rceZdZ	dZdS)rc|jttttfvr
t
|S|dkrF|jtkr
t
|St|d|jz|j	|jz
dzS|dkrF|jtkr
t
|St|d|jz|j	|jz
dzSdS)Nr(9r1)roundingrrrrrNrrBprecEmaxrrOs    r.r7zOverflow.handlews
 / ;;;"4((199=00&t,,#D#gl*:#L5a799
9199;..&t,,#D#gl*:$\',6q8::
:9r0Nr8r,r0r.rras(*
:
:
:
:
:r0rceZdZdS)rNr=r,r0r.rrr0rceZdZdS)rNr=r,r0r.rrrbr0rdecimal_context)r_Eminr`capitalsclampr^flagstrapsc		tS#t$r-t}t||cYSwxYwr+)_current_context_vargetLookupErrorrsetr6s r.rrs_#'')))))  )))s4AAc	|tttfvr(|}|t
|dSr+)rrrcopyclear_flagsrkrnros r.rrsP/><AAA,,..W%%%%%r0c	|t}t|}|D]7\}}|tvrt	d|dt|j||8|S)N'z2' is an invalid keyword argument for this function)r_ContextManageritems_context_attributes	TypeErrorsetattrnew_context)ctxkwargsctx_managerkeyvalues     r.r r s"F{ll!#&&Kllnn55
U)))WWWWXXX'e4444r0c
eZdZ	dZd|dZedZdZdZd}dZ	d	Z
d
ZdZd~dZ
d~d
Zd~dZd~dZd~dZd~dZdZdZdZdZddZd~dZd~dZd~dZddZd~dZeZd~dZd~dZd~d Z e Z!d~d!Z"d"Z#d~d#Z$d~d$Z%d~d%Z&d~d&Z'd~d'Z(d~d(Z)d~d)Z*d~d*Z+d+Z,d,Z-e-Z.e/d-Z0e/d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=e>e6e7e8e9e:e;e<e=;Z?d~d<Z@d=ZAd>ZBd~d?ZCd~d@ZDdAZEd}dBZFd~dCZGd~dDZHd}dEZId~dFZJdGZKdHZLd}dIZMd}dJZNeNZOd~dKZPd~dLZQd~dMZRdNZSdOZTdPZUdQZVd~dRZWd~dSZXd~dTZYdUZZdVZ[d~dWZ\d~dXZ]dYZ^dZZ_d[Z`d\Zad~d]Zbd^Zcd_Zdd`Zed~daZfdbZgdcZhd~ddZideZjd~dfZkd~dgZldhZmdiZnd~djZod~dkZpd~dlZqd~dmZrd~dnZsd~doZtd~dpZud~dqZvd~drZwd~dsZxdtZyd~duZzd~dvZ{d~dwZ|dxZ}dyZ~dzZd}d{ZdS)r)_exprDrC_is_special0Ncz
	t|}t|trt	|dd}|.|t}|td|zS|
ddkrd|_nd|_|
d}|~|
d	pd}t|
d
pd}tt||z|_
|t|z
|_d|_n|
d
}|[tt|pdd|_
|
drd|_nd|_nd|_
d|_d|_|St|trF|dkrd|_nd|_d|_tt%||_
d|_|St|t&r2|j|_|j|_|j
|_
|j|_|St|t(rG|j|_t|j|_
t|j|_d|_|St|t.t0frt|dkrt3dt|dtr
|ddvst3d|d|_|ddkrd|_
|d|_d|_ng}	|dD]S}
t|
tr.d|
cxkrdkr!nn|	s|
dkr|	|
Et3d|ddvrBdt9t|	|_
|d|_d|_not|dtrEdt9t|	pdg|_
|d|_d|_nt3d|St|t:rw|t}|t<dt&|}|j|_|j|_|j
|_
|j|_|StAd|z)N_zInvalid literal for Decimal: %rrP-r1r(intfracexprFdiagsignalNrAFTztInvalid tuple size in creation of Decimal from list or tuple.  The list or tuple should have exactly three elements.r(r1z|Invalid sign.  The first value in the tuple should be an integer; either 0 for a positive number or 1 for a negative number.	zTThe second value in the tuple must be composed of integers in the range 0 through 9.rArzUThe third value in the tuple must be an integer, or one of the strings 'F', 'n', 'N'.;strict semantics for mixing floats and Decimals are enabledzCannot convert %r to Decimal)!object__new__
isinstancestr_parserstripreplacer_raise_errorrgrouprCrrDlenrrlstripabsr_WorkReprPrlisttuple
ValueErrorappendjoinmapfloatr
from_floatrx)clsrr6r5mintpartfracpartrrdigitsdigits           r.rzDecimal.__new__s
	,~~c""eS!!"	

--c26677Ay?(llG++,< AE IKKKwwv#%%


ggennG"776??0b!''%../C00GH$4 5 566	#h--/	#(  wwv# #C$4$4 5 5 < <S A ADIwwx((($'		$'		!$DI #DI#' KeS!!	zz


DICJJDI$DKeW%%	DIDJDI % 1DKeX&&	DJEIDIEIDI$DKed5\***	5zzQ "GHHHuQx--
P%(e2C2C "OPPPqDJQx3	!!H	#'  "1X99E!%--9!u/////////!1UaZZ"MM%000(*89998z)) "C(8(8 9 9DI %aDI'+D$$a#..? "CA3(?(? @ @DI %aDI',D$$$&>???KeU##	$,,  


&&u--EDIDJDI % 1DK6>???r0cv	t|tr)|dkrdnd}d}tt|}nt|trtj|stj|r|t|Stj	d|dkrd}nd}t|
\}}|dz
}t|d|zz}ntdt|||}|tur|S||S)Nr(r1g?zargument must be int or float.)rrrrr_mathisinfisnanreprcopysignas_integer_ratio
bit_lengthrxrBr)rfrPkcoeffrAdresults        r.rzDecimal.from_floats,	(a	>Q11ADAAKKEE
5
!
!	>{1~~
$Q
$s477||#~c1%%,,q66**,,DAq"A!Q$KKEE<===!$r22'>>M3v;;r0cD	|jr|j}|dkrdS|dkrdSdS)NrAr1rrr()rr)r5rs  r._isnanzDecimal._isnans<		)Cczzqqqr0c4	|jdkr|jrdSdSdS)Nrr1r()rrCr5s r._isinfinityzDecimal._isinfinitys/	9z
r1qr0cj	|}|d}n|}|s|r|t}|dkr|td|S|dkr|td|S|r||S||SdS)NFrsNaNr()rrrr
rE)r5otherr6self_is_nanother_is_nans     r._check_nanszDecimal._check_nanss	kkmm= LL <<>>L
	+,
	+$,,a++,<f(,...q  ++,<f(-///
.}}W--->>'***qr0c	|t}|js|jr|r|td|S|r|td|S|r|td|S|r|td|SdS)Nzcomparison involving sNaNzcomparison involving NaNr()rris_snanrr
is_qnanr5rr6s   r._compare_check_nanszDecimal._compare_check_nanss		? llG	3u0	3||~~
3++,<,G,0222
3++,<,G,1333
3++,<,F,0222
3++,<,F,1333qr0c(	|jp
|jdkSNrrrDrs r.__bool__zDecimal.__bool__4s	349#33r0cV	|js|jr:|}|}||krdS||krdSdS|s|sdSd|jzS|s
d|jzS|j|jkrdS|j|jkrdS|}|}||krW|jd|j|jz
zz}|jd|j|jz
zz}||krdS||krd|jzSd|jzS||kr
d|jzSd|jzS)Nr(rr1r)rrrCadjustedrDr)r5rself_inf	other_inf
self_adjustedother_adjustedself_paddedother_paddeds        r._cmpzDecimal._cmp;s	D
	u0	''))H))++I9$$qI%%rq	,
,qu{*++	$##;##2:##1


))N**)c49uz+A&BBK :UZ$)-C(DDLl**q|++dj(((TZ''
^
+
+##4:%&&r0ct||d\}}|tur|S|||rdS||dkS)NT)equality_opFr()_convert_for_comparisonNotImplementedrrrs   r.__eq__zDecimal.__eq__{s^-dEtLLLeN""LE7++	5yy1$$r0ct||\}}|tur|S|||}|rdS||dkSNFr(rrrrr5rr6rGs    r.__lt__zDecimal.__lt__^-dE::eN""L&&ug66	5yy!##r0ct||\}}|tur|S|||}|rdS||dkSrrrs    r.__le__zDecimal.__le__^-dE::eN""L&&ug66	5yy1$$r0ct||\}}|tur|S|||}|rdS||dkSrrrs    r.__gt__zDecimal.__gt__rr0ct||\}}|tur|S|||}|rdS||dkSrrrs    r.__ge__zDecimal.__ge__rr0c	t|d}|js	|r!|jr|||}|r|St||SNTraiseit)_convert_otherrrrrrs    r.comparezDecimal.comparesu	ud333
		%*;	""5'22C

tyy''(((r0c	|jrg|rtd|rt|S|jrtStS|jdkrtd|jt}n!tt|jt}t|j
|ztz}|dkr|n|}|dkrdn|S)Nz"Cannot hash a signaling NaN value.r(
r)rrrxis_nanr__hash__rC_PyHASH_INFrpow_PyHASH_MODULUS
_PyHASH_10INVrrD)r5exp_hashhash_rGs    r.rzDecimal.__hash__s'		'||~~
' DEEE
't,,,:''<'&&9>>2ty/::HH=49*oFFHDI)O;qyyeeufBYYrrC'r0c		t|jttt|j|jSr+)rrCrrrrDrrs r.as_tuplezDecimal.as_tuples3	DJc#ty.A.A(B(BDINNNr0c	|jr2|rtdtd|sdSt	|j}|jdkr|d|jzzd}}nu|j}|dkr"|dzdkr|dz}|dz}|dkr	|dzdk|j}t||zdz
|}|r
||z}||z}d|z|z}|j	r|}||fS)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratiorr(rr1r)
rrr
OverflowErrorrrDrminrrC)r5rArd5d2shift2s      r.rzDecimal.as_integer_ratios<		P{{}}
P !FGGG#$NOOO	4
	NN9>>r49}$aqAA)Bq&&QUaZZaaq&&QUaZZ)B!qb&,,..2B77F
ff2A:	A!tr0c(	dt|zS)Nz
Decimal('%s'))rrs r.__repr__zDecimal.__repr__s>T**r0Fc	ddg|j}|jr5|jdkr|dzS|jdkr
|dz|jzS|dz|jzS|jt	|jz}|jdkr	|d	kr|}n'|sd
}n"|jdkr|d
zdzd
z
}n|d
z
dzd
z}|dkrd}d
d|zz|jz}n^|t	|jkr%|jd|t	|jz
zz}d}n!|jd|}d
|j|dz}||krd}n(|t}ddg|jd||z
zz}||z|z|zS)NrrrInfinityrANaNrr(r1rr.eEz%+d)rCrrrDrrrf)	r5engr6rP
leftdigitsdotplacerrrs	         r.__str__zDecimal.__str__s	
Cy$	1yCj((c!!e|di//f}ty00YTY/

9>>j2oo!HH	0HH
Y#

"Q!+a/HH#Q!+a/Hq==GS8)_,ty8HH
TY
'
'iXc$)nn%< ==GHHi		*GTYxyy11H!!CC$,,*W-.*X:M1NNCg~(3..r0c2	|d|S)NT)rr6)rr5r6s  r.
to_eng_stringzDecimal.to_eng_stringEs	||g|666r0c	|jr||}|r|S|t}|s%|jtkr|}n|}||SNro)rrrr^rcopy_abscopy_negate_fixr5r6rGs   r.__neg__zDecimal.__neg__Ns		""7"33C

? llG	%(K77--//CC""$$Cxx   r0c	|jr||}|r|S|t}|s%|jtkr|}nt
|}||Sr)rrrr^rrrrrs   r.__pos__zDecimal.__pos__ds		""7"33C

? llG	 (K77--//CC$--Cxx   r0Tc	|s|S|jr||}|r|S|jr||}n||}|Sr)rrrrCrr)r5roundr6rGs    r.__abs__zDecimal.__abs__ys		#==??"	""7"33C

:	0,,w,//CC,,w,//C
r0c	t|}|tur|S|t}|js|jr|||}|r|S|rN|j|jkr/|r|tdSt|S|rt|St|j|j}d}|jtkr|j|jkrd}|sH|sFt|j|j}|rd}t|d|}||}|S|sRt!||j|jz
dz
}|||j}||}|S|sRt!||j|jz
dz
}|||j}||}|St'|}t'|}t)|||j\}}t'}	|j|jkr|j|jkr(t|d|}||}|S|j|jkr||}}|jdkr!d|	_|j|jc|_|_n1d|	_n)|jdkrd|	_d\|_|_nd|	_|jdkr|j|jz|	_n|j|jz
|	_|j|	_t|	}||}|S)Nz
-INF + INFr(r1r)r(r()rrrrrrrCrr
rrrr^rrBrmaxr__rescaler
_normalizerPrr)
r5rr6rGrnegativezerorPop1op2rs
          r.__add__zDecimal.__add__sY	u%%N""L? llG	&u0	&""5'22C

!!
%:,,1B1B1D1D,"//0@,OOOt}}$  ""
&u~~%$)UZ(({**tzU[/H/HL	E	tz5;//D
"4c22C((7##CJ	c5:4Q677C..g&677C((7##CJ	c49w|3A566C--W%566C((7##CJtnnuooc355S8sxw#'!!&|S#>>hhw''
w  Sx1}}%(Xsx"#((
X]]FK!'CHchhFK8q==37*FJJ37*FJW
foohhw
r0c	t|}|tur|S|js|jr|||}|r|S|||Sr)rrrrr*rrs    r.__sub__zDecimal.__sub__s!u%%N""L	u0	""5'"::C

||E--//|AAAr0cf	t|}|tur|S|||Sr)rrr,rs   r.__rsub__zDecimal.__rsub__s8!u%%N""L}}T7}333r0c	t|}|tur|S|t}|j|jz}|js|jr|||}|r|S|r*|s|tdSt|S|r*|s|tdSt|S|j
|j
z}|r|s(t|d|}||}|S|j
dkr-t||j
|}||}|S|j
dkr-t||j
|}||}|St|}t|}t|t|j|jz|}||}|S)Nz(+-)INF * 0z0 * (+-)INFr1)rrrrCrrrrr
rNrrBrrDrrr)r5rr6
resultsignrG	resultexpr(r)s        r.__mul__zDecimal.__mul__s	u%%N""L? llGZ%+-

	3u0
	3""5'22C

!!
3Q"//0@-PPP&z22  ""
3Q"//0@-PPP&z22I
*		5	":sI>>C((7##CJ9":uz9EEC((7##CJ:":ty)DDC((7##CJtnnuooz3sw/@+A+A9MMhhw
r0c4	t|}|turtS|t}|j|jz}|js|jr|||}|r|S|r/|r|tdS|r
t|S|r>|tdt|d|S|s9|s|tdS|td|S|s|j|jz
}d}nt!|jt!|jz
|jzdz}|j|jz
|z
}t'|}t'|}	|dkr$t)|jd|zz|	j\}}
n$t)|j|	jd|zz\}}
|
r|d	zdkr|dz
}n7|j|jz
}||kr"|dzdkr|dz}|dz
}||kr	|dzdkt|t-||}||S)
Nz(+-)INF/(+-)INFzDivision by infinityrz0 / 0zx / 0r(r1rr)rrrrCrrrrr
rNr	rBEtinyrrrrrDr_rdivmodrrr)r5rr6rPrGrrshiftr(r)	remainder	ideal_exps            r.__truediv__zDecimal.__truediv__6s"u%%N""!!? llGzEK'
	Du0
	D""5'22C

!!
Qe&7&7&9&9
Q++,<>OPPP!!
-&t,,  ""
D$$W.DEEE'c7==??CCC	G
H++,=wGGG''FFF	)ej(CEE
OOc$)nn4w|CaGE)ej(50C4..C5//Czz#)#'BI*=sw#G#G yy#)#'37R%Z3G#H#H y	
19>>QJE!I
2	Ioo%"*//bLE1HCIoo%"*//tSZZ55xx   r0cz	|j|jz}|r|j}nt|j|j}||z
}|r|s|dkr,t|dd|||jfS||jkrt|}t|}|j
|j
kr!|xjd|j
|j
z
zzc_n |xjd|j
|j
z
zzc_t|j|j\}}	|d|jzkrAt|t|dt|jt|	|fS|td}
|
|
fS)Nrrr(rz%quotient too large in //, % or divmod)rCrrrrrBr%r^r_rrrr6rrr)r5rr6rPr9expdiffr(r)qrrGs           r._dividezDecimal._divideqs	
zEK'	3	IIDIuz22I--//ENN$4$44	@u((**	@gmm$T322MM)W-=>>@
@gl""4..C5//Cw#'!!2#' 1222#' 122#'37++DAq2w|###(s1vvq99(SVVYGGII""#5#JLLCxr0cf	t|}|tur|S|||Sr)rrr:rs   r.__rtruediv__zDecimal.__rtruediv__s;7u%%N""L  w 777r0c	t|}|tur|S|t}|||}|r||fS|j|jz}|r[|r|td}||fSt||tdfS|sX|s|td}||fS|td||tdfS|||\}}||}||fS)Nzdivmod(INF, INF)INF % xzdivmod(0, 0)x // 0x % 0)
rrrrrCrrr
rNrrr?r)r5rr6rGrPquotientr8s       r.
__divmod__zDecimal.__divmod__sy	u%%N""L? llGug..	:zEK'	K  ""
K**+;=OPPCx'-,,-=yIIKK	I
I**+<nMMCx,,^XtLL,,-=wGGII#ll5'::)NN7++	""r0cf	t|}|tur|S|||Sr)rrrGrs   r.__rdivmod__zDecimal.__rdivmod__s;6u%%N""Lg666r0c	t|}|tur|S|t}|||}|r|S|r|tdS|s8|r|tdS|tdS|||d}|	|}|S)NrCrEz0 % 0r1)
rrrrrrr
rr?r)r5rr6rGr8s     r.__mod__zDecimal.__mod__s	u%%N""L? llGug..	J	H''(8)DDD	H
H++,<gFFF++,=wGGGLL003	NN7++	r0cf	t|}|tur|S|||Sr)rrrKrs   r.__rmod__zDecimal.__rmod__83u%%N""L}}T7}333r0c	|t}t|d}|||}|r|S|r|t
dS|s8|r|t
dS|tdS|r$t|}||St|j
|j
}|s+t|jd|}||S|
|
z
}||jdzkr|tS|dkr0|||j}||St%|}t%|}|j|jkr!|xjd	|j|jz
zzc_n |xjd	|j|jz
zzc_t+|j|j\}}	d
|	z|dzz|jkr|	|jz}	|dz
}|d	|jzkr|tS|j}
|	dkrd|
z
}
|	}	t|
t-|	|}||S)NTrzremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)rr1rrrr()rrrrrr
rrrrrrBrCrr_rr%r^rrrr6r)r5rr6rGideal_exponentr<r(r)r=r>rPs           r.remainder_nearzDecimal.remainder_nears	? llGud333ug..	J	G''(8(EGG
G	D
D++,<,BDDD++,=,BDDD	%$--C88G$$$TY
33	%"4:sNCCC88G$$$--//ENN$4$44glQ&&&''(:;;;b==--0@AAC88G$$$tnnuoo7cgGGrCGcg-..GGGGGrCGcg-..GGcgsw''1
Q3!A#;  
LA
FAGL   ''(:;;;zq55T6DAtSVV^<<xx   r0c	t|}|tur|S|t}|||}|r|S|rI|r|tdSt|j|jzS|sF|r)|td|j|jzS|tdS|||dS)Nz
INF // INFrDz0 // 0r()rrrrrrr
rNrCrrr?rs    r.__floordiv__zDecimal.__floordiv__1su%%N""L? llGug..	J	A  ""
A++,<lKKK&tzEK'?@@	I
I++NH,0J,DFFF++,=xHHH||E7++A..r0cf	t|}|tur|S|||Sr)rrrSrs   r.
__rfloordiv__zDecimal.__rfloordiv__Ms;8u%%N""L!!$!888r0c	|r/|rtd|jrdnd}nt	|}t|S)Nz%Cannot convert signaling NaN to floatz-nannan)rrrrCrrr5ss  r.	__float__zDecimal.__float__Ts]#;;==	||~~
J !HIII*/%AAD		AQxxr0cX	|jrF|rtd|rt	dd|jz}|jdkr"|t|jzd|jzzS|t|jd|jpdzS)NzCannot convert NaN to integerz"Cannot convert infinity to integerrr(rr)	rrrrrrCrrrDrXs  r.__int__zDecimal.__int__^s?	J{{}}
J !@AAA!!##
J#$HIII
$*9>>S^^#B	M11S:DI:.5#6666r0c|Sr+r,rs r.realzDecimal.realmsr0c tdSNr(rrs r.imagzDecimal.imagqsqzzr0c|Sr+r,rs r.	conjugatezDecimal.conjugateusr0c:tt|Sr+)complexrrs r.__complex__zDecimal.__complex__xsuT{{###r0c	|j}|j|jz
}t||krI|t||z
dd}t|j||jdSt|S)NrT)	rDr_rgrrrBrCrr)r5r6payloadmax_payload_lens    r.rEzDecimal._fix_nan{sz@)",6w<</))c'll?:;;<CCCHHG#DJDIIIt}}r0c 	|jr8|r||St|S|}|}|s|j|g|j}tt|j
||}||j
kr0|tt|jd|St|St|j|j
z|jz
}||krW|t$d|j}|t&|t(|S||k}|r|}|j
|krt|j|j
z|z
}	|	dkrt|jd|dz
}d}	|j|j}
|
||	}|jd|	pd}|dkrFt/t1|dz}t||jkr|dd}|dz
}||kr"|t$d|j}nt|j||}|r|r|t2|r|t4|r|t&|t(|s|t|S|r|t4|jdkrP|j
|krE|t|jd|j
|z
zz}
t|j|
|St|S)Nr
above Emaxr(r0r1r)rrrErr5Etopr`rgrr$rrr	rBrCrrDr_rrr
_pick_rounding_functionr^rrrr)r5r6r5rmexp_maxnew_expexp_minrGself_is_subnormalrrounding_methodchangedrrs              r.rzDecimal._fixsw		%{{}}
%}}W---t}}$

||~~	%|T*7=9G#di//99G$)##$$W---'
CAAAt}}$di..49,w|;T>>&&xtzJJC  )))  )))J#eO	G9w^^di/'9Fzz'
CCC":7;KLO%odF33GIgvg&-#E{{CJJqL))u::,,!#2#JEqLG~~**8\4:NN&tz5'BB
0,
0$$Y/// 
0$$Y///
.$$W---  )))
.$$W---J	,  +++=A$)d"2"2  ))))c49t+;&<<K#DJTBBBt}}r0c6	t|j|rdSdS)Nr(r)
_all_zerosrDr5r_s  r._round_downzDecimal._round_downs#6di&&	12r0c0	||Sr+)rxrws  r.	_round_upzDecimal._round_ups!  &&&&r0cX	|j|dvrdSt|j|rdSdS)N56789r1r(r)rDrvrws  r._round_half_upzDecimal._round_half_ups9'9T?g%%1
	4
(
(	12r0c\	t|j|rdS||S)Nr_exact_halfrDr}rws  r._round_half_downzDecimal._round_half_downs2ty$''	-2&&t,,,r0c	t|j|r|dks|j|dz
dvrdS||S)Nr(r102468rrrws  r._round_half_evenzDecimal._round_half_evensP/ty$''	-diQ/7::2&&t,,,r0ch	|jr||S||Sr+rCrxrws  r._round_ceilingzDecimal._round_ceilings:6:	+##D)))$$T****r0ch	|js||S||Sr+rrws  r._round_floorzDecimal._round_floors:5z	+##D)))$$T****r0c	|r'|j|dz
dvr||S||S)Nr105)rDrxrws  r._round_05upzDecimal._round_05upsM7	+DId1f%T11##D)))$$T****r0)rrrrrrrrc`	|Kt|tstdtdd|}||S|jr2|rtdtdt|	dtS)Nz+Second argument to round should be integralr(r0cannot round a NaNcannot round an infinity)rrrxrBquantizerrrrr%r)r5rArs   r.	__round__zDecimal.__round__0s-	\
=a%%
O MNNN"1cA2..C==%%%	@{{}}
@ !5666#$>???4==O44555r0c	|jr2|rtdtdt	|dtSNrrr()rrrrrr%rrs r.	__floor__zDecimal.__floor__ns`		@{{}}
@ !5666#$>???4==K00111r0c	|jr2|rtdtdt	|dtSr)rrrrrr%rrs r.__ceil__zDecimal.__ceil__}s`		@{{}}
@ !5666#$>???4==M22333r0c	P	t|d}t|d}|js|jr|t}|jdkr|t
d|S|jdkr|t
d|S|jdkr|}n|jdkr|}n|jdkr8|s|t
dSt|j|jz}n|jdkr7|s|t
dSt|j|jz}n_t|j|jztt|jt|jz|j|jz}|||S)	NTrrrrArzINF * 0 in fmaz0 * INF in fma)
rrrrrr
rNrCrBrrrDr*)r5rthirdr6products     r.fmazDecimal.fmas	ud333ud333	?u0	?$,,yC++,<fdKKKzS  ++,<feLLLyCs""c!!B"//0@0@BBB)$*u{*BCs""B"//0@0@BBB)$*u{*BC&tzEK'?'*3ty>>C
OO+K'L'L'+y5:'=??Gug...r0c2	t|}|tur|St|}|tur|S|t}|}|}|}|s|s|r|dkr|t
d|S|dkr|t
d|S|dkr|t
d|S|r||S|r||S||S|r(|r|s|t
dS|dkr|t
dS|s|t
dS||j	kr|t
dS|s|s|t
dS|
rd}n|j}tt|}t|}t|}	|j
|zt!d	|j|z|z}t%|	jD]}
t!|d	|}t!||	j
|}t'|t)|dS)
Nrrz@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)rrrrrr
rE
_isintegerrr__isevenrCrrrto_integral_valuerrrangerBr)r5rmodulor6rr
modulo_is_nanrPbaseexponentis           r.
_power_modulozDecimal._power_modulosa/u%%N""L''^##M? llGkkmm||~~


	,,	,-	,a++,<f(,...q  ++,<f(-///!!++,<f(.000
.}}W---
/~~g...??7+++!!	M  ""	M!!##	M''(8)LMM
M199''(8)OPP
P	J''(8(HJJ
J
??,,''(8);<<
<	?T	?''(8)>??
?==??	DD:DS[[!!..0011E3355666!CDHf$=$==Gx|$$	)	)AtR((DD4v..c$ii333r0c		t|}|j|j}}|dzdkr|dz}|dz
}|dzdkt|}|j|j}}|dzdkr|dz}|dz
}|dzdk|dkr||z}|dzdkr|dz}|dz
}|dzdk|dkrdS|d|zz}	|jdkr|	}	|r9|jdkr.|jt|z}
t|	|
z
|dz
}nd}tddd|zz|	|z
S|jdkrq|dz}|dvr||z|krdSt|dz
}
|dzdz}|tt|krdSt|
|z|}
t||z|}|
|dS|
|krdSd	|
z}n|d	krt|d
zdz}
td	|
z|\}}|rdS|d	zdkr|d	z}|
dz}
|d	zdk|dzdz}|tt|krdSt|
|z|}
t||z|}|
|dS|
|krdSd|
z}ndS|d|zkrdS|
|z
}tdt||S|dkr|d|zzd}}n|dkr3ttt||z|krdSt|}ttt||z|krdS|d|z}}|dz|dzcxkrdkr"nn|dz}|dz}|dz|dzcxkrdkn|d	z|d	zcxkrdkr"nn|d	z}|d	z}|d	z|d	zcxkrdkn|dkrz||krdSt||\}}|dkrdSdt||zz}	t|||dz
z\}}||krn||dz
z|z|z}/||kr|dksdS|}|dkr||dzt|zkrdS||z}||z}|d|zkrdSt|}|rF|jdkr;|jt|z}
t||
z
|t|z
}nd}td|d|zz||z
S)Nrr(r1r0r)r]ArrrTd)rrrrPrrCrrrB_nbitsrr_decimal_lshift_exactr6r	_log10_lb)r5rpxxcxeyycyerrPzeros
last_digitremaxr8rrAxc_bitsremar=r>str_xcs                        r._power_exactzDecimal._power_exact
sC	Br
TNNB2gll2IB!GB2gll
UOOB2gll2IB!GB2gll77"HBr'Q,,r	ar'Q,,AvvtBF{Hv{{$9!!
ekQ&6&6!%3u::!5H^3QqS99#AsSYGGG
6Q;;bJY&&8r>>42JJqL6tRxSYY''4*!b&"55*27B779
4t884Tq2JJrM2% &q!tR 0 0
I 41fkk1HBFA1fkktQwSYY''4)!b&"55*27B779
4t884TtRU{{tBB#As2ww33377b"f9aqAAQww3s3r"u:://B366tRjjG3s2www''((RC//trRCyqAa%1q5%%%%A%%%%%aaa%1q5%%%%A%%%%a%1q5%%%%A%%%%%aaa%1q5%%%%A%%%%

q55!||tRmmGBaxxtr

{A~&&A
)b!ac(++166AaC1q(A
)FFqAvvtB66a!C%2...4
U
a
A::4
R	%+"2"2!Ys5zz1N>)1S[[=99EEE6#e)#3RX>>>r0c	|||||St|}|tur|S|t}|||}|r|S|s$|s|tdStSd}|jdkr\|	r|
sd}n|r|tdS|}|s)|jdkrt|ddSt|S|r)|jdkr
t|St|ddS|tkr|	rm|jdkrd}n"||jkr|j}nt!|}|j|z}|d|jz
kr$d|jz
}|t$n>|t&|t$d|jz
}t|dd|zz|S|}|r1|jdk|dkkrt|ddSt|Sd}d}	||z}
|dk|jdkkr?|
t-t/|jkrt|d|jdz}nI|}|
t-t/|krt|d|dz
}|C|||jdz}|#|dkrtd|j|j}d}	||j}t9|}
|
j|
j}}t9|}|j|j}}|jdkr|}d	}	t?||||||z\}}|d
dt-t/||z
dz
zzzrn|d	z
}Kt|t/||}|	r|	sut-|j|jkrH|jdzt-|jz
}t|j|jd|zz|j|z
}| }|!tDD]}d|j#|<
|$|}|t&|j%tLr|tN|j%tPr!|tPd|jtNtLt&t$tRfD]$}|j%|r||%n|$|}|S)
Nz0 ** 0r(r1z+x ** y with x negative and y not an integerrr0FTrrrrl)*rrrrrrr
_OnerCrrrrBrNrr_rrr
rr_log10_exp_boundrrr`r5rrDrrrP_dpowerrqrr_signalsrirrhrrrr	)r5rrr6rGresult_sign
multiplierrself_adjexactboundr5rrrrrrrextrarr<
newcontext	exceptions                        r.__pow__zDecimal.__pow__s2	.%%eVW===u%%N""L? llGug..	J	
++,<hGGG:??!!
G}}$"#KG"//0@EGGG##%%D	4{a'S!<<<&{33	={a&{33'S!<<<
4<<!!
%
;!##!"JJW\))!(JJ!$UJi*,7<''GL.C((111$$W---$$W---n#KS#XsCCC==??	4q hl33'S!<<<&{33%%''%..*:*::Mu{a/00C--....&{CaHHMMOOECKK((((&{CqAA;##E7<!+;<<C!##*1chAAC;AAUAEBAUAEBv{{SE
$RRQuW==
sAb3s5zz??1#4Q#6778
	
#;E

C@@C"	$))++"	$38}},,!,*S]]:&sy#(3w;2F'*x'799!J""$$$%
0
0	./
 ++((:&&C
##G,,,	*
3''	222)
H$$X|SYGGG&	7GWL
4
4	#I.4((333
4
((7##C
r0cf	t|}|tur|S|||Sr)rrrrs   r.__rpow__zDecimal.__rpow__	rNr0c0	|t}|jr||}|r|S||}|r|S|st|jddS|j|g|j	}t|j}|j}|j|dz
dkr*||kr$|dz
}|dz}|j|dz
dkr||k$t|j|jd||S)Nrorr(r1)
rrrrrrBrCr`rmrgrrDr)r5r6rGduproendrs       r.	normalizezDecimal.normalize	s"M? llG	""7"33C

ii  ??	J	7#CIsA666<0?#(mmhhs1uo$$w1HC1HChs1uo$$w 	38DSD>3???r0c	t|d}|t}||j}|js|jr|||}|r|S|s|rR|r#|rt
|S|tdS|	|j
cxkr|jksn|tdS|s0t|j
d|j
}||S|}||jkr|tdS||j
z
dz|jkr|tdS||j
|}||jkr|tdSt%|j|jkr|tdS|r7||jkr|t*|j
|j
kr:||kr|t,|t.||}|S)	NTrzquantize with one INFz)target exponent out of bounds in quantizerz9exponent of quantize result too large for current contextr1z7quantize result has too many digits for current context)rrr^rrrrrr
r5rr`rBrCrrr_r%rrDrerrr
)r5rr^r6rGrs      r.rzDecimal.quantize	s	S$///? llG'H		As		A""300C

  
AD$4$4$6$6
A??$$))9)9););)"4==(++,<(?AAA

38;;;;w|;;;;''(8>@@
@	%"4:sCH==C88G$$$


7<''''(8(cee
e38#a'',66''(8(acc
cmmCHh//<<>>GL((''(8(cee
esx==7<''''(8(acc
c	,3<<>>GL00  +++8did{{$$W---  )))hhw
r0c	t|d}|js|jrP|r|p'|o|S|j|jkSr)rrris_infiniterrs   r.same_quantumzDecimal.same_quantum/
s	ud333	@u0	@KKMM4ellnn?$$&&>5+<+<+>+>
@yEJ&&r0c	|jrt|S|st|jd|S|j|kr)t|j|jd|j|z
zz|St
|j|jz|z
}|dkrt|jd|dz
}d}|j|}|||}|jd|pd}|dkrtt|dz}t|j||S)Nrr(r0r1)
rrrBrCrrDrrnrr)r5rr^r
this_functionrtrs       r.r%zDecimal._rescale>
s 			!4== 	:#DJS9999#DJ(,	CS4I(I3PP
P
TY$)+c1A::#DJSU;;DF4X>
-f--	'6'")ca<<E

1%%E
E3777r0cn	|dkrtd|js|st|S||dz|z
|}||kr.||dz|z
|}|S)Nr(z'argument should be at least 1 in _roundr1)rrrr%r)r5placesr^rGs    r._roundzDecimal._round`
s	Q;;FGGG	!4	!4== mmDMMOOA-f4h??
<<>>T]]__,,,,s||~~a/6AAC
r0c	|jr)||}|r|St|S|jdkrt|S|st	|jddS|t
}||j}|d|}||kr|	t|	t|S)Nror(r)rrrrrBrCrr^r%rrr
r5r^r6rGs    r.to_integral_exactzDecimal.to_integral_exactw
s		!""7"33C

4== 9>>4== 	8#DJQ777? llG'HmmAx(($;;  )))W%%%
r0c	|t}||j}|jr)||}|r|St	|S|jdkrt	|S|d|S)Nror()rr^rrrrr%rs    r.rzDecimal.to_integral_value
sN? llG'H	!""7"33C

4== 9>>4== ==H---r0cD	|t}|jrH||}|r|S|r|jdkrt|S|s3t
|jd|jdz}||S|jdkr|	tdS|jdz}t|}|j
dz	}|j
dzr%|jdz}t|jdz	dz}n!|j}t|jdzdz	}||z
}|dkr|d|zz}d	}	nt#|d|z\}}
|
}	||z}d|z}	||z}||krn	||zdz	}|	o||z|k}	|	r|dkr	|d|zz}n	|d|zz}||z
}n|d
zdkr|dz
}t
dt%||}|}|t*}
||}|
|_|S)Nror(rrr1zsqrt(-x), x > 0rrTr)rrrrrCrrBrrrr
r_rrrrrDr6r
_shallow_copy
_set_roundingrr^)r5r6rGr_oprclr7rr8rAr=r^s              r.sqrtzDecimal.sqrt
s-? llG	%""7"33C

!!
%djAoot}}$	%"4:sDINCCC88G$$$:??''(8:KLLL,|A~d^^FaK
6A:	&ATY1$)AAADIq A%AQA::
eOAEE!!S5&[11LAy!ME	U

H	1AAvvEQJ	"!A#(	zzb%iR%Z
JAA1uzzQq#a&&!,,''))((99hhw#
r0c
	t|d}|t}|js|jr|}|}|s|rX|dkr|dkr||S|dkr|dkr||S|||S||}|dkr||}|dkr|}n|}||SNTrr1r(rrrrrrrr
compare_totalr5rr6snonrrGs       r.r$zDecimal.max
s	
ud333? llG
	8u0
	8BB
8R
877rQww99W---77rQww ::g...''w777IIe66""5))A77CCCxx   r0c
	t|d}|t}|js|jr|}|}|s|rX|dkr|dkr||S|dkr|dkr||S|||S||}|dkr||}|dkr|}n|}||Srrrs       r.rzDecimal.min4s	
ud333? llG
	8u0
	8BB
8R
877rQww99W---77rQww ::g...''w777IIe66""5))A77CCCxx   r0c	|jrdS|jdkrdS|j|jd}|dt|zkS)NFr(Tr)rrrDr)r5rests  r.rzDecimal._isintegerVsL0	59>>4y$s3t99}$$r0cP	|r|jdkrdS|jd|jzdvS)Nr(Trr)rrDrs r.rzDecimal._iseven_s4H	ty1}}4yDI&'11r0cf		|jt|jzdz
S#t$rYdSwxYw)Nr1r()rrrDrxrs r.rzDecimal.adjustedesF2	9s49~~-11			11	s"
00c	|Sr+r,rs r.	canonicalzDecimal.canonicalms	
r0c	t|d}|||}|r|S|||SNTrro)rrrrs    r.compare_signalzDecimal.compare_signalusS	
u555&&ug66	J||E7|333r0cV	t|d}|jr|jstS|js|jrtS|j}|}|}|s|r||krit|j|jf}t|j|jf}||kr|rtStS||kr|rtStStS|r5|dkrtS|dkrtS|dkrtS|dkrtSn4|dkrtS|dkrtS|dkrtS|dkrtS||krtS||krtS|j|jkr|rtStS|j|jkr|rtStStS)NTrr1r)	rrC_NegativeOnerrrrD_Zeror)r5rr6rPself_nan	other_nanself_key	other_keys        r.rzDecimal.compare_totals	ud333:	 ek	 z	ek	Kz;;==LLNN	"	(y"	(9$$ty>>494
OOUZ7	i'',#++i''$++#
(q==''>>Kq==''>>K"q==K>>''q==K>>''%<<%<<K9uz!!
$##9uz!!
##r0c	t|d}|}|}||Sr)rrr)r5rr6rYos     r.compare_total_magzDecimal.compare_total_magsI	ud333MMOONNq!!!r0cF	td|j|j|jSr`)rBrDrrrs r.rzDecimal.copy_abss 549di9IJJJr0c	|jr!td|j|j|jStd|j|j|jS)Nr(r1)rCrBrDrrrs r.rzDecimal.copy_negatesF4:	O#Aty$)T=MNNN#Aty$)T=MNNNr0cr	t|d}t|j|j|j|jSr)rrBrCrDrrrs   r.	copy_signzDecimal.copy_signs;2ud333TY $	4+;==	=r0c*	|t}||}|r|S|dkrtS|stS|dkrt|S|j}|}|jdkrF|tt|jdzdzkrtdd|jdz}nb|jdkr`|tt|
dzdzkr'tdd|
dz
}n|jdkr&||krtddd|dz
zzdz|}n|jdkr&||dz
krtdd|dzz|dz
}nt|}|j|j}}|jdkr|}d}	t%||||z\}	}
|	d
dtt|	|z
dz
zzzrn|dz
}Itdt|	|
}|}|t*}||}||_|S)Nrorr1r(rr0rr]Trr)rrrrrrr_rrCrrr`rBr5rrrrP_dexprrrrr^)r5r6rGradjrrrrrrr^s            r.rzDecimal.exps ? llGw//	J##L	K""4== 
Lmmoo:??sSgl1na-?)@)@%A%AAA"1c7<>::CC
Z1__s30@0BA/E+F+F'G'G!G!G"1c7==??1+<==CC
Z1__r"1cC1Io&;aR@@CC
Z1__r!t"1c1Q3i!A66CC$B626qAw!||B
E
"1a511
sAb3s5zz??1#4Q#6778
	
#1c%jj#66C''))((99hhw#
r0c	dS)NTr,rs r.is_canonicalzDecimal.is_canonical1s	
tr0c	|jSr+)rrs r.	is_finitezDecimal.is_finite9s	
###r0c	|jdkS)Nrrrs r.rzDecimal.is_infiniteAsFyCr0c	|jdvS)Nrrrs r.rzDecimal.is_nanEsLyJ&&r0ct	|js|sdS|t}|j|kSNF)rrrerrs  r.	is_normalzDecimal.is_normalIs?M	4	5? llG|t}}..r0c	|jdkS)NrArrs r.rzDecimal.is_qnanQsIyCr0c	|jdkSNr1)rCrs r.	is_signedzDecimal.is_signedUsFzQr0c	|jdkS)Nrrrs r.rzDecimal.is_snanYsMyCr0ct	|js|sdS|t}||jkSr)rrrrers  r.is_subnormalzDecimal.is_subnormal]s?G	4	5? llG}}--r0c*	|jo
|jdkSrrrs r.is_zerozDecimal.is_zeroesD##8	S(88r0c"	|jt|jzdz
}|dkr%tt|dzdzdz
S|dkr(ttd|z
dzdzdz
St	|}|j|j}}|dkrKt|d|zz
}t|}t|t|z
||kz
S|ttd|z|z
zdz
S)Nr1rrrr(rrrDrrrrr5r	rrrnumdens       r.
_ln_exp_boundzDecimal._ln_exp_boundis	i#di..(1,!88s3r62:''!++"99sBsFB;?++,,q00
d^^vrv1!88aQBh--Ca&&Cs88c#hh&#)443s2r6A:'''!++r0c
H	|t}||}|r|S|stS|dkrtS|t
krtS|jdkr|tdSt|}|j|j}}|j
}||z
dz}	t|||}|ddt!t#t%||z
dz
zzzrn|dz
}Pt't|d	kt#t%||}|}|t,}	||}|	|_|S)
Nror1zln of a negative valuerTrrrr()rr_NegativeInfinityr	_InfinityrrrCrr
rrrr_r#_dlogrrrrBrrrrr^
r5r6rGrrrrrrr^s
          r.lnz
Decimal.lns=? llGw//	J	%$$""4<<L:??''(8(@BB
Bd^^vrv1LT'')))A-	!Q''E"s3s5zz??33A5a7889
aKF	s57||SU__vgFF''))((99hhw#
r0c(	|jt|jzdz
}|dkrtt|dz
S|dkr"ttd|z
dz
St	|}|j|j}}|dkrQt|d|zz
}td|z}t|t|z
||kz
dzStd|z|z
}t||z|dkz
dz
S)	Nr1rrr(rr231rr s       r.rzDecimal._log10_exp_bounds	i#di..(1,!88s3xx==?""99s2c6{{##A%%
d^^vrv1!88aQBh--Cc!e**Cs88c#hh&#)4q88"qb&(mm3xx!|sU{+a//r0c
	|t}||}|r|S|stS|dkrtS|jdkr|tdS|jddkrX|jdddt|jdz
zkr-t|jt|jzdz
}nt|}|j
|j}}|j}||z
dz}	t#|||}|d	d
tt%t'||z
dz
zzzrn|dz
}Pt)t|dkt%t'||}|}|t.}	||}|	|_|S)Nror1zlog10 of a negative valuer(r0rrTrrr)rrr%rr&rCrr
rDrrrrrrr_r_dlog10rrrBrrrrr^r(s
          r.log10z
Decimal.log10s4? llGw//	J	%$$"":??''(8(CEE
E9Q<349QRR=CTY!9K4L#L#L$)c$)nn4q899CC$B626qAAt,,...q0F
1f--Ab3s3u::#7#7#9!#;<<=!
#3uQw<<SZZ6'JJC''))((99hhw#
r0c6	||}|r|S|t}|rtS|s|t
ddSt
|}||S)Nrozlogb(0)r1)	rrrr&rrrrrrs   r.logbzDecimal.logb
s	w//	J? llG		F''	1EEE
dmmoo&&xx   r0cZ	|jdks|jdkrdS|jD]	}|dvrdS
dS)Nr(F01T)rCrrD)r5digs  r.
_islogicalzDecimal._islogical#
sN	:??di1nn59		C$uutr0c|jt|z
}|dkr	d|z|z}n|dkr||jd}|jt|z
}|dkr	d|z|z}n|dkr||jd}||fS)Nr(r)r_r)r5r6opaopbdifs     r.
_fill_logicalzDecimal._fill_logical1
slSXX%77c'C-CC
1WWw|mnn%ClSXX%77c'C-CC
1WWw|mnn%CCxr0c	|t}t|d}|r|s|tS|||j|j\}}ddt||D}td|
dpddS)NTrrclg|]1\}}tt|t|z2Sr,rr.0rbs   r.
<listcomp>z'Decimal.logical_and.<locals>.<listcomp>L
4EEE1#c!ffSVVm,,EEEr0r(rrrr5rr
r:rDrziprBrr5rr6r7r8rs      r.logical_andzDecimal.logical_and>
I? llGud333  	:(8(8(:(:	:''(8999''EJGG
cEECEEEFF6==#5#5#<a@@@r0c~	|t}|tdd|jzd|S)Nr(r0)rlogical_xorrBr_rs  r.logical_invertzDecimal.logical_invertO
sD$? llG 03w|3CA F F '))	)r0c	|t}t|d}|r|s|tS|||j|j\}}ddt||D}td|
dpddS)NTrrclg|]1\}}tt|t|z2Sr,r=r>s   r.rAz&Decimal.logical_or.<locals>.<listcomp>d
rBr0r(rrCrEs      r.
logical_orzDecimal.logical_orV
sH? llGud333  	:(8(8(:(:	:''(8999''EJGG
cEECEEEFF6==#5#5#<a@@@r0c	|t}t|d}|r|s|tS|||j|j\}}ddt||D}td|
dpddS)NTrrclg|]1\}}tt|t|z2Sr,r=r>s   r.rAz'Decimal.logical_xor.<locals>.<listcomp>u
rBr0r(rrCrEs      r.rIzDecimal.logical_xorg
rGr0cR	t|d}|t}|js|jr|}|}|s|rX|dkr|dkr||S|dkr|dkr||S|||S||}|dkr||}|dkr|}n|}||Sr	rrrrrrrrrrs       r.max_magzDecimal.max_magx
s)Fud333? llG
	8u0
	8BB
8R
877rQww99W---77rQww ::g...''w777MMOO  !1!12266""5))A77CCCxx   r0cR	t|d}|t}|js|jr|}|}|s|rX|dkr|dkr||S|dkr|dkr||S|||S||}|dkr||}|dkr|}n|}||SrrQrs       r.min_magzDecimal.min_mag
s)Fud333? llG
	8u0
	8BB
8R
877rQww99W---77rQww ::g...''w777MMOO  !1!12266""5))A77CCCxx   r0cN	|t}||}|r|S|dkrtS|dkr+t	dd|jz|S|}|t|
||}||kr|S|t	dd|
dz
|S)Nrorr1r(r]r0)rrrr%rBr_rmrqrr_ignore_all_flagsrr,r5r5r6rGnew_selfs    r.
next_minuszDecimal.next_minus
sK? llGw//	J##$$""#As7<'7HHH,,..k***!!###99W%%tO||,QW]]__Q5FGG#%%	%r0cN	|t}||}|r|S|dkrtS|dkr+t	dd|jz|S|}|t|
||}||kr|S|t	dd|
dz
|S)Nror1rr]r(r0)rrrr&rBr_rmrqrrrVrr*r5rWs    r.	next_pluszDecimal.next_plus
sK? llGw//	J""###As7<'7HHH,,..m,,,!!###99W%%tO||,QW]]__Q5FGG#%%	%r0cV	t|d}|t}|||}|r|S||}|dkr||S|dkr||}n||}|rV|td|j
|t|tn|
|jkr|t|t |t|t|s|t"|S)NTrr(rz Infinite result from next_toward)rrrrrr[rYrrrrCrr
rrerrr	)r5rr6rG
comparisons     r.next_towardzDecimal.next_toward
s	ud333? llGug..	JYYu%%
??>>%(((..))CC//'**C??	.  !C!$
,
,
,
  )))  ))))
\\^^gl
*
*  +++  +++  )))  )))
.$$W---
r0cZ	|rdS|rdS|}|dkrdS|dkrdS|r|jrdSdS|t}||	r|jrd
SdS|jrdSd
S)Nrrr1z	+Infinityrz	-Infinityz-Zeroz+Zeroroz
-Subnormalz
+Subnormalz-Normalz+Normal)rrrrrCrr)r5r6infs   r.number_classzDecimal.number_classs
	<<>>	6<<>>	5  !88;"99;<<>>	z
ww? llGW--	$z
$#|#|:	99r0c"	tdSNrrars r.radixz
Decimal.radix:s5r{{r0c	|t}t|d}|||}|r|S|jdkr|t
S|jt|cxkr|jksn|t
S|rt|St|}|j
}|jt|z
}|dkr	d|z|z}n|dkr||d}||d|d|z}t|j
|dpd|jSNTrr(rrrrrrr
r_rrrrDrrBrCr)r5rr6rGtorotrotdigtopadrotateds        r.rotatezDecimal.rotate>skC? llGud333ug..	J:??''(8999
U;;;;w|;;;;''(8999	!4== E

s6{{*199Y'FF
QYYUFGG_F.6&5&>1
 's 3 3 :sDIGG	Gr0cL	|t}t|d}|||}|r|S|jdkr|t
Sd|j|jzz}d|j|jzz}|t|cxkr|ksn|t
S|	rt|St|j|j
|jt|z}||}|S)NTrr(rr)rrrrrr
r`r_rrrrBrCrDr)r5rr6rGliminflimsuprs       r.scalebzDecimal.scaleb_sL? llGud333ug..	J:??''(8999w|gl23w|gl23#e**........''(8999	!4== TZDIE

4JKK
FF7OOr0c	|t}t|d}|||}|r|S|jdkr|t
S|jt|cxkr|jksn|t
S|rt|St|}|j
}|jt|z
}|dkr	d|z|z}n|dkr||d}|dkr|d|}n|d|zz}||jd}t|j
|dpd|jSrfrg)r5rr6rGrhrirjshifteds        r.r7z
Decimal.shiftxsC? llGud333ug..	J:??''(8999
U;;;;w|;;;;''(8999	!4== E

s6{{*199Y'FF
QYYUFGG_F199VeVnGGs5y(Gw|mnn-G
$+NN3$7$7$>3	KK	Kr0c0|jt|ffSr+)	__class__rrs r.
__reduce__zDecimal.__reduce__sT--r0cvt|tur|S|t|Sr+typerrtrrs r.__copy__zDecimal.__copy__0::  K~~c$ii(((r0cvt|tur|S|t|Sr+rw)r5memos  r.__deepcopy__zDecimal.__deepcopy__rzr0c	|t}t||}|jrXt|j|}t|}|ddkr|dz
}t|||S|dddg|j|d<|ddkr#t|j|j
|jdz}|j}|d}|~|ddvr|
|d	z|}nZ|dd
vr|||}n8|ddvr.t|j
|kr|
||}|s+|jdkr |dd
vr|d|}|s|d
r
|jrd}	n|j}	|jt|j
z}
|ddvr
|s|d	|z
}n0d	}n-|dd
vr|
}n |ddvr|jdkr	|
dkr|
}nd	}|dkrd}d|z|j
z}
n]|t|j
kr%|j
d|t|j
z
zz}d}
n |j
d|pd}|j
|d}
|
|z
}t!|	||
||S)N)_localeconvrx%gGr	precisioneEr1zfF%gGr(no_neg_0rrr)r_parse_format_specifierr_format_signrCrr
_format_alignrfrBrDrr^rr%r_format_number)r5	specifierr6rspecrPbodyr^r
adjusted_signrrrrrs               r.
__format__zDecimal.__format__s	? llG&ykJJJ	3
D11Dt}}''DF|s"" tT222<:g&67DL<3#DJ	49Q;GGD#%	 F|t##{{9Q;99f&&}}iZ::f%%#di..9*D*D{{9h77	.	A

$v,%*?*?==H--D	'Z(	'TZ	'MM JMYTY/
<4
I1y=
&\U
"
"!HH
&\T
!
!yA~~*r//%a<<GXI2HH
DI
&
&i#xDI'>"??GHHi		*1cGy+H!mWhTJJJr0)rN)NNr+)FN)TN)r9r:r;	__slots__rclassmethodrrrrrrrrrrrrrrrrrrrrrr"r*__radd__r,r.r3__rmul__r:r?rArGrIrKrMrQrSrUrZr\	__trunc__propertyr^rbrdrgrErrxrzr}rrrrrdictrnrrrrrrrrrrrr%rrrto_integralrr$rrrrrrrrrrrrrr
rrrrrrrrr#r)rr/r1r5r:rFrJrMrIrRrTrYr[r^rardrlrpr7ruryr}rr,r0r.rrs	66IT@T@T@T@l**[*X


@B444-'-'-'@%%%%$$$$%%%%$$$$%%%%))))$(((4OOO000d+++
2/2/2/2/h7777!!!!,!!!!*,TTTTlHBBBB44446666nH9!9!9!9!vB8888"#"#"#"#H777764444I!I!I!I!V////89999777I
XX$$$


ZZZL'''------+++++++++#d &**&" 			<6<6<6<6|
2
2
2
4
4
4*/*/*/*/XS4S4S4S4jk?k?k?ZVVVVp4444@@@@2;;;;z
'
'
'
' 8 8 8D.:...."$KaaaaF(!(!(!(!T ! ! ! !D%%%222
4
4
4
4FFFFR	"	"	"	"KKKOOO====IIIIV$$$   '''////      ....999,,,20000d000<1111f!!!!<AAAA"))))AAAA"AAAA"!!!!<!!!!<%%%%.%%%%.,,,,\((((TGGGGB2$K$K$K$KN...)))
)))TKTKTKTKTKTKr0rFc~	tt}||_||_||_||_|Sr+)rrrrCrDrr)rPcoefficientrspecialr5s     r.rBrBs<>>'""DDJDIDIDKr0c"eZdZ	dZdZdZdS)ruc8||_dSr+)rqrz)r5rzs  r.__init__z_ContextManager.__init__"s&++--r0c^t|_t|j|jSr+)r
saved_contextrrzrs r.	__enter__z_ContextManager.__enter__$s('\\4#$$$r0c.t|jdSr+)rr)r5tvtbs    r.__exit__z_ContextManager.__exit__(s4%&&&&&r0N)r9r:r;rrrr,r0r.rurusF
...   '''''r0ruceZdZ				dTdZdZdZdZdZdZdZ	d	Z
d
ZdZdZ
e
ZdUd
ZdZdZdZdZdZdZdZdVdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdUdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUeUZVdS)WrNc
	t}
n#t$rYnwxYw||n|
j|_||n|
j|_||n|
j|_||n|
j|_||n|
j|_||n|
j|_|	g|_n|	|_|
j	
|_	nEtts)tfdtzD|_	n|_	'ttd|_dStts*tfdtzD|_dS|_dS)Nc3>K|]}|t|vfVdSr+r)r?rYris  r.	<genexpr>z#Context.__init__.<locals>.<genexpr>W2MMqq#a5j//2MMMMMMr0r(c3>K|]}|t|vfVdSr+r)r?rYrhs  r.rz#Context.__init__.<locals>.<genexpr>^rr0)r	NameErrorr_r^rer`rfrg_ignored_flagsrirqrrrfromkeysrh)r5r_r^rer`rfrgrhrirdcs       ``  r.rzContext.__init__>s{
	BB			D	!,DD"'	$,$8bk
 ,DD"'	 ,DD"'	$,$8bk
#/UURX
!"$D"0D=DJJE4((	MMMMHu<LMMMMMDJJDJ=x33DJJJE4((	MMMMHu<LMMMMMDJJJDJJJs
cXt|tstd|z|dkr||krtd||||fznE|dkr||krtd||||fzn"||ks||krtd||||fzt|||S)Nz%s must be an integer-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)rrrxrr__setattr__)r5namervminvmaxs     r._set_integer_checkzContext._set_integer_checkbs%%%	<3d:;;;6>>t|| !BdDRVX]E^!^___
U]]t|| !BdDRVX]E^!^___t||ut|| !AT4QUW\D]!]^^^!!$e444r0ct|tstd|z|D]}|tvrt	d|ztD]}||vrt	d|zt
|||S)Nz%s must be a signal dictz%s is not a valid signal dict)rrrxrKeyErrorrr)r5rrr~s    r._set_signal_dictzContext._set_signal_dictps!T""	<6:;;;	D	DC(??>BCCC#	D	DC!88>BCCC!!$a000r0cT|dkr|||ddS|dkr|||ddS|dkr|||ddS|dkr|||ddS|d	kr|||ddS|d
kr7|tvrtd|zt|||S|dks|d
kr|||S|dkrt|||St
d|z)Nr_r1r`rerr(r`rfrgr^z%s: invalid rounding moderhrirz.'decimal.Context' object has no attribute '%s')r_rounding_modesrxrrrAttributeError)r5rrs   r.rzContext.__setattr__{s_6>>**45AAA
V^^**4BBB
V^^**45AAA
Z

**41===
W__**41===
Z

O++  ;e CDDD%%dD%888
W__((u555
%
%
%%%dD%888 @4GII
Ir0c&td|z)Nz%s cannot be deleted)r)r5rs  r.__delattr__zContext.__delattr__s3d:;;;r0c	d|jD}d|jD}|j|j|j|j|j|j|j	||ffS)Ncg|]	\}}||
Sr,r,r?sigrs   r.rAz&Context.__reduce__.<locals>.<listcomp>!;;;a;;;;r0cg|]	\}}||
Sr,r,rs   r.rAz&Context.__reduce__.<locals>.<listcomp>rr0)
rhrvrirtr_r^rer`rfrg)r5rhris   r.ruzContext.__reduce__sv;;4:#3#3#5#5;;;;;4:#3#3#5#5;;;DM49di
E5:;	;r0c	g}|dt|zd|jD}|dd|zdzd|jD}|dd|zdzd|dzS)	NzrContext(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d, clamp=%(clamp)dc&g|]\}}||jSr,r9)r?rrs   r.rAz$Context.__repr__.<locals>.<listcomp>#@@@1a@@@@r0zflags=[, ]c&g|]\}}||jSr,r)r?rrs   r.rAz$Context.__repr__.<locals>.<listcomp>rr0ztraps=[))rvarsrhrvrri)r5rYnamess   r.rzContext.__repr__s'	#::			A@
(8(8(:(:@@@	TYYu---3444@@
(8(8(:(:@@@	TYYu---3444yy||c!!r0c0	|jD]}d|j|<
dSr`)rhr5flags  r.rrzContext.clear_flags/%J	!	!D DJt	!	!r0c0	|jD]}d|j|<
dSr`)rirs  r.clear_trapszContext.clear_trapsrr0c	t|j|j|j|j|j|j|j|j|j			}|Sr+)
rr_r^rer`rfrgrhrirr5ncs  r.rzContext._shallow_copysB/
TY
ty$)]DJ
DJ(**	r0c	t|j|j|j|j|j|j|j|j	|j
		}|Sr+)rr_r^rer`rfrgrhrqrirrs  r.rqzContext.copysW,
TY
ty$)]DJZ__&&
(9(9(**	r0c	t||}||jvr|j|g|RSd|j|<|j|s|j|g|RS||r)_condition_maprlrr7rhri)r5	conditionexplanationr-errors     r.rzContext._raise_errors	""9i88D'''!5577>$.....
5z% 	3%99;;%d2T2222eK   r0c"	|jtSr+)
_ignore_flagsrrs r.rVzContext._ignore_all_flagss2!t!8,,r0cZ	|jt|z|_t|Sr+)rr)r5rhs  r.rzContext._ignore_flagss)2 $2T%[[@E{{r0c	|r*t|dttfr|d}|D]}|j|dSr`)rrrrremove)r5rhrs   r.
_regard_flagszContext._regard_flagssb9	Za5,77	!HE	-	-D&&t,,,,	-	-r0cB	t|j|jz
dzSr)rrer_rs r.r5z
Context.Etinys!/49ty(1,---r0cB	t|j|jz
dzSr)rr`r_rs r.rmzContext.Etops!:49ty(1,---r0c$	|j}||_|Sr+)r^)r5rxr^s   r.rzContext._set_roundings
	=
r0rc	t|tr7||ksd|vr|tdSt||}|r@t|j|j	|j
z
kr|tdS||S)NrzAtrailing or leading whitespace and underscores are not permitted.rozdiagnostic info too long in NaN)rrrrrrrrrDr_rgr)r5r!rs   r.create_decimalzContext.create_decimals	&
c3	GSCIIKK%7%73#::$$%5&FGG
G
C&&&88::	H#af++	DJ(>>>$$%5%FHH
Hvvd||r0cb	t|}||Sr+)rrr)r5rrs   r.create_decimal_from_floatz!Context.create_decimal_from_floats,	
q!!vvd||r0cR	t|d}||Sr)rr"r5rs  r.rzContext.abs/s/	"
1d+++yyy&&&r0c	t|d}|||}|turtd|z|SNTrroUnable to convert %s to Decimal)rr*rrxr5rr@r>s    r.addzContext.addDsT	
1d+++
IIaI&&=ABBBHr0cFt||Sr+)rrrs  r._applyzContext._applyYs166$<<   r0ct	t|tstd|S)Nz,canonical requires a Decimal as an argument.)rrrxrrs  r.rzContext.canonical\s9	!W%%	LJKKK{{}}r0cT	t|d}|||Sr)rrr5rr@s   r.rzContext.compareis2	@
1d+++yyDy)))r0cT	t|d}|||Sr)rrrs   r.rzContext.compare_signals4	>
1d+++4000r0cP	t|d}||Sr)rrrs   r.rzContext.compare_totals-	2
1d+++q!!!r0cP	t|d}||Sr)rrrs   r.rzContext.compare_total_mags/	
1d+++""1%%%r0cN	t|d}|Sr)rrrs  r.rzContext.copy_abss)	
1d+++zz||r0cD	t|d}t|Sr)rrrs  r.copy_decimalzContext.copy_decimals'	
1d+++qzzr0cN	t|d}|Sr)rrrs  r.rzContext.copy_negates)	
1d+++}}r0cP	t|d}||Sr)rrrs   r.rzContext.copy_signs+	(
1d+++{{1~~r0c	t|d}|||}|turtd|z|Sr)rr:rrxrs    r.dividezContext.dividesT	:
1d+++
MM!TM**=ABBBHr0c	t|d}|||}|turtd|z|Sr)rrSrrxrs    r.
divide_intzContext.divide_int9sT	
1d+++
NN1dN++=ABBBHr0c	t|d}|||}|turtd|z|Sr)rrGrrxrs    r.r6zContext.divmodPsT	
1d+++
LLDL))=ABBBHr0cR	t|d}||Sr)rrrs  r.rzContext.expes/	(!T***uuTu"""r0cV	t|d}||||Sr)rr)r5rr@rs    r.rzContext.fma}s3	&
1d+++uuQ4u(((r0ct	t|tstd|S)Nz/is_canonical requires a Decimal as an argument.)rrrxrrs  r.rzContext.is_canonicals;	!W%%	OMNNN~~r0cN	t|d}|Sr)rr
rs  r.r
zContext.is_finites)	$
1d+++{{}}r0cN	t|d}|Sr)rrrs  r.rzContext.is_infinites)
	
1d+++}}r0cN	t|d}|Sr)rrrs  r.rzContext.is_nans)	
1d+++xxzzr0cR	t|d}||Sr)rrrs  r.rzContext.is_normals/	&
1d+++{{4{(((r0cN	t|d}|Sr)rrrs  r.rzContext.is_qnans)
	
1d+++yy{{r0cN	t|d}|Sr)rrrs  r.rzContext.is_signeds)	
1d+++{{}}r0cN	t|d}|Sr)rrrs  r.rzContext.is_snan
s)	
1d+++yy{{r0cR	t|d}||Sr)rrrs  r.rzContext.is_subnormals/	$
1d+++~~d~+++r0cN	t|d}|Sr)rrrs  r.rzContext.is_zero3s)	
1d+++yy{{r0cR	t|d}||Sr)rr)rs  r.r)z
Context.lnDs/	$
1d+++ttDt!!!r0cR	t|d}||Sr)rr/rs  r.r/z
Context.log10Zs/	0
1d+++wwtw$$$r0cR	t|d}||Sr)rr1rs  r.r1zContext.logbvs/	,
1d+++vvdv###r0cT	t|d}|||Sr)rrFrs   r.rFzContext.logical_and1	.
1d+++}}Q}---r0cR	t|d}||Sr)rrJrs  r.rJzContext.logical_inverts2	
1d+++---r0cT	t|d}|||Sr)rrMrs   r.rMzContext.logical_ors1	.
1d+++||At|,,,r0cT	t|d}|||Sr)rrIrs   r.rIzContext.logical_xorrr0cT	t|d}|||Sr)rr$rs   r.r$zContext.max1	.
1d+++uuQu%%%r0cT	t|d}|||Sr)rrRrs   r.rRzContext.max_mag1	
1d+++yyDy)))r0cT	t|d}|||Sr)rrrs   r.rzContext.min rr0cT	t|d}|||Sr)rrTrs   r.rTzContext.min_mag;rr0cR	t|d}||Sr)rrrs  r.minusz
Context.minusL/	
1d+++yyy&&&r0c	t|d}|||}|turtd|z|Sr)rr3rrxrs    r.multiplyzContext.multiply]sT	0
1d+++
IIaI&&=ABBBHr0cR	t|d}||Sr)rrYrs  r.rYzContext.next_minus}s/	 
1d+++||D|)))r0cR	t|d}||Sr)rr[rs  r.r[zContext.next_pluss/	 
1d+++{{4{(((r0cT	t|d}|||Sr)rr^rs   r.r^zContext.next_towards1	>
1d+++}}Q}---r0cR	t|d}||Sr)rrrs  r.rzContext.normalizes/	(
1d+++{{4{(((r0cR	t|d}||Sr)rrars  r.razContext.number_classs0-	\
1d+++~~d~+++r0cR	t|d}||Sr)rrrs  r.pluszContext.plusr!r0c	t|d}||||}|turtd|z|Sr)rrrrx)r5rr@rr>s     r.powerz
Context.power#sXG	P
1d+++
IIaI..=ABBBHr0cT	t|d}|||Sr)rrrs   r.rzContext.quantizess25	l
1d+++zz!Tz***r0c"	tdSrcrars r.rdz
Context.radixs	
r{{r0c	t|d}|||}|turtd|z|Sr)rrKrrxrs    r.r8zContext.remaindersT	<
1d+++
IIaI&&=ABBBHr0cT	t|d}|||Sr)rrQrs   r.rQzContext.remainder_nears4	<
1d+++4000r0cT	t|d}|||Sr)rrlrs   r.rlzContext.rotates1	2
1d+++xx4x(((r0cP	t|d}||Sr)rrrs   r.rzContext.same_quantums-	(
1d+++~~a   r0cT	t|d}|||Sr)rrprs   r.rpzContext.scaleb2s1	
1d+++xx4x(((r0cT	t|d}|||Sr)rr7rs   r.r7z
Context.shiftEs1	4
1d+++wwq$w'''r0cR	t|d}||Sr)rrrs  r.rzContext.sqrtcs/	8
1d+++vvdv###r0c	t|d}|||}|turtd|z|Sr)rr,rrxrs    r.subtractzContext.subtractsT	
1d+++
IIaI&&=ABBBHr0cR	t|d}||Sr)rrrs  r.rzContext.to_eng_strings/	0
1d+++t,,,r0cR	t|d}||Sr)rrrs  r.
to_sci_stringzContext.to_sci_strings/	
1d+++yyy&&&r0cR	t|d}||Sr)rrrs  r.rzContext.to_integral_exacts2	4
1d+++""4"000r0cR	t|d}||Sr)rrrs  r.rzContext.to_integral_values2	2
1d+++""4"000r0)	NNNNNNNNNr+)r)Wr9r:r;rrrrrrurrrrrrqryrrVrrrr5rmrrrrrrrrrrrrrrrrrr6rrrr
rrrrrrrrr)r/r1rFrJrMrIr$rRrrTr r#rYr[r^rrar*r,rrdr8rQrlrrpr7rr7rr:rrrr,r0r.rr+s$BFDH&*""""H555	1	1	1III2<<<;;;"""!!!
!!!
H!!!!,------H......&"$'''**!!!"*"*"*H!1!1!1F""":&&&0###J.*###0))).   ,


 ))).


" ,,,,"""",%%%8$$$4...6...&---6...6&&&6***"&&&6***"'''"@***()))(!.!.!.F)))00,0,0,d'''"NNNN`8+8+8+t$$$L 1 1 1D))):!!!0)))&(((<$$$@.---8'''111<111<$KKKr0rc eZdZdZddZdZdS)rrPrrNc|d|_d|_d|_dSt|tr3|j|_t|j|_|j|_dS|d|_|d|_|d|_dS)Nr(r1r)rPrrrrrCrDr)r5rs  r.rz_WorkRep.__init__s~=DIDHDHHH
w
'
'	 DI5:DHzDHHHaDIQxDHQxDHHHr0c8d|jd|jd|jdS)N(rrr>rs r.rz_WorkRep.__repr__s#!%DHHHdhhh??r0r+)r9r:r;rrrr,r0r.rrsA$I

 
 
 
 @@@@@r0rc	|j|jkr|}|}n|}|}tt|j}tt|j}|jt	d||z
dz
z}||jzdz
|krd|_||_|xjd|j|jz
zzc_|j|_||fS)Nrrr1r)rrrrr)r(r)r_tmprtmp_len	other_lenrs        r.r&r&sw#cg,,GC	NN##I

'CGdNQ.//
/C59q 3&&		GGrcg	)**GGiCG8Or0c	|dkrdS|dkr|d|zzStt|}t|t|dz
}||krdn|d|zzS)Nr(rr)rrrrstrip)rArstr_nval_ns    r.rr6s		Avvq	
a2q5yCFFE

Sc!2!2333rzzttqBF{2r0cv	|dks|dkrtdd}||kr||||zz
dz	}}||k|S)Nr(z3Both arguments to _sqrt_nearest should be positive.r1)r)rArr@s   r.
_sqrt_nearestrKKs^	AvvaNOOOA
q&&!QBE'1*1q&&Hr0cH	d|z||z	}}|d||dz
zz|dzz|kzS)Nr1rr,)rr7r@r=s    r._rshift_nearestrMZs?
:qEzqA1!9
1%)**r0cN	t||\}}|d|z|dzz|kzS)Nrr1)r6)rr@r=r>s    r._div_nearestrObs5!Q<<DAq!qsa  r0rc	||z
}d}||krt|||z
z|ks||krt|||z
z	|kr~t||zdz|t||t||zz|z}|dz
}||krt|||z
z|k_||krt|||z
z	|k~t	dtt
|zd|zz}t||}t||}t|dz
ddD]&}t||t||z|z
}'t||z|S)Nr(r1rr)rrOrKrMrrrr)	rMLrRTyshiftwrs	         r._ilogrXjs:	
!A	A66c!ff!mq((q55SVVqs]a''!A#!]1a10E0E.E+FJJJ
L
L	Q	
66c!ff!mq((q55SVVqs]a''

SSVV_qs
#	$	$$A
Q
"
"FQA
1Q32

;;AfQh!:!::!Qr0c	|dz
}tt|}||z||zdkz
}|dkrhd|z}||z|z
}|dkr	|d|zz}nt|d|z}t||}t	|}t||z|}||z}	nd}t|d|z}	t|	|zdSNrr1r(rr)rrrOrX
_log10_digits)
rrrrrrRrlog_dlog_10log_tenpowers
          r.r.r.s:FA	CFFA	!qsaxA1uuE
aCE66
QJAAQQB''Aaq!!U1Wf--s#ArA2v..U*C000r0c	|dz
}tt|}||z||zdkz
}|dkr?||z|z
}|dkr	|d|zz}nt|d|z}t|d|z}nd}|r_ttt	|dz
}||zdkr't|t||zzd|z}nd}nd}t||zdSrZ)rrrOrXrr[)	rrrrrrr\r	f_log_tens	         r.r'r's:FA
	CFFA	!qsaxA	1uu
aCE66
QJAAQQB''AaQ		CAKK  "u9>>%Q}QuW'='=%=r5yIIIIII		E)3///r0ceZdZ	dZdZdS)
_Log10Memoizecd|_dS)N/23025850929940456840179914546843642076011014886)rrs r.rz_Log10Memoize.__init__s
Gr0c	|dkrtd|t|jkrwd}	d||zdzz}tt	td|z|d}||dd|zkrn|dz
}R|ddd	|_t|jd|d
zS)Nr(zp should be nonnegativerTrrrrrr1)rrrrrOrXrGr)r5rrrRrs     r.	getdigitsz_Log10Memoize.getdigitss	
q556777DK    E
5O\%1a..#>>??5&''?c%i//


!--,,SbS1DK4;t!t$%%%r0N)r9r:r;rrfr,r0r.rbrbs;CHHH&&&&&r0rbc	t||z|z}tdtt|zd|zz}t	||}||z}t|dz
ddD]}t	|||zz||z}t|dz
ddD] }||dzz}t	|||zz|}!||zS)NrQrr1r(rr)rrrrrOr)	rrRrSrTrUrMshiftrrs	         r._iexpri
s!(	1qyA

SSVV_qs
#	$	$$AQA
TF
1Q32

55FQJ!441Q3B

//QqSAfHv..Q3Jr0c	j	|dz
}td|tt|zdz
}||z}||z}|dkr	|d|zz}n	|d|zz}t|t	|\}}t|d|z}tt
|d|zd||z
dzfS)Nrr(r1rir)r$rrr6r[rOri)	rrrrr=r7cshiftquotrs	         r.rr2s4FA
1s3q66{{?Q&''E	E	A
aCEzz2u9BJv}Q//00ID#sBI
&
&Cc2q5))400$(Q,>>r0c	ttt||z}t||||zdz}||z
}|dkr||zd|zz}nt	||zd|z}|dkrHtt||zdk|dkkrd|dz
zdzd|z
}
}	n<d|zdz
|}
}	n0t||dz|dz\}	}
t	|	d}	|
dz
}
|	|
fS)Nr1r(r)rrrr'rOr)rrrrrr@lxcr7pcrrs           r.rrVs$	CBLLBAB!A

C
qDEzz
VBI

#b&"uf*
-
-	QwwR\\B
!
#a00ac1ac3EEQq1"3EE21vqs++
sUB''q#:r0rF5(rrr)	r02345678r]c	|dkrtdt|}dt|z||dz
S)Nr(z0The argument to _log10_lb should be nonnegative.r)rrr)r
correctionstr_cs   r.rrsIKAvvKLLLFFEs5zz>JuQx000r0c	t|tr|St|trt|S|r/t|trt|S|rtd|ztS)Nr)rrrrrrxr)rrallow_floats   r.rrs%!!%u~~)z%//)!!%(((C9EABBBr0cx	t|tr||fSt|tjr_|jsBt|jtt|j	|j
z|j}|t|jfS|r,t|tj
r|jdkr|j}t|t rWt#}|rd|jt&<n|t&d|t|fSt,t,fS)Nr(r1r)rr_numbersRationalrrBrCrrrDdenominatorr	numeratorComplexrbr^rrrhrrrr)r5rrr6s    r.rrs7%!!U{%*++.	/#DJ$'DI9J(J$K$K$(I//DWU_----
z%)9::uzQ
%/,,	O,-GM.))  M
O
O
OW''....>))r0ri?Bi)r_r^rirhr`rerfrgr)r_r^rirha        # 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<no_neg_0>z)?
(?P<alt>\#)?
(?P<zeropad>0)?
(?P<minimumwidth>(?!0)\d+)?
(?P<thousands_sep>,)?
(?:\.(?P<precision>0|(?!0)\d+))?
(?P<type>[eEfFgGn%])?
\Z
c	t|}|td|z|}|d}|d}|ddu|d<|dr(|td|z|td|z|pd|d<|pd|d<|d	d
|d	<t	|dpd|d<|d
t	|d
|d
<|d
dkr|d
|ddvrd|d
<|ddkrVd|d<|tj}|dtd|z|d|d<|d|d<|d|d<n|dd|d<ddg|d<d|d<|S)NzInvalid format specifier: fillalignzeropadz7Fill character conflicts with '0' in format specifier: z2Alignment conflicts with '0' in format specifier:  >rPrminimumwidthrrr(rxgGnr1rAr
thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: grouping
decimal_pointrrr
)_parse_format_specifier_regexmatchr	groupdictr_locale
localeconv)format_specrrformat_dictrrs      r.rr,s:$	&++K88Ay5CDDD++--KvD E))4D@K	9A68CDEE
E24?@AA
A+#K!<CK6"!F#&k.&A&HS"I"IK;+#&{;'?#@#@K ;1$$v&+f*=*F*F'(K$6c!!!F!,..K'3>@KLMM
M'2?'CO$"-j"9J'2?'CO$$'/+-K(#$a&J'*O$r0cb	|d}|d}||t|z
t|z
z}|d}|dkr	||z|z}na|dkr	||z|z}nR|dkr	||z|z}nC|dkr.t|dz}|d||z|z||dz}ntd	|S)
Nrrr<r=^rzUnrecognised alignment field)rr)	rPrrrrpaddingrrhalfs	         r.rr|s'L<DL3t99,s4yy89GME||w&	#4$&	#$&	#7||Q$$&->7888Mr0c	ddlm}m}|sgS|ddkr6t|dkr#||dd||dS|dtjkr
|ddSt
d)Nr()chainrepeatrrrz unrecognised format for grouping)	itertoolsrrrrCHAR_MAXr)rrrs   r._group_lengthsrs('''''''=		"		s8}}11uXcrc]FF8B<$8$8999	")	)	)};<<<r0cv	|d}|d}g}t|D]}|dkrtdttt	||d|}|d|t	|z
z||dz|d|}||z}|s|dkrne|t	|z}tt	||d}|d|t	|z
z||dz|t|S)Nrrr(zgroup length should be positiver1r)rrrr$rrrreversed)rr	min_widthseprgroupsrs       r._insert_thousands_seprsB 
CJH
F
H
%
%
;
;66>???CKKA..22

c1s6{{?+faRSSk9:::!Q		)q..ESXX		FY**

c1s6{{?+faRSSk9:::88HV$$%%%r0c4	|rdS|ddvr|dSdS)NrrPz +rr,)is_negativers  r.rrs0#s	
f		F|rr0c	t||}|s|dr|d|z}|dks
|ddvr,ddddd|d}|d	||z
}|dd
kr|d
z
}|dr)|dt|z
t|z
}nd}t|||}t	|||z|S)
Naltrr(rxrrr)rrrrz{0}{1:+}rrr)rformatrrr)rrrrrrPecharrs        r.rrs"T**D44;4(83
axx4<4''#C88fFJ%%eS111F|sCI(3x==83t99D			#GT9==Gwx/666r0Infz-Infrrrr+)F)r()r)FF)r1){__all__r9	__xname____version____libmpdec_version__mathrnumbersrsyscollectionsr)_namedtuplerImportErrorrrrrrrrrr%r&maxsizer!r"r#r$ArithmeticErrorrr	r
rZeroDivisionErrorrrrrrr
rrrrxrrrrcontextvars
ContextVarrk	frozensetrwrrr rrrBNumberregisterrurrr&rrrrrKrMrOrXr.r'rbrfr[rirrrrrrrrrecompileVERBOSE
IGNORECASErrrvrDOTALLrlocalerrrrrrrr&r%rFrrrrN	hash_infomodulusrr`rrW_PyHASH_NANrrr,r0r.<module>rs aF!!!F
	



&555555;~/EFFLL&&&%%LLL&

#
#

;'!H!H"HHHHH
#	







.







':'%%%%%%'8%%% 					)								(*;			







%







					 			#:#:#:#:#:w#:#:#:L




)







%y


 
^Wh'ND##3$%5#$4 !13}o}/:G-{-.?@@iOOO&&&++++hw3Kw3Kw3Kw3Kw3Kfw3Kw3Kw3Krg&	!!!

'
'
'
'
'f
'
'
'O$O$O$O$O$fO$O$O$b6@@@@@v@@@4<

333*





+++!!!. . . . ` 1 1 1D*0*0*0X!&!&!&!&!&F!&!&!&F
)
####J"?"?"?H(((Vr"
br++1111&"*"*"*"*T
/x)9:

w
x)97IN'
*
			
"*"Z"-#!!""'#&RZ


$
bj  &!+
,Z	!! 
				D	NNNN`6===.#&#&#&#&J#7#7#7R
GENN	GFOOwu~~

wqzzwr{{/0-'mmB!+_==
CCs.99$K))K10K1