grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h_ã@stddlmZddlZddlZddlZddlZddlZdgZejj Z ejj Z e  dejejB¡ZGdd„dejƒZdS)é©ÚDecimalNÚFractionaC \A\s* # optional whitespace at the start, then (?P[-+]?) # an optional sign, then (?=\d|\.\d) # lookahead for digit or .digit (?P\d*) # numerator (possibly empty) (?: # followed by (?:/(?P\d+))? # an optional denominator | # or (?:\.(?P\d*))? # an optional fractional part (?:E(?P[-+]?\d+))? # and optional exponent ) \s*\Z # and optional whitespace to finish csÊeZdZdZdQddœ‡fdd„ Zedd „ƒZed d „ƒZd d „ZdRdd„Z e dd„ƒZ e dd„ƒZ dd„Z dd„Zdd„Zdd„Zeeejƒ\ZZdd„Zeeejƒ\ZZdd „Zeeejƒ\ZZd!d"„Zeeejƒ\ZZ d#d$„Z!ee!ej"ƒ\Z#Z$d%d&„Z%ee%e&ƒ\Z'Z(d'd(„Z)ee)ej*ƒ\Z+Z,d)d*„Z-d+d,„Z.d-d.„Z/d/d0„Z0d1d2„Z1d3d4„Z2d5d6„Z3d7d8„Z4dSd9d:„Z5d;d<„Z6d=d>„Z7d?d@„Z8dAdB„Z9dCdD„Z:dEdF„Z;dGdH„ZdMdN„Z?dOdP„Z@‡ZAS)Tr©Ú _numeratorÚ _denominatorrNT©Ú _normalizec s"tt|ƒ |¡}|du�rdt|ƒtur6||_d|_|St|tj ƒrV|j |_|j |_|St|t t fƒrx| ¡\|_|_|St|tƒ�rZt |¡}|dur¢td|ƒ‚t| d¡p°dƒ}| d¡}|rÌt|ƒ}nvd}| d¡}|�rdt|ƒ}||t|ƒ}||9}| d¡} | �rBt| ƒ} | d k�r4|d| 9}n|d| 9}| d ¡d k�rb| }ntd ƒ‚nft|ƒtu�r„t|ƒu�rŠnnn@t|tj ƒ�rÂt|tj ƒ�rÂ|j |j |j |j }}ntd ƒ‚|d k�ràtd|ƒ‚|�rt ||¡} |d k�r| } || }|| }||_||_|S)Néz Invalid literal for Fraction: %rZnumÚ0ÚdenomÚdecimalé ÚexprZsignú-z2argument should be a string or a Rational instancez+both arguments should be Rational instanceszFraction(%s, 0))ÚsuperrÚ__new__ÚtypeÚintrrÚ isinstanceÚnumbersÚRationalÚ numeratorÚ denominatorÚfloatrÚas_integer_ratioÚstrÚ_RATIONAL_FORMATÚmatchÚ ValueErrorÚgroupÚlenÚ TypeErrorÚZeroDivisionErrorÚmathZgcd) Úclsrrr ÚselfÚmr r ZscalerÚg©Ú __class__©ú./opt/alt/python39/lib64/python3.9/fractions.pyr>st     ÿ       $ ÿ  þ    zFraction.__new__cCsDt|tjƒr||ƒSt|tƒs8td|j|t|ƒjfƒ‚|| ¡ŽS)Nz.%s.from_float() only takes floats, not %r (%s))rrÚIntegralrr"Ú__name__rr)r%Úfr+r+r,Ú from_float§s  ÿzFraction.from_floatcCsVddlm}t|tjƒr&|t|ƒƒ}n$t||ƒsJtd|j|t|ƒjfƒ‚||  ¡ŽS)Nrrz2%s.from_decimal() only takes Decimals, not %r (%s)) r rrrr-rr"r.rr)r%Zdecrr+r+r,Ú from_decimalµs   ÿÿzFraction.from_decimalcCs |j|jfS©Nr©r&r+r+r,rÁszFraction.as_integer_ratioé@Bc CsÞ|dkrtdƒ‚|j|kr"t|ƒSd\}}}}|j|j}}||}|||} | |krZqŠ|||||| f\}}}}||||}}q<|||} t|| ||| |ƒ} t||ƒ} t| |ƒt| |ƒkrÖ| S| SdS)Nr z$max_denominator should be at least 1)rr r r)rrrrÚabs) r&Zmax_denominatorZp0Zq0Zp1Zq1ÚnÚdÚaZq2ÚkZbound1Zbound2r+r+r,Úlimit_denominatorÉs$      zFraction.limit_denominatorcCs|jSr2)r©r8r+r+r,rszFraction.numeratorcCs|jSr2)rr;r+r+r,rszFraction.denominatorcCsd|jj|j|jfS)Nz %s(%s, %s))r*r.rrr3r+r+r,Ú__repr__sÿzFraction.__repr__cCs(|jdkrt|jƒSd|j|jfSdS)Nr z%s/%s)rrrr3r+r+r,Ú__str__ s  zFraction.__str__csT‡‡fdd„}dˆjd|_ˆj|_‡‡fdd„}dˆjd|_ˆj|_||fS)NcsPt|ttfƒrˆ||ƒSt|tƒr0ˆt|ƒ|ƒSt|tƒrHˆt|ƒ|ƒStSdSr2)rrrrÚcomplexÚNotImplemented©r8Úb©Úfallback_operatorÚmonomorphic_operatorr+r,Úforwardds   z-Fraction._operator_fallbacks..forwardÚ__csZt|tjƒrˆ||ƒSt|tjƒr4ˆt|ƒt|ƒƒSt|tjƒrRˆt|ƒt|ƒƒStSdSr2)rrrZRealrÚComplexr>r?©rAr8rBr+r,Úreverseps    z-Fraction._operator_fallbacks..reverseZ__r)r.Ú__doc__)rDrCrErIr+rBr,Ú_operator_fallbackssP  zFraction._operator_fallbackscCs,|j|j}}t|j||j|||ƒSr2©rrr©r8rAÚdaÚdbr+r+r,Ú_addsÿz Fraction._addcCs,|j|j}}t|j||j|||ƒSr2rLrMr+r+r,Ú_sub‡sÿz Fraction._subcCst|j|j|j|jƒSr2©rrrr@r+r+r,Ú_mul�sz Fraction._mulcCst|j|j|j|jƒSr2rRr@r+r+r,Ú_div•s  ÿz Fraction._divcCs|j|j|j|jSr2©rrr@r+r+r,Ú _floordivœszFraction._floordivcCs:|j|j}}t|j|||jƒ\}}|t|||ƒfSr2)rÚdivmodrr)r8rArNrOZdivZn_modr+r+r,Ú_divmod¢szFraction._divmodcCs,|j|j}}t|j||j|||ƒSr2rLrMr+r+r,Ú_modªsz Fraction._modcCs¬t|tjƒrœ|jdkrŠ|j}|dkr>t|j||j|dd�S|jdkrft|j| |j| dd�St|j | |j | dd�Sq¨t|ƒt|ƒSn t|ƒ|SdS)Nr rFr) rrrrrrrrr)r8rAZpowerr+r+r,Ú__pow__±s&   þ   þ þzFraction.__pow__cCs\|jdkr|jdkr||jSt|tjƒrs  ô