ó
    ‰*£h±H  ã                   ó&   • S SK Jr   " S S\5      rg)é   )Úxrangec                   óL   • \ rS rSrS rSS jrS rS rS rSS jr	S r
S	 rS
rg)ÚMatrixCalculusMethodsé   c                 óì  ^ • U 4S jnSnSn U" U5      T R                   :  a  OUS-  nM  X4-  n[        [        ST R                  T R	                  US5      5      5      5      nUnT R
                  nT =R                  US-   -  sl         USU-  -  nUR                  nT R                  U5      n	T R                  U5      n
T R                  U5      nT R                  S5      n[        SUS-   5       HB  nUT R                  X=-
  S-   5      SU-  U-
  S-   U-  -  -  nX-  nXË-  nX®-  n
U	SU-  U-  -  n	MD     T R                  Xš5      n[        U5       H  nXÿ-  nM	     UT l        US-  $ ! UT l        f = f)	zì
Exponential of a matrix using Pade approximants.

See G. H. Golub, C. F. van Loan 'Matrix Computations',
third Ed., page 572

TODO:
 - find a good estimate for q
 - reduce the number of matrix multiplications to improve
   performance
c                 ó¤   >• TR                  S5      SSU -  -
  -  TR                  U 5      S-  -  TR                  SU -  5      S-  SU -  S-   -  -  $ )Nr   é   é   )ÚmpfÚ	factorial)ÚpÚctxs    €ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/mpmath/matrices/calculus.pyÚeps_padeÚ1MatrixCalculusMethods._exp_pade.<locals>.eps_pade   s_   ø€ Ø—7‘7˜1“:  ! A¡#¡Ñ&Ø—‘˜aÓ  !Ñ#ñ$Ø%(§]¡]°1°Q±3Ó%7¸Ñ%:¸aÀ¹cÀA¹gÑ%FñHð Hó    é   é   r
   Úinfr	   r   éÿÿÿÿ)ÚepsÚintÚmaxÚmagÚmnormÚprecÚdpsÚrowsÚeyer   ÚrangeÚlu_solve_mat)r   Úar   ÚqÚextraqÚjÚextrar   ÚnaÚdenÚnumÚxÚcÚkÚcxÚfs   `               r   Ú	_exp_padeÚMatrixCalculusMethods._exp_pade   s„  ø€ õ	Hð ˆØˆØÙ˜‹{˜SŸW™WÓ$ØØ�‰FˆAñ ð 	
‰ˆÜ”�A�s—w‘w˜sŸy™y¨¨5Ó1Ó2Ó3Ó4ˆØˆØ�x‰xˆØ�Š�5˜1‘9Ñ�ð	Ø�!�Q‘$‘ˆAØ—‘ˆBØ—'‘'˜"“+ˆCØ—'‘'˜"“+ˆCØ—‘˜“ˆAØ—‘˜“
ˆAÜ˜1˜a ™c–]�Ø�S—W‘W˜Q™U Q™YÓ'¨!¨A©#°©'°A©+¸Ñ):Ñ;Ñ;�Ø‘C�Ø‘S�Ø‘	�Ø˜˜Q‘w ‘|Ñ#’ñ #ð × Ñ  Ó*ˆAÜ˜1–X�Ø‘C’ñ ð ˆCŒHØ�‰sˆ
øð ˆC�Hús   Â
CE* Å*	E3c                 óî  • US:X  aY  U R                   n U R                  U5      nU =R                   SUR                  -  -  sl         U R                  U5      nX0l         U$ U R                  U5      nU R                   n[	        [        SU R                  U R                  US5      5      5      5      nU[	        SUS-  -  5      -  n U =R                   SSU-  -   -  sl         U R                  7nUSU-  -  nUnUS-  U-   nSn	 XqSU R                  U	5      -  -  -  nU R                  US5      U:  a  OX‡-  nU	S-  n	M;  [        U5       H  n	Xˆ-  nM	     X0l         US-  nU$ ! X0l         f = f! X0l         f = f)a~  
Computes the matrix exponential of a square matrix `A`, which is defined
by the power series

.. math ::

    \exp(A) = I + A + \frac{A^2}{2!} + \frac{A^3}{3!} + \ldots

With method='taylor', the matrix exponential is computed
using the Taylor series. With method='pade', Pade approximants
are used instead.

**Examples**

Basic examples::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> expm(zeros(3))
    [1.0  0.0  0.0]
    [0.0  1.0  0.0]
    [0.0  0.0  1.0]
    >>> expm(eye(3))
    [2.71828182845905               0.0               0.0]
    [             0.0  2.71828182845905               0.0]
    [             0.0               0.0  2.71828182845905]
    >>> expm([[1,1,0],[1,0,1],[0,1,0]])
    [ 3.86814500615414  2.26812870852145  0.841130841230196]
    [ 2.26812870852145  2.44114713886289   1.42699786729125]
    [0.841130841230196  1.42699786729125    1.6000162976327]
    >>> expm([[1,1,0],[1,0,1],[0,1,0]], method='pade')
    [ 3.86814500615414  2.26812870852145  0.841130841230196]
    [ 2.26812870852145  2.44114713886289   1.42699786729125]
    [0.841130841230196  1.42699786729125    1.6000162976327]
    >>> expm([[1+j, 0], [1+j,1]])
    [(1.46869393991589 + 2.28735528717884j)                        0.0]
    [  (1.03776739863568 + 3.536943175722j)  (2.71828182845905 + 0.0j)]

Matrices with large entries are allowed::

    >>> expm(matrix([[1,2],[2,3]])**25)
    [5.65024064048415e+2050488462815550  9.14228140091932e+2050488462815550]
    [9.14228140091932e+2050488462815550  1.47925220414035e+2050488462815551]

The identity `\exp(A+B) = \exp(A) \exp(B)` does not hold for
noncommuting matrices::

    >>> A = hilbert(3)
    >>> B = A + eye(3)
    >>> chop(mnorm(A*B - B*A))
    0.0
    >>> chop(mnorm(expm(A+B) - expm(A)*expm(B)))
    0.0
    >>> B = A + ones(3)
    >>> mnorm(A*B - B*A)
    1.8
    >>> mnorm(expm(A+B) - expm(A)*expm(B))
    42.0927851137247

Úpader   r
   r   ç      à?é
   é    )r   Úmatrixr   r/   r   r   r   r   r   r   r   )
r   ÚAÚmethodr   Úresr%   ÚtolÚTÚYr,   s
             r   ÚexpmÚMatrixCalculusMethods.expm5   sv  € ðz �VÓØ—8‘8ˆDð Ø—J‘J˜q“M�Ø—’˜A˜aŸf™f™HÑ$•Ø—m‘m AÓ&�à”ØˆJØ�J‰J�q‹MˆØ�x‰xˆÜ”�A�s—w‘w˜sŸy™y¨¨5Ó1Ó2Ó3Ó4ˆØ	ŒS��T˜3‘Y‘ÓÑˆð	Ø�HŠH˜˜Q˜q™S™Ñ �HØ—7‘7�(ˆCØ�!�Q‘$‘ˆAØˆAØ�1‘�q‘ˆAØˆAØØ˜!˜CŸG™G A›J™,Ñ'Ñ'�Ø—9‘9˜Q Ó&¨Ó,ØØ‘�Ø�Q‘�ñ ô ˜A–Y�Ø‘C’ñ ð ŒHØ	ˆQ‰ˆØˆøð1  •ûð, �Hús   ”AE! ÃBE, Å!E)Å,E4c                 ó2  • SU R                  XR                  -  5      U R                  XR                  * -  5      -   -  n[        UR                  U R                  5      R                  [
        5      5      (       d  UR                  U R                  5      nU$ )aL  
Gives the cosine of a square matrix `A`, defined in analogy
with the matrix exponential.

Examples::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> X = eye(3)
    >>> cosm(X)
    [0.54030230586814               0.0               0.0]
    [             0.0  0.54030230586814               0.0]
    [             0.0               0.0  0.54030230586814]
    >>> X = hilbert(3)
    >>> cosm(X)
    [ 0.424403834569555  -0.316643413047167  -0.221474945949293]
    [-0.316643413047167   0.820646708837824  -0.127183694770039]
    [-0.221474945949293  -0.127183694770039   0.909236687217541]
    >>> X = matrix([[1+j,-2],[0,-j]])
    >>> cosm(X)
    [(0.833730025131149 - 0.988897705762865j)  (1.07485840848393 - 0.17192140544213j)]
    [                                     0.0               (1.54308063481524 + 0.0j)]
r3   ©r=   r%   ÚsumÚapplyÚimÚabsÚre©r   r7   ÚBs      r   ÚcosmÚMatrixCalculusMethods.cosm“   sk   € ð0 �3—8‘8˜AŸe™e™GÓ$ s§x¡x°·E±E°6±
Ó';Ñ;Ñ<ˆÜ�1—7‘7˜3Ÿ6™6“?×(Ñ(¬Ó-×.Ñ.Ø—‘˜Ÿ™“ˆAØˆr   c                 ó2  • SU R                  XR                  -  5      U R                  XR                  * -  5      -
  -  n[        UR                  U R                  5      R                  [
        5      5      (       d  UR                  U R                  5      nU$ )aL  
Gives the sine of a square matrix `A`, defined in analogy
with the matrix exponential.

Examples::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> X = eye(3)
    >>> sinm(X)
    [0.841470984807897                0.0                0.0]
    [              0.0  0.841470984807897                0.0]
    [              0.0                0.0  0.841470984807897]
    >>> X = hilbert(3)
    >>> sinm(X)
    [0.711608512150994  0.339783913247439  0.220742837314741]
    [0.339783913247439  0.244113865695532  0.187231271174372]
    [0.220742837314741  0.187231271174372  0.155816730769635]
    >>> X = matrix([[1+j,-2],[0,-j]])
    >>> sinm(X)
    [(1.29845758141598 + 0.634963914784736j)  (-1.96751511930922 + 0.314700021761367j)]
    [                                    0.0                  (0.0 - 1.1752011936438j)]
y       €      à¿r@   rF   s      r   ÚsinmÚMatrixCalculusMethods.sinm°   sk   € ð0 �s—x‘x §%¡%¡Ó(¨3¯8©8°A¿¹°v±JÓ+?Ñ?Ñ@ˆÜ�1—7‘7˜3Ÿ6™6“?×(Ñ(¬Ó-×.Ñ.Ø—‘˜Ÿ™“ˆAØˆr   c                 ól   • U R                   S-  nU R                  X1-  U5      U R                  U5      -  $ )Ng333333Ó?)r%   ÚsqrtmÚsqrt)r   r7   Ú_may_rotateÚus       r   Ú
_sqrtm_rotÚ MatrixCalculusMethods._sqrtm_rotÍ   s1   € ð �E‰E�3‰JˆØ�y‰y˜™˜kÓ*¨S¯X©X°a«[Ñ8Ð8r   c                 óp  • U R                  U5      nUS-  U:X  a  U$ U R                  nU(       ae  U R                  U5      n[        U R	                  U5      5      SU R
                  -  :  a)  U R                  U5      S:  a  U R                  XS-
  5      $  U =R                  S-  sl        U R
                  S-  nUnUS-  =pxSn	 Un
 SX`R                  U5      -   -  SXpR                  U5      -   -  pvU R                  Xj-
  S5      nU R                  US5      nX¼U-  ::  a  OQU(       a(  U	S:”  a"  X¼S	-  :  d  U R                  XS-
  5      X0l        $ U	S-  n	X�R                  :”  a  U R                  eM®  X0l        US-  nU$ ! [         a     U(       a  U R                  XS-
  5      n M5  e f = f! X0l        f = f)
ag  
Computes a square root of the square matrix `A`, i.e. returns
a matrix `B = A^{1/2}` such that `B^2 = A`. The square root
of a matrix, if it exists, is not unique.

**Examples**

Square roots of some simple matrices::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> sqrtm([[1,0], [0,1]])
    [1.0  0.0]
    [0.0  1.0]
    >>> sqrtm([[0,0], [0,0]])
    [0.0  0.0]
    [0.0  0.0]
    >>> sqrtm([[2,0],[0,1]])
    [1.4142135623731  0.0]
    [            0.0  1.0]
    >>> sqrtm([[1,1],[1,0]])
    [ (0.920442065259926 - 0.21728689675164j)  (0.568864481005783 + 0.351577584254143j)]
    [(0.568864481005783 + 0.351577584254143j)  (0.351577584254143 - 0.568864481005783j)]
    >>> sqrtm([[1,0],[0,1]])
    [1.0  0.0]
    [0.0  1.0]
    >>> sqrtm([[-1,0],[0,1]])
    [(0.0 - 1.0j)           0.0]
    [         0.0  (1.0 + 0.0j)]
    >>> sqrtm([[j,0],[0,j]])
    [(0.707106781186547 + 0.707106781186547j)                                       0.0]
    [                                     0.0  (0.707106781186547 + 0.707106781186547j)]

A square root of a rotation matrix, giving the corresponding
half-angle rotation matrix::

    >>> t1 = 0.75
    >>> t2 = t1 * 0.5
    >>> A1 = matrix([[cos(t1), -sin(t1)], [sin(t1), cos(t1)]])
    >>> A2 = matrix([[cos(t2), -sin(t2)], [sin(t2), cos(t2)]])
    >>> sqrtm(A1)
    [0.930507621912314  -0.366272529086048]
    [0.366272529086048   0.930507621912314]
    >>> A2
    [0.930507621912314  -0.366272529086048]
    [0.366272529086048   0.930507621912314]

The identity `(A^2)^{1/2} = A` does not necessarily hold::

    >>> A = matrix([[4,1,4],[7,8,9],[10,2,11]])
    >>> sqrtm(A**2)
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]
    >>> sqrtm(A)**2
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]
    >>> A = matrix([[-4,1,4],[7,-8,9],[10,2,11]])
    >>> sqrtm(A**2)
    [  7.43715112194995  -0.324127569985474   1.8481718827526]
    [-0.251549715716942    9.32699765900402  2.48221180985147]
    [  4.11609388833616   0.775751877098258   13.017955697342]
    >>> chop(sqrtm(A)**2)
    [-4.0   1.0   4.0]
    [ 7.0  -8.0   9.0]
    [10.0   2.0  11.0]

For some matrices, a square root does not exist::

    >>> sqrtm([[0,1], [0,0]])
    Traceback (most recent call last):
      ...
    ZeroDivisionError: matrix is numerically singular

Two examples from the documentation for Matlab's ``sqrtm``::

    >>> mp.dps = 15; mp.pretty = True
    >>> sqrtm([[7,10],[15,22]])
    [1.56669890360128  1.74077655955698]
    [2.61116483933547  4.17786374293675]
    >>>
    >>> X = matrix(\
    ...   [[5,-4,1,0,0],
    ...   [-4,6,-4,1,0],
    ...   [1,-4,6,-4,1],
    ...   [0,1,-4,6,-4],
    ...   [0,0,1,-4,5]])
    >>> Y = matrix(\
    ...   [[2,-1,-0,-0,-0],
    ...   [-1,2,-1,0,-0],
    ...   [0,-1,2,-1,0],
    ...   [-0,0,-1,2,-1],
    ...   [-0,-0,-0,-1,2]])
    >>> mnorm(sqrtm(X) - Y)
    4.53155328326114e-19

r5   é   r
   r4   é€   r3   r   é   gü©ñÒMbP?)r6   r   ÚdetrD   rC   r   rE   rR   ÚinverseÚZeroDivisionErrorr   ÚNoConvergence)r   r7   rP   r   Údr:   r<   ÚZÚIr,   ÚYprevÚmag1Úmag2s                r   rN   ÚMatrixCalculusMethods.sqrtmÓ   s¨  € ðF �J‰J�q‹MˆàˆQ‰3�!‹8ØˆHØ�x‰xˆÞØ—‘˜“
