+
    nDjX              	          ^ RI t ^ RIt^ RIt^RIHt ^RIHtHtH	t	H
t
 ^RIHtHtHtHt . R6Ot ! R R4      t]! ]	RR^ R7      t	]	P$                  R 4       t]	P(                  R 4       t]! ]RR^ R7      t]P$                  R 4       t]P*                  R 4       t]P,                  R 4       t]P(                  R 4       t]! ]RR^R^ R7      t]P$                  R 4       t]P.                  R 4       t]P(                  R 4       t]! ]RR^R^ R7      t]P$                  R 4       t]P.                  R  4       t]P*                  R! 4       t]P,                  R" 4       t]P(                  R# 4       t]! ]RR$^ R7      t]P$                  R% 4       t]P(                  R& 4       t]! ]RR'^ R7      t]P$                  R( 4       t]P*                  R) 4       t]P,                  R* 4       t]P(                  R+ 4       t]! ]
R	R,R-^ R.7      t
]
P$                  R/ 4       t]
P(                  R0 4       t]! ]R
R1R-^ R.7      t]P$                  R2 4       t]P*                  R3 4       t]P,                  R4 4       t]P(                  R5 4       tR# )7    N_nonneg_int_or_fail)
legendre_passoc_legendre_psph_legendre_p
sph_harm_y)legendre_p_allassoc_legendre_p_allsph_legendre_p_allsph_harm_y_allr   r
   r   r	   r   r   r   r   c                   l   a  ] tR t^t o RRR/R llt]R 4       tR tR tR t	R	 t
R
 tR tR tRtV tR# )
MultiUFuncNforce_complex_outputFc                  \        V\        P                  4      '       g   \        V\        P                  P
                  4      '       d   VP                  4       pM8\        V\        P                  P                  4      '       d   TpM\        R 4      h\        4       pV F\  p\        V\        P                  4      '       g   \        RV 24      hVP                  \        R VP                   4       4      4       K^  	  \        V4      ^8  d   \        R4      hW n        Wn        W0n        W@n        WPn        RV n        RV n        RV n        R V n        R V n        V'       d    VP1                  R4      ^ ,          V n        R# RV n        R# )z7ufunc_or_ufuncs should be a ufunc or a ufunc collectionz2All ufuncs must have type `numpy.ufunc`. Received c              3   P   "   T F  qP                  R 4      ^ ,          x  K  	  R# 5i)z->N)split).0xs   & T/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/special/_multiufuncs.py	<genexpr>&MultiUFunc.__init__.<locals>.<genexpr>+   s     .UAwwt}Q/?/?   $&z*All ufuncs must take the same input types.Nc                      R# )N r   argskwargss   *,r   <lambda>%MultiUFunc.__init__.<locals>.<lambda>7   s    2    c                      / # Nr   r   s   *,r   r   r   8   s    Rr    z

)
isinstancenpufunccollectionsabcMappingvaluesIterable
ValueErrorsetadd	frozensettypeslen__name___ufunc_or_ufuncs_MultiUFunc__doc!_MultiUFunc__force_complex_output_default_kwargs_resolve_out_shapes_finalize_out_key_ufunc_default_args_ufunc_default_kwargsr   __text_signature__)	selfufunc_or_ufuncsnamedocr   default_kwargsufuncs_iterseen_input_typesr%   s	   &&&&$,   r   __init__MultiUFunc.__init__   sF   /28844/;??+B+BCC-446O[__-E-EFF-  "5 6 6
  #u$!%22$ &22A1B&D E E $$Y.U.U%UV	 %
 #$q( !MNN /
&:#-#' !	#= %?":=#))F"3A"64r    c                    V P                   # r"   )r3   )r<   s   &r   __doc__MultiUFunc.__doc__;   s    zzr    c                    Wn         R# )z3Set `key` method by decorating a function.
        N)r8   r<   funcs   &&r   _override_keyMultiUFunc._override_key?   s	     	r    c                    Wn         R # r"   )r9   rI   s   &&r   _override_ufunc_default_args'MultiUFunc._override_ufunc_default_argsD   s    #' r    c                    Wn         R # r"   )r:   rI   s   &&r   _override_ufunc_default_kwargs)MultiUFunc._override_ufunc_default_kwargsG   s    %)"r    c                J    VP                   f   RVn         RVn        Wn        R# )z9Set `resolve_out_shapes` method by decorating a function.Nz2Resolve to output shapes based on relevant inputs.resolve_out_shapes)rF   r1   r6   rI   s   &&r   _override_resolve_out_shapes'MultiUFunc._override_resolve_out_shapesJ   s#    <<H L,#' r    c                    Wn         R # r"   )r7   rI   s   &&r   _override_finalize_out!MultiUFunc._override_finalize_outR   s    !r    c                    \        V P                  \        P                  4      '       d   V P                  # V P                  ! R/ VB pV P                  V,          # )z.Resolve to a ufunc based on keyword arguments.r   )r#   r2   r$   r%   r8   )r<   r   	ufunc_keys   &, r   _resolve_ufuncMultiUFunc._resolve_ufuncU   sI     d++RXX66(((II''	$$Y//r    c                   V P                   V,          pWP                  ! R/ VB ,          pV P                  ! R/ VB pWP                  ) R   Uu. uF  p\        P
                  ! V4      NK  	  ppV P                  ! R/ VB pV P                  Ee   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV P                  ! . VR VP                  )  OVOVP                  N5/ VB p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p	\        VR4      '       d;   WP                  R,          ,           p
