ó
    "EñinP  ã            &       ó:  • S r SSKJr  SSKrSSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  SS/r " S	 S\5      rS
S\ S\ S\
 S\ S\ S3-   \l         S\\   S\\   S\\   S\\   S\\   S\\   S\S\S\S\S\S\S\S\S\S\SS4"S  jrS\\   S\\   S\\   S\\   S\\   S\\   S\S\S\S\S\S\S\S\S\S\SS4"S! jr\	" \S"9     S%S\\   S\\   S\\   S\\   S\\   S\\   S#\S-  S\S\S\S\S\S\S\S\S\S\SS4$S$ jj5       rg)&z)Implementation for the RMSprop algorithm.é    )ÚcastN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ_maximize_docÚ_params_docÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚRMSpropÚrmspropc                   ó¦   ^ • \ rS rSr          SS\S\\-  S\S\S\S\S	\S
\S\S-  S\S\SS4U 4S jjjrU 4S jr	S r
\SS j5       rSrU =r$ )r   é   NÚparamsÚlrÚalphaÚepsÚweight_decayÚmomentumÚcenteredÚ
capturableÚforeachÚmaximizeÚdifferentiableÚreturnc                 ón  >• [        U[        5      (       a  UR                  5       S:w  a  [        S5      eSU::  d  [        SU 35      eSU::  d  [        SU 35      eSU::  d  [        SU 35      eSU::  d  [        SU 35      eSU::  d  [        SU 35      eUUUUUUUU	U
US	.
n[        TU ]  X5        g )
Nr   zTensor lr must be 1-elementg        zInvalid learning rate: zInvalid epsilon value: zInvalid momentum value: zInvalid weight_decay value: zInvalid alpha value: )
r   r   r   r   r   r   r   r    r!   r"   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚsuperÚ__init__)Úselfr   r   r   r   r   r   r   r   r    r!   r"   ÚdefaultsÚ	__class__s                €ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/optim/rmsprop.pyr)   ÚRMSprop.__init__   sã   ø€ ô �bœ&×!Ñ! b§h¡h£j°A£oÜÐ:Ó;Ð;Ø�b‹yÜÐ6°r°dÐ;Ó<Ð<Ø�c‹zÜÐ6°s°eÐ<Ó=Ð=Ø�h‹ÜÐ7¸°zÐBÓCÐCØ�lÓ"ÜÐ;¸L¸>ÐJÓKÐKØ�e‹|ÜÐ4°U°GÐ<Ó=Ð=ð Ø ØØØ Ø(Ø$ØØ Ø,ñ
ˆô 	‰Ñ˜Õ*ó    c                 ó˜  >• [         TU ]  U5        U R                   GH)  nUR                  SS5        UR                  SS5        UR                  SS 5        UR                  SS5        UR                  SS5        UR                  SS5        US	    H°  nU R                  R                  U/ 5      n[        U5      S:w  d  M0  [        R                  " US
   5      (       a  MP  [        US
   5      nUS   (       a(  [        R                  " U[        5       UR                  S9O[        R                  " U[        5       S9US
'   M²     GM,     g )Nr   r   r   Fr    r!   r"   r   r   Ústep©ÚdtypeÚdevice©r3   )r(   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r4   )r*   r9   ÚgroupÚpÚp_stateÚstep_valr,   s         €r-   r6   ÚRMSprop.__setstate__H   s  ø€ Ü‰Ñ˜UÔ#Ø×&Õ&ˆEØ×Ñ˜Z¨Ô+Ø×Ñ˜Z¨Ô/Ø×Ñ˜Y¨Ô-Ø×Ñ˜Z¨Ô/Ø×ÑÐ-¨uÔ5Ø×Ñ˜\¨5Ô1Ø˜8”_�ØŸ*™*Ÿ.™.¨¨BÓ/�Ü�w“< 1Õ$¬U¯_ª_¸WÀV¹_×-MÓ-MÜ$ W¨V¡_Ó5�Hð
 ! ×.ô ŸšØ$Ô,=Ó,?ÈÏÉòô #Ÿ\š\¨(Ô:KÓ:MÑNð ˜F“Oô	 %ò 'r/   c                 óÐ  • SnUS    GHÙ  n	U	R                   c  M  U[        R                  " U	5      -  nUR                  U	5        U	R                   R                  (       a  [        S5      eUR                  U	R                   5        U R                  U	   n
[        U
5      S:X  a×  US   (       a(  [        R                  " S[        5       U	R                  S9O[        R                  " S[        5       S9U
S	'   [        R                  " U	[        R                  S
9U
S'   US   S:”  a&  [        R                  " U	[        R                  S
9U
S'   US   (       a&  [        R                  " U	[        R                  S
9U
S'   UR                  U
S   5        UR                  U
S	   5        US   S:”  a  UR                  U
S   5        US   (       d  GMÅ  UR                  U
S   5        GMÜ     U$ )NFr   z)RMSprop does not support sparse gradientsr   r   © r2   r5   r1   )Úmemory_formatÚ
square_avgr   Úmomentum_bufferr   Úgrad_avg)Úgradr<   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr9   r;   Úzerosr   r4   Ú
zeros_likeÚpreserve_format)r*   r@   Úparams_with_gradÚgradsÚsquare_avgsÚmomentum_buffer_listÚ	grad_avgsÚstate_stepsÚhas_complexrA   r9   s              r-   Ú_init_groupÚRMSprop._init_group]   s´  € ð ˆØ�x•ˆAØ�v‰v‰~ÙØœ5×+Ò+¨AÓ.Ñ.ˆKØ×#Ñ# AÔ&à�v‰v××Ü"Ð#NÓOÐOØ�L‰L˜Ÿ™Ô à—J‘J˜q‘MˆEô �5‹z˜Q‹ð ˜\×*ô —K’K Ô*;Ó*=ÀaÇhÁhÒOäŸš RÔ/@Ó/BÑCð �f‘ô
 ',×&6Ò&6Ø¤U×%:Ñ%:ñ'��lÑ#ð ˜Ñ$ qÓ(Ü/4×/?Ò/?Ø¬×)>Ñ)>ñ0�EÐ+Ñ,ð ˜×$Ü(-×(8Ò(8Ø¬×)>Ñ)>ñ)�E˜*Ñ%ð ×Ñ˜u \Ñ2Ô3Ø×Ñ˜u V™}Ô-à�ZÑ  1Ó$Ø$×+Ñ+¨EÐ2CÑ,DÔEØ�Z× Ò Ø× Ñ   zÑ!2×3ñI !ðL Ðr/   c                 óv  • U R                  5         SnUb%  [        R                  " 5          U" 5       nSSS5        U R                   H]  n/ n/ n/ n/ n/ n/ n	U R	                  UUUUUUU	5      n
[        UUUUUU	US   US   US   US   US   US   US   US	   US
   US   U
S9  M_     U$ ! , (       d  f       N}= f)z�Perform a single optimization step.

Args:
    closure (Callable, optional): A closure that reevaluates the model
        and returns the loss.
Nr   r   r   r   r   r   r    r!   r"   r   )r   r   r   r   r   r   r    r!   r"   r   rY   )Ú'_accelerator_graph_capture_health_checkr<   Úenable_gradr7   rZ   r   )r*   ÚclosureÚlossr@   rS   rT   rU   rW   rV   rX   rY   s              r-   r1   ÚRMSprop.step�   s	  € ð 	×4Ñ4Ô6àˆØÑÜ×"Ò"Õ$Ù“y�÷ %ð ×&Ô&ˆEØ-/ÐØ"$ˆEØ(*ˆKØ&(ˆIØ13Ð Ø(*ˆKà×*Ñ*ØØ ØØØ$ØØóˆKô Ø ØØØØ$ØØ˜‘;Ø˜G‘nØ˜%‘LØ" >Ñ2Ø˜zÑ*Ø˜zÑ*Ø˜iÑ(Ø˜zÑ*Ø$Ð%5Ñ6Ø  Ñ.Ø'ô#ñ% 'ðL ˆ÷S %Õ$ús   «B*Â*
B8rF   )
g{®Gáz„?g®Gáz®ï?g:Œ0âŽyE>r   r   FFNFF©N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r>   r   Úboolr)   r6   rZ   r   r1   Ú__static_attributes__Ú__classcell__)r,   s   @r-   r   r      sË   ø† ð "ØØØØØØ Ø#ØØ$ñ'+àð'+ð �F‰Nð'+ð ð	'+ð
 ð'+ð ð'+ð ð'+ð ð'+ð ð'+ð ˜‘ð'+ð ð'+ð ð'+ð 
÷'+ð '+õRò*1ðf "ó4ó "ö4r/   aj  Implements RMSprop algorithm.

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \alpha \text{ (alpha)}, \: \gamma \text{ (lr)},
                \: \theta_0 \text{ (params)}, \: f(\theta) \text{ (objective)}                   \\
            &\hspace{13mm}   \lambda \text{ (weight decay)},\: \mu \text{ (momentum)},
                \: centered, \: \epsilon \text{ (epsilon)}                                       \\
            &\textbf{initialize} : v_0 \leftarrow 0 \text{ (square average)}, \:
                \textbf{b}_0 \leftarrow 0 \text{ (buffer)}, \: g^{ave}_0 \leftarrow 0     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
            &\hspace{5mm}if \: \lambda \neq 0                                                    \\
            &\hspace{10mm} g_t \leftarrow g_t + \lambda  \theta_{t-1}                            \\
            &\hspace{5mm}v_t           \leftarrow   \alpha v_{t-1} + (1 - \alpha) g^2_t
                \hspace{8mm}                                                                     \\
            &\hspace{5mm} \tilde{v_t} \leftarrow v_t                                             \\
            &\hspace{5mm}if \: centered                                                          \\
            &\hspace{10mm} g^{ave}_t \leftarrow g^{ave}_{t-1} \alpha + (1-\alpha) g_t            \\
            &\hspace{10mm} \tilde{v_t} \leftarrow \tilde{v_t} -  \big(g^{ave}_{t} \big)^2        \\
            &\hspace{5mm}if \: \mu > 0                                                           \\
            &\hspace{10mm} \textbf{b}_t\leftarrow \mu \textbf{b}_{t-1} +
                g_t/ \big(\sqrt{\tilde{v_t}} +  \epsilon \big)                                   \\
            &\hspace{10mm} \theta_t \leftarrow \theta_{t-1} - \gamma \textbf{b}_t                \\
            &\hspace{5mm} else                                                                   \\
            &\hspace{10mm}\theta_t      \leftarrow   \theta_{t-1} -
                \gamma  g_t/ \big(\sqrt{\tilde{v_t}} + \epsilon \big)  \hspace{3mm}              \\
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
            &\bf{return} \:  \theta_t                                                     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
       \end{aligned}

    For further details regarding the algorithm we refer to
    `lecture notes <https://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf>`_ by G. Hinton.
    and centered version `Generating Sequences
    With Recurrent Neural Networks <https://arxiv.org/pdf/1308.0850v5.pdf>`_.
    The implementation here takes the square root of the gradient average before
    adding epsilon (note that TensorFlow interchanges these two operations). The effective
    learning rate is thus :math:`\gamma/(\sqrt{v} + \epsilon)` where :math:`\gamma`
    is the scheduled learning rate and :math:`v` is the weighted moving average
    of the squared gradient.
    z
    Args:
        a0  
        lr (float, Tensor, optional): learning rate (default: 1e-2)
        alpha (float, optional): smoothing constant (default: 0.99)
        eps (float, optional): term added to the denominator to improve
            numerical stability (default: 1e-8)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        momentum (float, optional): momentum factor (default: 0)
        centered (bool, optional) : if ``True``, compute the centered RMSProp,
            the gradient is normalized by an estimation of its variance
        z	
        z

    r   rT   rU   rW   rV   rX   r   r   r   r   r   r   r!   r"   r   rY   r#   c       
         ó"  • [         R                  R                  5       (       d  [        U5      n[	        U 5       GHQ  u  nnUU   n[         R
                  R                  5       (       dh  U(       aa  [        5       nUR                  R                  UR                  R                  :X  a  UR                  R                  U;   d  [        SU S35      eUU   nU(       d  UOU* nUU   nUS-  nU	S:w  a  UR                  UU	S9n[         R                  " U5      nU(       aB  [         R                  " U5      n[         R                  " U5      n[         R                  " U5      nUR                  U5      R                  UUSU-
  S9  U(       aW  UU   nU(       a  [         R                  " U5      nUR!                  USU-
  5        UR#                  UUSS9R%                  5       nOUR'                  5       nU(       a  UR                  U5      nOUR)                  U5      nU
S:”  aW  UU   nU(       a  [         R                  " U5      nUR                  U
5      R+                  UU5        UR)                  UU* S9  GM?  UR+                  UUU* S9  GMT     g )NúIIf capturable=True, params and state_steps must be on supported devices: Ú.r   r   ©r   ©Úvalueéÿÿÿÿ)r<   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r4   ÚtypeÚAssertionErrorÚaddrL   Úview_as_realÚmul_Úaddcmul_Úlerp_ÚaddcmulÚsqrt_ÚsqrtÚadd_Úaddcdiv_)r   rT   rU   rW   rV   rX   r   r   r   r   r   r   r!   r"   r   rY   ÚiÚparamr1   Úcapturable_supported_devicesrK   rH   Úis_complex_paramrJ   ÚavgÚbufs                             r-   Ú_single_tensor_rmsproprˆ   	  s-  € ô& �9‰9×!Ñ!×#Ñ#Ü˜‹^ˆä˜f×%‰ˆˆ5Ø˜1‰~ˆô �~‰~×*Ñ*×,Ñ,¶Ü+LÓ+NÐ(à—‘×!Ñ! T§[¡[×%5Ñ%5Ó5Ø—L‘L×%Ñ%Ð)EÓEä$Ø_Ð`|Ð_}Ð}~Ðóð ð �Q‰xˆÞ#‰t¨$¨ˆØ  ‘^ˆ
à�‰	ˆà˜1ÓØ—8‘8˜E¨�8Ð6ˆDä ×+Ò+¨EÓ2ÐÞÜ×&Ò& uÓ-ˆEÜ×%Ò% dÓ+ˆDÜ×+Ò+¨JÓ7ˆJà�‰˜Ó×'Ñ'¨¨d¸!¸e¹)Ð'ÑDæØ  ‘|ˆHÞÜ ×-Ò-¨hÓ7�Ø�N‰N˜4  U¡Ô+Ø×$Ñ$ X¨x¸rÐ$ÐB×HÑHÓJ‰Cà—/‘/Ó#ˆCæØ—'‘'˜#“,‰Cà—(‘(˜3“-ˆCà�a‹<Ø& qÑ)ˆCÞÜ×(Ò(¨Ó-�Ø�H‰H�XÓ×'Ñ'¨¨cÔ2Ø�J‰J�s 2 #ˆJÔ&à�N‰N˜4 ¨R¨CˆNÔ0òi &r/   c       
   	      óö  ^!• [        U 5      S:X  a  g U(       a  [        S5      e[        R                  R	                  5       (       dB  U(       a;  [        5       m![        U!4S j[        XSS9 5       5      (       d  [        ST! S35      e[        U5      n[        R                  " XX#XE/5      nUR                  5        GH¸  u  u  nnnnnnn[        [        [           U5      n[        [        [           U5      n[        [        [           U5      n[        [        [           U5      nU(       am  UU/nU
S:”  a(  [        [        [           U5      nUR                  U5        U(       a(  [        [        [           U5      nUR                  U5        [!        U/UQ76   U(       a  [        R"                  " U5      n[        R                  R	                  5       (       d>  US   R$                  (       a*  [        R&                  " U[        R(                  " SS	S
9SS9  O[        R&                  " US5        U	S:w  a4  U(       a  [        R&                  " UUU	S9  O[        R*                  " UUU	S9n[        R,                  " UU5        [        R.                  " UUUSU-
  S9  U(       aw  [        [        [           U5      n[        R0                  " UUSU-
  5        [        R2                  " UUUSS9n[        R4                  " U5        [        R&                  " UU5        O-[        R6                  " U5      n[        R&                  " UU5        U
S:”  a¸  [        [        [           U5      n[        R,                  " UU
5        [        R8                  " UUU5        U(       aQ  [;        U[        R                  5      (       a2  [        R<                  " UU* 5      n [        R&                  " UU 5        GM-  [        R&                  " UUU* S9  GMG  U(       aR  [;        U[        R                  5      (       a3  [        R>                  " UU* 5        [        R8                  " UUU5        GM   [        R8                  " UUUU* S9  GM»     g )Nr   z#_foreach ops don't support autogradc              3   óÂ   >#   • U  HT  u  pUR                   R                  UR                   R                  :H  =(       a    UR                   R                  T;   v •  MV     g 7frb   )r4   rv   )Ú.0rA   r1   r„   s      €r-   Ú	<genexpr>Ú(_multi_tensor_rmsprop.<locals>.<genexpr>r  sO   øé € ð 
ò A‘�ð �H‰H�M‰M˜TŸ[™[×-Ñ-Ñ-÷ >Ø—‘—‘Ð!=Ñ=ô>â@ùs   ƒAAT)Ústrictrk   rl   g      ð?Úcpu)r4   rm   r   rn   rp   ) r;   rw   r<   rt   ru   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   rM   r   Ú_foreach_negÚis_cpuÚ_foreach_add_r?   Ú_foreach_addÚ_foreach_mul_Ú_foreach_addcmul_Ú_foreach_lerp_Ú_foreach_addcmulÚ_foreach_sqrt_Ú_foreach_sqrtÚ_foreach_addcdiv_r%   Ú_foreach_mulÚ_foreach_div_)"r   rT   rU   rW   rV   rX   r   r   r   r   r   r   r!   r"   r   rY   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_square_avgs_Úgrouped_grad_avgs_Úgrouped_momentum_buffer_list_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_square_avgsÚgrouped_state_stepsÚstate_and_gradsÚgrouped_momentum_buffer_listÚgrouped_grad_avgsr†   Úmomentum_lrr„   s"                                    @r-   Ú_multi_tensor_rmspropr²   V  sÊ  ø€ ô& ˆ6ƒ{�aÓØæÜÐBÓCÐCô �>‰>×&Ñ&×(Ñ(®ZÜ'HÓ'JÐ$Üô 
ô ˜v¸4Ò@ó
÷ 
ñ 
ô
 !Ø[Ð\xÐ[yÐyzÐ{óð ô 
�B‹€Bä×BÒBØ	˜Ð0DÐRó€Oð ×"Ñ"×$ñ			ñ	
ØØØ ØØ)Ø àÜœd¤6™l¨OÓ<ˆÜœT¤&™\¨>Ó:ˆÜ"¤4¬¡<Ð1EÓFÐÜ"¤4¬¡<Ð1EÓFÐæØ,Ð.AÐBˆOØ˜!‹|Ü/3Üœ‘LÐ"?ó0Ð,ð  ×&Ñ&Ð'CÔDÞÜ$(¬¬f©Ð7IÓ$JÐ!Ø×&Ñ&Ð'8Ô9Ü˜.Ð;¨?Ó;æÜ!×.Ò.¨}Ó=ˆMô �~‰~×*Ñ*×,Ñ,Ð1DÀQÑ1G×1N×1NÜ×ÒØ#¤U§\¢\°#¸eÑ%DÈCóô ×ÒÐ 3°QÔ7à˜1ÓæÜ×#Ò# M°>ÈÓVä %× 2Ò 2Ø! >¸ñ!�ô 	×ÒÐ/°Ô7Ü×ÒØ °ÀQÈÁYò	
ö Ü $¤T¬&¡\Ð3EÓ FÐÜ× Ò Ð!2°MÀ1ÀuÁ9ÔMÜ×(Ò(Ø#Ð%6Ð8IÐQSñˆCô × Ò  Ô%Ü×Ò  SÕ)ä×%Ò%Ð&9Ó:ˆCÜ×Ò  SÔ)à�a‹<Ü+/Ü”V‘Ð;ó,Ð(ô ×ÒÐ <¸hÔGÜ×#Ò#Ð$@À-ÐQTÔUö œj¨¬U¯\©\×:Ñ:Ü#×0Ò0Ð1MÐPRÈsÓS�Ü×#Ò# N°K×@ä×#Ò#Ø"Ð$@ÈÈõö œj¨¬U¯\©\×:Ñ:Ü×#Ò# C¨"¨Ô-Ü×'Ò'¨¸Às×Kä×'Ò'¨¸ÀsÐSUÐRUÕVòa %r/   )Úsingle_tensor_fnr    c                ó°  • [         R                  R                  5       (       d"  [        S U 5       5      (       d  [	        S5      eUc  [        XSS9u  nnU(       a.  [         R                  R                  5       (       a  [	        S5      eU(       a*  [         R                  R                  5       (       d  [        nO[        nU" U UUUUUUUUUUUUU	UU
S9  g)zlFunctional API that performs rmsprop algorithm computation.

See :class:`~torch.optim.RMSProp` for details.
c              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frb   )r%   r<   r   )r‹   Úts     r-   rŒ   Úrmsprop.<locals>.<genexpr>ù  s!   é € ð 5Ú-8¨Œ
�1”e—l‘l×#Ð#ª[ùs   ‚')zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)
r   r   r   r   r   r   r!   r   r"   rY   )
r<   rt   ru   r�   rO   r   rq   rr   r²   rˆ   )r   rT   rU   rW   rV   rX   r    r!   r"   r   rY   r   r   r   r   r   r   r©   Úfuncs                      r-   r   r   Ü  sÖ   € ô: �>‰>×&Ñ&×(Ñ(´ñ 5Ù-8ó5÷ 2ñ 2ô Ø^ó
ð 	
ð �Ü1Ø¨eñ
‰
ˆˆ7ö ”5—9‘9×)Ñ)×+Ñ+ÜÐSÓTÐTæ”u—y‘y×-Ñ-×/Ñ/Ü$‰ä%ˆáØØØØØØØØØØ!ØØØØØ%Øó!r/   )NFFFF)Ú__doc__Útypingr   r<   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Ú__all__r   r”   r>   rg   rˆ   r²   r   rF   r/   r-   Ú<module>r¾      s^  ðá 0å ã Ý ÷÷ ÷ ÷ ð$ �iÐ
 €ôgˆiô gðV+ðX	à	ˆð 		ð 
Ðð 	Ø	ˆð 	Ø	ˆð 	Ø	Ðð ðñY<ð „ðBJ1Ø�‰LðJ1à�‰<ðJ1ð �f‘ðJ1ð �F‰|ð	J1ð
 ˜v™,ðJ1ð �f‘ðJ1ð 	ðJ1ð ðJ1ð 
ðJ1ð ðJ1ð ðJ1ð ðJ1ð ðJ1ð ðJ1ð  ð!J1ð" ð#J1ð$ 
ô%J1ðZCWØ�‰LðCWà�‰<ðCWð �f‘ðCWð �F‰|ð	CWð
 ˜v™,ðCWð �f‘ðCWð 	ðCWð ðCWð 
ðCWð ðCWð ðCWð ðCWð ðCWð ðCWð  ð!CWð" ð#CWð$ 
ô%CWñL  Ð1GÑHð  ØØ ØØñAØ�‰LðAà�‰<ðAð �f‘ðAð �F‰|ð	Að
 ˜v™,ðAð �f‘ðAð �D‰[ðAð ðAð ðAð ðAð ðAð 	ðAð  ð!Að" 
ð#Að$ ð%Að& ð'Að( ð)Að* 
ô+Aó IñAr/   