ˆAÜ�3—6‘6˜!“9‹~  3§7¡7¡
Ó*¨s¯v©v°a«y¸1«}Ø—~‘~ a°Q©Ó7Ð7ð	Ø�HŠH˜‰N�HØ—'‘'˜C‘-ˆCØˆAØ�q‘DˆLˆAØˆAàØ�ðØ §+¡+¨a£.Ñ 0Ñ1°3¸¿+¹+Àa».Ñ8HÑ3I�qð —y‘y ¡¨%Ó0�Ø—y‘y  EÓ*�Ø ™8Ó#ØÞ 1 q£5°¸u¹Ó1DØŸ>™>¨!¸©]Ó;ð
 �Hð	 �Q‘�Ø—x‘x“<Ø×+Ñ+Ð+ñ% ð( ŒHØ	ˆQ‰ˆØˆøô% )ó Þ"ØŸN™N¨1¸!©mÓ<˜Úàðûð  �Hús7   Â1F- Ã+F  Ã3AF- Å"F- Æ %F*Æ%F- Æ(F*Æ*F- Æ-F5c                 óø  • U R                  U5      nU R                  n U =R                  S-  sl        U R                  S-  nUS-  nUnSn U R                  U5      nUS-  nU R	                  XT-
  S5      S:  a  OM1  XT-
  =pxUS-  n	Sn
 U
S-  (       a  X—U
-  -  n	OX—U
-  -  n	Xx-  nU R	                  US5      U:  a  O"U
S-  n
X R                  :”  a  U R
                  eMV  X l        U	SU-  -  n	U	$ ! X l        f = f)a�
  
Computes a logarithm of the square matrix `A`, i.e. returns
a matrix `B = \log(A)` such that `\exp(B) = A`. The logarithm
of a matrix, if it exists, is not unique.

**Examples**

Logarithms of some simple matrices::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> X = eye(3)
    >>> logm(X)
    [0.0  0.0  0.0]
    [0.0  0.0  0.0]
    [0.0  0.0  0.0]
    >>> logm(2*X)
    [0.693147180559945                0.0                0.0]
    [              0.0  0.693147180559945                0.0]
    [              0.0                0.0  0.693147180559945]
    >>> logm(expm(X))
    [1.0  0.0  0.0]
    [0.0  1.0  0.0]
    [0.0  0.0  1.0]

A logarithm of a complex matrix::

    >>> X = matrix([[2+j, 1, 3], [1-j, 1-2*j, 1], [-4, -5, j]])
    >>> B = logm(X)
    >>> nprint(B)
    [ (0.808757 + 0.107759j)    (2.20752 + 0.202762j)   (1.07376 - 0.773874j)]
    [ (0.905709 - 0.107795j)  (0.0287395 - 0.824993j)  (0.111619 + 0.514272j)]
    [(-0.930151 + 0.399512j)   (-2.06266 - 0.674397j)  (0.791552 + 0.519839j)]
    >>> chop(expm(B))
    [(2.0 + 1.0j)           1.0           3.0]
    [(1.0 - 1.0j)  (1.0 - 2.0j)           1.0]
    [        -4.0          -5.0  (0.0 + 1.0j)]

A matrix `X` close to the identity matrix, for which
`\log(\exp(X)) = \exp(\log(X)) = X` holds::

    >>> X = eye(3) + hilbert(3)/4
    >>> X
    [              1.25             0.125  0.0833333333333333]
    [             0.125  1.08333333333333              0.0625]
    [0.0833333333333333            0.0625                1.05]
    >>> logm(expm(X))
    [              1.25             0.125  0.0833333333333333]
    [             0.125  1.08333333333333              0.0625]
    [0.0833333333333333            0.0625                1.05]
    >>> expm(logm(X))
    [              1.25             0.125  0.0833333333333333]
    [             0.125  1.08333333333333              0.0625]
    [0.0833333333333333            0.0625                1.05]

A logarithm of a rotation matrix, giving back the angle of
the rotation::

    >>> t = 3.7
    >>> A = matrix([[cos(t),sin(t)],[-sin(t),cos(t)]])
    >>> chop(logm(A))
    [             0.0  -2.58318530717959]
    [2.58318530717959                0.0]
    >>> (2*pi-t)
    2.58318530717959

For some matrices, a logarithm does not exist::

    >>> logm([[1,0], [0,0]])
    Traceback (most recent call last):
      ...
    ZeroDivisionError: matrix is numerically singular

Logarithm of a matrix with large entries::

    >>> logm(hilbert(3) * 10**20).apply(re)
    [ 45.5597513593433  1.27721006042799  0.317662687717978]
    [ 1.27721006042799  42.5222778973542   2.24003708791604]
    [0.317662687717978  2.24003708791604    42.395212822267]

r4   rV   r5   r
   r   g      À?r   )r6   r   r   rN   r   r[   )r   r7   r   r:   r^   rG   Únr;   ÚXÚLr,   s              r   ÚlogmÚMatrixCalculusMethods.logm^  s  € ðd �J‰J�q‹MˆØ�x‰xˆð	Ø�HŠH˜‰N�HØ—'‘'˜C‘-ˆCØ�1‘ˆAØˆAØˆAØØ—I‘I˜a“L�Ø�Q‘�Ø—9‘9˜Q™S %Ó(¨5Ó0Øñ	 ð
 ‘CˆKˆAØ�!‘ˆAØˆAØØ�q—5Ø˜Q™‘J‘Aà˜Q™‘J�AØ‘�Ø—9‘9˜Q Ó&¨Ó,ØØ�Q‘�Ø—x‘x“<Ø×+Ñ+Ð+ñ ð ŒHØ	ˆQ�‰T‰	ˆØˆøð �Hús   ŸCC1 Ã1C9c                 óÀ  • U R                  U5      nU R                  U5      nU R                  n U =R                  S-  sl        U R                  U5      (       a  U[	        U5      -  nO^U R                  US-  5      (       a#  [	        US-  5      nU R                  U5      U-  nO"U R                  X R                  U5      -  5      nX0l        US-  nU$ ! X0l        f = f)aæ  
Computes `A^r = \exp(A \log r)` for a matrix `A` and complex
number `r`.

**Examples**

Powers and inverse powers of a matrix::

    >>> from mpmath import *
    >>> mp.dps = 15; mp.pretty = True
    >>> A = matrix([[4,1,4],[7,8,9],[10,2,11]])
    >>> powm(A, 2)
    [ 63.0  20.0   69.0]
    [174.0  89.0  199.0]
    [164.0  48.0  179.0]
    >>> chop(powm(powm(A, 4), 1/4.))
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]
    >>> powm(extraprec(20)(powm)(A, -4), -1/4.)
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]
    >>> chop(powm(powm(A, 1+0.5j), 1/(1+0.5j)))
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]
    >>> powm(extraprec(5)(powm)(A, -1.5), -1/(1.5))
    [ 4.0  1.0   4.0]
    [ 7.0  8.0   9.0]
    [10.0  2.0  11.0]

A Fibonacci-generating matrix::

    >>> powm([[1,1],[1,0]], 10)
    [89.0  55.0]
    [55.0  34.0]
    >>> fib(10)
    55.0
    >>> powm([[1,1],[1,0]], 6.5)
    [(16.5166626964253 - 0.0121089837381789j)  (10.2078589271083 + 0.0195927472575932j)]
    [(10.2078589271083 + 0.0195927472575932j)  (6.30880376931698 - 0.0317017309957721j)]
    >>> (phi**6.5 - (1-phi)**6.5)/sqrt(5)
    (10.2078589271083 - 0.0195927472575932j)
    >>> powm([[1,1],[1,0]], 6.2)
    [ (14.3076953002666 - 0.008222855781077j)  (8.81733464837593 + 0.0133048601383712j)]
    [(8.81733464837593 + 0.0133048601383712j)  (5.49036065189071 - 0.0215277159194482j)]
    >>> (phi**6.2 - (1-phi)**6.2)/sqrt(5)
    (8.81733464837593 - 0.0133048601383712j)

r4   r   r
   )r6   Úconvertr   Úisintr   rN   r=   rg   )r   r7   Úrr   ÚvÚys         r   ÚpowmÚMatrixCalculusMethods.powmÐ  s¸   € ðh �J‰J�q‹MˆØ�K‰K˜‹NˆØ�x‰xˆð
	Ø�HŠH˜‰N�HØ�y‰y˜�|‰|Øœ˜Q›‘K‘Ø—‘˜1˜Q™3—‘Ü˜˜!™“H�Ø—I‘I˜a“L AÑ%‘à—H‘H˜QŸx™x¨›{™]Ó+�àŒHØ	ˆQ‰ˆØˆøð �Hús   °BC ÃC© N)Útaylor)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r/   r=   rH   rK   rR   rN   rg   ro   Ú__static_attributes__rq   r   r   r   r      s2   † ò,ô\\ò|ò:ò:9ôIòVpõdCr   r   N)Úlibmp.backendr   Úobjectr   rq   r   r   Ú<module>rz      s   ðÝ "ôN˜Fõ Nr   