VP                  V
4      p
WP                  ) R  pMc\        P                  ! V	!  p\        P                  ! V\        P                  4      '       g   \        P                  pVP                  V3,          pV P                   '       d-   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        ;QJ d    . R \#        W4       4       F  NK  	  5M! R \#        W4       4       4      pWR&   V! V/ VB pV P$                  e   V P%                  V4      pV# u upi )	Nc              3   N   "   T F  p\         P                  ! V4      x  K  	  R # 5ir"   )r$   shaper   	ufunc_args   & r   r   &MultiUFunc.__call__.<locals>.<genexpr>k   s     $U*YRXXi%8%8*s   #%c              3      "   T FB  p\        VR 4      '       d   VP                  M\        P                  ! \        V4      4      x  KD  	  R# 5i)dtypeN)hasattrre   r$   typera   s   & r   r   rc   p   s?      %B6@ 9@	78S8SY__*,((4	?*C&D6@s   A
Aresolve_dtypesc              3   P   "   T F  p\         P                  ! R V4      x  K  	  R# 5i)y              ?N)r$   result_type)r   ufunc_out_dtypes   & r   r   rc      s&      )R@P_ *,O)L)L@Pr   c              3   T   "   T F  w  r\         P                  ! WR 7      x  K   	  R# 5i))re   N)r$   empty)r   ufunc_out_shaperk   s   &  r   r   rc      s)      DB =O HHBs   &(outr   r"   )r5   r9   r\   ninr$   asarrayr:   r6   tuplenoutrf   rh   rj   
issubdtypeinexactfloat64r4   zipr7   )r<   r   r   r%   arg
ufunc_argsufunc_kwargsufunc_arg_shapesufunc_out_shapesufunc_arg_dtypesufunc_dtypesufunc_out_dtypesrk   ro   s   &*,           r   __call__MultiUFunc.__call__^   sW   %%.((2622##-f- 26yyjk1BC1B#bjjo1B
C11;F;$$0$u$U*$Uuu$U*$UU#77  Bk		z9J  B9I BKP:: B:@ B  %u %B6@%Buu %B6@%B  B u.///**w2FF$33LA#/#= "$..2B"CorzzBB&(jjO#(::0B#B ***#(5 )R@P)R55 )R@P)R $R  % D/BD%% D/BD DC #&Z0<0*$$S)C
O Ds   I2)__doc__force_complex_outputr1   r;   r5   r7   r8   r6   r9   r:   r2   )NN)r1   
__module____qualname____firstlineno__rC   propertyrF   rK   rN   rQ   rU   rX   r\   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sQ      H&+ HD  
(*("0/ /r    r   a  sph_legendre_p(n, m, theta, *, diff_n=0)

    Spherical Legendre polynomial of the first kind.

    Parameters
    ----------
    n : array_like of ints
        Degree of the spherical Legendre polynomial. Must have ``n >= 0``.
    m : array_like of ints
        Order of the spherical Legendre polynomial.
    theta : array_like
        Input value.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order `diff_n`. Default is 0.

    Returns
    -------
    ndarray or tuple of ndarray
        Spherical Legendre polynomial with ``diff_n`` derivatives.

    Notes
    -----
    The spherical counterpart of an (unnormalized) associated Legendre polynomial has
    the additional factor

    .. math::

        \sqrt{\frac{(2 n + 1) (n - m)!}{4 \pi (n + m)!}}

    It is the same as the spherical harmonic :math:`Y_{n}^{m}(\theta, \phi)`
    with :math:`\phi = 0`.
    diff_nc                 b    \        V R RR7      p ^ T u;8:  d   ^8:  g   M \        RV  R24      hV # r   FstrictGdiff_n is currently only implemented for orders 0, 1, and 2, received: .r   r+   r   s   &r   _r      B     %@F! $
 	
 Mr    c                 2    \         P                  ! V R^ 4      #    r$   moveaxisro   s   &r   r   r          ;;sB""r    a  sph_legendre_p_all(n, m, theta, *, diff_n=0)

    All spherical Legendre polynomials of the first kind up to the
    specified degree `n`, order `m`, and all derivatives up
    to order `diff_n`.

    Parameters
    ----------
    n : int
        Degree of the spherical Legendre polynomials. Must have ``n >= 0``.
    m : int
        Order of the spherical Legendre polynomials.
    theta : array_like
        Input value.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order `diff_n`. Default is 0.

    Returns
    -------
    ndarray
        Output shape is ``(diff_n + 1, n + 1, 2 * m + 1, ...)``. The entry at
        ``(i, j, k)`` corresponds to the ``i``-th derivative, degree ``j``, and
        order ``k`` for all ``0 <= i <= diff_n``, ``0 <= j <= n``, and
        ``-m <= k <= m``.

    See Also
    --------
    sph_legendre_p
    c                 b    \        V R RR7      p ^ T u;8:  d   ^8:  g   M \        RV  R24      hV # r   r   r   s   &r   r   r      r   r    c                     R R.R.,           /# axesr   )r   r   r   r   r   s   &r   r   r      s    RDJ<'((r    c                     \        V \        P                  4      '       d   V ^ 8  d   \        R4      hV ^,           ^\	        V4      ,          ^,           3V,           V^,           3,           3# )r   !n must be a non-negative integer.)r#   numbersIntegralr+   abs)nmtheta_shapers   r   s   &&&&&r   r   r      sU    a))**q1u<==UAAJN#k1VaZMACCr    c                 2    \         P                  ! V R^ 4      # r   r   r   s   &r   r   r     r   r    aY  assoc_legendre_p(n, m, z, *, branch_cut=2, norm=False, diff_n=0)

    Associated Legendre polynomial of the first kind.

    Defined as

    .. math::

        P_n^m(z) = (-1)^m (1 - z^2)^{m/2}
            \frac{d^m}{dz^m} P_n(z)

    where :math:`P_n` is the Legendre polynomial.

    This definition includes the Condon-Shortley phase :math:`(-1)^m`.

    Parameters
    ----------
    n : array_like of ints
        Degree of the associated Legendre polynomial. Must have ``n >= 0``.
    m : array_like of ints
        Order of the associated Legendre polynomial.
    z : array_like
        Input value.
    branch_cut : array_like of ints, optional
        Selects branch cut. Must be 2 (default) or 3.
        2: cut on the real axis ``|z| > 1``
        3: cut on the real axis ``-1 < z < 1``
    norm : bool, optional
        If ``True``, compute the normalized associated Legendre polynomial.
        Default is ``False``.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order ``diff_n``. Default is 0.

    Returns
    -------
    ndarray or tuple of ndarray
        Associated Legendre polynomial with ``diff_n`` derivatives.

    Notes
    -----
    The normalized counterpart of an (unnormalized) associated Legendre
    polynomial has the additional factor

    .. math::

        \sqrt{\frac{(2 n + 1) (n - m)!}{2 (n + m)!}}

    Examples
    --------
    Evaluate :math:`P_2^1(z)` on :math:`[-1, 1]`:

    >>> import numpy as np
    >>> from scipy.special import assoc_legendre_p
    >>> z = np.linspace(-1, 1, 11)
    >>> expected = -3 * z * np.sqrt(1 - z**2)
    >>> np.allclose(assoc_legendre_p(2, 1, z), expected)
    True

    Compute the normalized associated Legendre polynomial:

    >>> scale = np.sqrt(5/12)
    >>> np.allclose(assoc_legendre_p(2, 1, z, norm=True), scale * expected)
    True
    F
branch_cutnormr   c                 d    \        VR RR7      p^ Tu;8:  d   ^8:  g   M \        RV R24      hW3# r   r   r   s   &&&r   r   r   O  sE     %@F! $
 	
 <r    c                     V 3# r"   r   r   s   &&&r   r   r   Z  
    ;r    c                 2    \         P                  ! V R^ 4      # r   r   r   s   &r   r   r   _  r   r    a  assoc_legendre_p_all(n, m, z, *, branch_cut=2, norm=False, diff_n=0)

    All associated Legendre polynomials of the first kind up to the
    specified degree `n`, order `m`, and all derivatives up
    to order `diff_n`.

    Parameters
    ----------
    n : int
        Degree of the associated Legendre polynomials. Must have ``n >= 0``.
    m : int
        Order of the associated Legendre polynomials.
    z : array_like
        Input value.
    branch_cut : array_like of ints, optional
        Selects branch cut. Must be 2 (default) or 3.
        2: cut on the real axis ``|z| > 1``
        3: cut on the real axis ``-1 < z < 1``
    norm : bool, optional
        If ``True``, compute the normalized associated Legendre polynomials.
        Default is ``False``.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order ``diff_n``. Default is 0.

    Returns
    -------
    ndarray
        Output shape is ``(diff_n + 1, n + 1, 2 * m + 1, ...)``. The entry at
        ``(i, j, k)`` corresponds to the ``i``-th derivative, degree ``j``, and
        order ``k`` for all ``0 <= i <= diff_n``, ``0 <= j <= n``, and
        ``-m <= k <= m``.

    See Also
    --------
    assoc_legendre_p
    c                     \        V\        P                  4      '       d   V^ 8  g   \        RV R24      h^ Tu;8:  d   ^8:  g   M \        RV R24      hW3# r   z1diff_n must be a non-negative integer, received: r   r   )r#   r   r   r+   r   s   &&&r   r   r     sl     0 011!?xqI
 	
 ! $
 	
 <r    c                     V 3# r"   r   r   s   &&&r   r   r     r   r    c                     R RR.R.,           /# r   r   r   s   &&&r   r   r     s    RH
|+,,r    c                 v   VR ,          p\        V \        P                  4      '       d   V ^ 8  d   \        R4      h\        V\        P                  4      '       d   V^ 8  d   \        R4      hV ^,           ^\	        V4      ,          ^,           3\
        P                  ! W#4      ,           V^,           3,           3# )r   r   z!m must be a non-negative integer.r#   r   r   r+   r   r$   broadcast_shapes)r   r   z_shapebranch_cut_shapers   r   r   s   &&&&&, r   r   r     s    HFa))**q1u<==a))**q1u<==UAAJN#
G67:@1*G I Ir    c                 2    \         P                  ! V R^ 4      # r   r   r   s   &r   r   r     r   r    a  legendre_p(n, z, *, diff_n=0)

    Legendre polynomial of the first kind.

    Parameters
    ----------
    n : array_like of ints
        Degree of the Legendre polynomial. Must have ``n >= 0``.
    z : array_like
        Input value.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order ``diff_n``. Default is 0.

    Returns
    -------
    p : ndarray or tuple of ndarray
        Legendre polynomial with ``diff_n`` derivatives.

    See Also
    --------
    legendre

    References
    ----------
    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
           Functions", John Wiley and Sons, 1996.
           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html

    Examples
    --------
    Evaluate the Legendre polynomial :math:`P_3` at :math:`z = 0.5`:

    >>> import numpy as np
    >>> from scipy.special import legendre_p
    >>> np.allclose(legendre_p(3, 0.5), -0.4375)
    True

    Compute the value and first derivative with respect to ``z``:

    >>> p, dp = legendre_p(3, 0.5, diff_n=1)
    >>> np.allclose([p, dp], [-0.4375, 0.375])
    True
    c                     \        V \        P                  4      '       d   V ^ 8  d   \        RV  R24      h^ T u;8:  d   ^8:  g   M \	        RV  R24      hV # r   )r#   r   r   r+   NotImplementedErrorr   s   &r   r   r     sh    vw//00fqj?xqI
 	
 !! $
 	
 Mr    c                 2    \         P                  ! V R^ 4      # r   r   r   s   &r   r   r     r   r    a  legendre_p_all(n, z, *, diff_n=0)

    All Legendre polynomials of the first kind up to the specified degree
    `n` and all derivatives up to order `diff_n`.

    Parameters
    ----------
    n : int
        Degree of the Legendre polynomials. Must have ``n >= 0``.
    z : array_like
        Input value.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order ``diff_n``. Default is 0.

    Returns
    -------
    ndarray
        Output shape is ``(diff_n + 1, n + 1, ...)``. The entry at ``(i, j)``
        corresponds to the ``i``-th derivative and degree ``j`` for all
        ``0 <= i <= diff_n`` and ``0 <= j <= n``.

    See Also
    --------
    legendre_p
    c                 b    \        V R RR7      p ^ T u;8:  d   ^8:  g   M \        RV  R24      hV # r   r   r   s   &r   r   r     r   r    c                     R RR./# )r   r   )r   r   r   r   s   &r   r   r   *  s    RM""r    c                 l    \        V R RR7      p W ^,           3V,           V^,           3,           3,          # )r   Fr   r   )r   r   rs   r   s   &&&&r   r   r   /  s2    As51AE8g%!5777r    c                 2    \         P                  ! V R^ 4      # r   r   r   s   &r   r   r   6  r   r    a  sph_harm_y(n, m, theta, phi, *, diff_n=0)

    Spherical harmonics.

    They are defined as

    .. math::

        Y_n^m(\theta,\phi) = \sqrt{\frac{2 n + 1}{4 \pi} \frac{(n - m)!}{(n + m)!}}
            P_n^m(\cos(\theta)) e^{i m \phi}

    where :math:`P_n^m` are the (unnormalized) associated Legendre polynomials.

    Parameters
    ----------
    n : array_like of ints
        Degree of the harmonic. Must have ``n >= 0``. This is
        often denoted by ``l`` (lower case L) in descriptions of
        spherical harmonics.
    m : array_like of ints
        Order of the harmonic.
    theta : array_like
        Polar (colatitudinal) coordinate; must be in ``[0, pi]``.
    phi : array_like
        Azimuthal (longitudinal) coordinate; must be in ``[0, 2*pi]``.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order `diff_n`. Default is 0.

    Returns
    -------
    ndarray or tuple of ndarray
       Spherical harmonics with `diff_n` derivatives.

    Notes
    -----
    There are different conventions for the meanings of the input
    arguments ``theta`` and ``phi``. In SciPy ``theta`` is the
    polar angle and ``phi`` is the azimuthal angle. It is common to
    see the opposite convention, that is, ``theta`` as the azimuthal angle
    and ``phi`` as the polar angle.

    Note that SciPy's spherical harmonics include the Condon-Shortley
    phase [2]_ because it is part of `sph_legendre_p`.

    With SciPy's conventions, the first several spherical harmonics
    are

    .. math::

        Y_0^0(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{1}{\pi}} \\
        Y_1^{-1}(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{3}{2\pi}}
                                    e^{-i\phi} \sin(\theta) \\
        Y_1^0(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{3}{\pi}}
                                 \cos(\theta) \\
        Y_1^1(\theta, \phi) &= -\frac{1}{2} \sqrt{\frac{3}{2\pi}}
                                 e^{i\phi} \sin(\theta).

    References
    ----------
    .. [1] Digital Library of Mathematical Functions, 14.30.
           https://dlmf.nist.gov/14.30
    .. [2] https://en.wikipedia.org/wiki/Spherical_harmonics#Condon.E2.80.93Shortley_phase
    T)r   r   c                 b    \        V R RR7      p ^ T u;8:  d   ^8:  g   M \        RV  R24      hV # r   r   r   s   &r   r   r     r   r    c                 :   V P                   R,          ^8X  d
   V R,          # V P                   R,          ^8X  d   V R,          V R^^ .^ ^.3,          3# V P                   R,          ^8X  d1   V R,          V R^^ .^ ^.3,          V R^^.^^ ..^ ^.^^..3,          3# R# r   .Nr   ).r   r   r`   r   s   &r   r   r         		"9~		"9~s3AA#6777		"IC!Q!Q$7 8q!fq!f%AA'778: 	: 	r    a  sph_harm_y_all(n, m, theta, phi, *, diff_n=0)

    All spherical harmonics up to the specified degree `n`, order `m`,
    and all derivatives up to order `diff_n`.

    Parameters
    ----------
    n : int
        Degree of the harmonics. Must have ``n >= 0``. This is
        often denoted by ``l`` (lower case L) in descriptions of
        spherical harmonics.
    m : int
        Order of the harmonics.
    theta : array_like
        Polar (colatitudinal) coordinate; must be in ``[0, pi]``.
    phi : array_like
        Azimuthal (longitudinal) coordinate; must be in ``[0, 2*pi]``.
    diff_n : int, optional
        A non-negative integer. Compute and return all derivatives up
        to order `diff_n`. Default is 0.

    Returns
    -------
    ndarray or tuple of ndarray
        Returns a tuple of length ``diff_n + 1`` (if ``diff_n > 0``). The first
        entry corresponds to the spherical harmonics, the second entry
        (if ``diff_n >= 1``) to the gradient, and the third entry
        (if ``diff_n >= 2``)  to the Hessian matrix. Each entry is an array of
        shape ``(n + 1, 2 * m + 1, ...)``, where the entry at ``(i, j)``
        corresponds to degree ``i`` and order ``j`` for all ``0 <= i <= n``
        and ``-m <= j <= m``.

    See Also
    --------
    sph_harm_y
    c                 b    \        V R RR7      p ^ T u;8:  d   ^8:  g   M \        RV  R24      hV # )r   Fr   z=diff_n is currently only implemented for orders 2, received: r   r   r   s   &r   r   r     r   r    c                     R RR.R.,           /# )r   r   )r   r   r   r   r   s   &r   r   r     s    RH//00r    c                 "   VR ,          p\        V \        P                  4      '       d   V ^ 8  d   \        R4      hV ^,           ^\	        V4      ,          ^,           3\
        P                  ! W#4      ,           V^,           V^,           3,           3# )r   r   r   )r   r   r   	phi_shapers   r   r   s   &&&&&, r   r   r     sx    HFa))**q1u<==UAAJN#b&9&9+&QQ	!VaZ ! # #r    c                 :   V P                   R,          ^8X  d
   V R,          # V P                   R,          ^8X  d   V R,          V R^^ .^ ^.3,          3# V P                   R,          ^8X  d1   V R,          V R^^ .^ ^.3,          V R^^.^^ ..^ ^.^^..3,          3# R# r   r   r   s   &r   r   r     r   r    )r   r
   r   r	   r   r   r   r   )r&   r   numpyr$   _input_validationr   _special_ufuncsr   r   r   r   _gufuncsr	   r
   r   r   __all__r   rK   r   rX   rQ   rU   rN   r   r    r   <module>r      s      2: :; ;	u up  @ G$N   &&# '#  : A! H !! " 22) 3) 00D 1D **# +# @@ E!GD N    .. / ((# )# "$H E!O( V ## $ 22 3 44- 5- 22	I 3	I ,,# -# +V ]/
d 
 
 ""# ## 2 9@   ..# /# ,,8 -8 &&# '# ?~ #1EC
L   ""	: #	: #F #1M'T   ..1 /1 ,,# -# &&	: '	:r    