§
    Ó˜ºh¢?  ã            "       ó¨  — d dl mZmZmZ d dlZd dlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZ ddgZ G d„ de¦  «        Zd	e› d
e› de› de	› de› d�e_        dee         dee         dee         dee         dee         dee         dededededededededefd„Zdee         dee         dee         dee         dee         dee         dededededededededefd„Z e
e¬¦  «        	 	 	 	 	 d"dee         dee         dee         dee         dee         dee         d ee         dededededededededef d!„¦   «         ZdS )#é    )ÚcastÚOptionalÚUnionN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ
_get_valueÚ_maximize_docÚ_params_docÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚASGDÚasgdc                   ó    ‡ — e Zd Z	 	 	 	 	 	 	 	 	 dded	eeef         d
ededededee         dededefˆ fd„Z	ˆ fd„Z
d„ Zedd„¦   «         Zˆ xZS )r   ç{®Gáz„?ç-Cëâ6?ç      è?ç    €„.Ar   NFÚparamsÚlrÚlambdÚalphaÚt0Úweight_decayÚforeachÚmaximizeÚdifferentiableÚ
capturablec                 óT  •— t          |t          ¦  «        r'|                     ¦   «         dk    rt          d¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚t	          ||||||||	|
¬¦	  «	        }t          ¦   «                              ||¦  «         d S )Nr   zTensor lr must be 1-elementg        zInvalid learning rate: zInvalid weight_decay value: )	r   r    r!   r"   r#   r$   r%   r&   r'   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚdictÚsuperÚ__init__)Úselfr   r   r    r!   r"   r#   r$   r%   r&   r'   ÚdefaultsÚ	__class__s               €úX/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/optim/asgd.pyr.   zASGD.__init__   sÉ   ø€ õ �b�&Ñ!Ô!ð 	< b§h¢h¡j¤j°A¢o oÝÐ:Ñ;Ô;Ð;Ø�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKåØØØØØ%ØØØ)Ø!ð

ñ 

ô 

ˆõ 	‰Œ×Ò˜ Ñ*Ô*Ð*Ð*Ð*ó    c                 óh  •— t          ¦   «                              |¦  «         | j        D �]†}|                     dd ¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |d         D �]!}| j                             |g ¦  «        }t          |¦  «        dk    rðt          j        |d         ¦  «        s@t          |d         ¦  «        }t          j
        |t          ¦   «         |j        ¬	¦  «        |d<   t          j        |d
         ¦  «        s1t          j
        |d
         t          ¦   «         |j        ¬	¦  «        |d
<   t          j        |d         ¦  «        s1t          j
        |d         t          ¦   «         |j        ¬	¦  «        |d<   �Œ#�Œˆd S )Nr$   r%   Fr&   r'   r   r   Ústep)ÚdtypeÚdeviceÚetaÚmu)r-   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r7   )r/   r=   ÚgroupÚpÚp_stateÚstep_valr1   s         €r2   r:   zASGD.__setstate__?   s¬  ø€ Ý‰Œ×Ò˜UÑ#Ô#Ð#ØÔ&ð 	ñ 	ˆEØ×Ò˜Y¨Ñ-Ô-Ð-Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×ÒÐ-¨uÑ5Ô5Ð5Ø×Ò˜\¨5Ñ1Ô1Ð1Ø˜8”_ð ñ �Øœ*Ÿ.š.¨¨BÑ/Ô/�Ý�w‘<”< 1Ò$Ð$Ý œ?¨7°6¬?Ñ;Ô;ð Ý#(¨°¬Ñ#9Ô#9˜Ý*/¬,Ø$Õ,=Ñ,?Ô,?ÈÌð+ñ +ô +˜ ™õ !œ?¨7°5¬>Ñ:Ô:ð Ý).¬Ø# EœNÕ2CÑ2EÔ2EÈaÌhð*ñ *ô *˜ ™õ !œ?¨7°4¬=Ñ9Ô9ð Ý(-¬Ø# DœMÕ1BÑ1DÔ1DÈQÌXð)ñ )ô )˜ ™ùñð	ð 	r3   c                 óÄ  — d}|d         D �]Ó}	|	j         ��È|t          j        |	¦  «        z  }|                     |	¦  «         |	j         j        rt          d¦  «        ‚|                     |	j         ¦  «         | j        |	         }
t          |
¦  «        dk    rÛt          j        d|	j	        t          ¦   «         ¬¦  «        |
d<   t          j        t          |d         ¦  «        |	j	        t          ¦   «         ¬¦  «                             ¦   «                              ¦   «         |
d	<   t          j        d|	j	        t          ¦   «         ¬¦  «        |
d
<   t          j        |	t          j        ¬¦  «        |
d<   |                     |
d
         ¦  «         |                     |
d         ¦  «         |                     |
d	         ¦  «         |                     |
d         ¦  «         �ŒÕ|S )NFr   z&ASGD does not support sparse gradientsr   © )r7   r6   r5   r   r8   r9   )Úmemory_formatÚax)Úgradr@   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr=   r?   Úzerosr7   r   Ú	as_tensorr   ÚcloneÚdetachÚonesÚ
zeros_likeÚpreserve_format)r/   rD   Úparams_with_gradÚgradsÚmusÚaxsÚetasÚstate_stepsÚhas_complexrE   r=   s              r2   Ú_init_groupzASGD._init_groupW   sÄ  € ØˆØ�x”ð !	2ñ !	2ˆAØŒvÑ!Ø�uÔ/°Ñ2Ô2Ñ2�Ø ×'Ò'¨Ñ*Ô*Ð*Ø”6Ô#ð QÝ&Ð'OÑPÔPÐPØ—’˜QœVÑ$Ô$Ð$àœ
 1œ�å�u‘:”: ’?�?Ý$)¤KØ 1¤8Õ3DÑ3FÔ3Fð%ñ %ô %�E˜&‘Mõ œÝ& u¨T¤{Ñ3Ô3Ø#$¤8Ý"3Ñ"5Ô"5ðñ ô ÷
 š™œßš™œð ˜%‘Lõ #(¤*Ø 1¤8Õ3DÑ3FÔ3Fð#ñ #ô #�E˜$‘Kõ #(Ô"2Ø­Ô)>ð#ñ #ô #�E˜$‘Kð —
’
˜5 œ;Ñ'Ô'Ð'Ø—
’
˜5 œ;Ñ'Ô'Ð'Ø—’˜E %œLÑ)Ô)Ð)Ø×"Ò" 5¨¤=Ñ1Ô1Ð1ùØÐr3   c                 ó¬  — |                       ¦   «          d}|�5t          j        ¦   «         5   |¦   «         }ddd¦  «         n# 1 swxY w Y   | j        D ]~}g }g }g }g }g }g }	|                      |||||||	¦  «        }
t          ||||||	|d         |d         |d         |d         |d         |d         |d         |d	         |d
         |
¬¦  «         Œ|S )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^   )Ú _cuda_graph_capture_health_checkr@   Úenable_gradr;   r_   r   )r/   ÚclosureÚlossrD   rX   rY   rZ   r[   r\   r]   r^   s              r2   r5   z	ASGD.step}   sg  € ð 	×-Ò-Ñ/Ô/Ð/àˆØÐÝÔ"Ñ$Ô$ð !ð !Ø�w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ô&ð 	ð 	ˆEØ-/ÐØ"$ˆEØ "ˆCØ "ˆCØ!#ˆDØ(*ˆKà×*Ò*ØÐ'¨°°S¸$Àñô ˆKõ Ø ØØØØØØ˜G”nØ˜”;Ø˜”;Ø˜G”nØ" >Ô2Ø˜iÔ(Ø˜zÔ*Ø$Ð%5Ô6Ø  Ô.Ø'ð!ñ ô ð ð ð& ˆs   ¬AÁAÁ
A)	r   r   r   r   r   NFFF©N)Ú__name__Ú
__module__Ú__qualname__r   r   rB   r   r   Úboolr.   r:   r_   r   r5   Ú__classcell__)r1   s   @r2   r   r      s  ø€ € € € € ð $(ØØØØØ"&ØØ$Ø ð+ð +àð+ð �%˜�-Ô ð+ð ð	+ð
 ð+ð ð+ð ð+ð ˜$”ð+ð ð+ð ð+ð ð+ð +ð +ð +ð +ð +ðBð ð ð ð ð0$ð $ð $ðL "ð-ð -ð -ñ "Ô!ð-ð -ð -ð -ð -r3   zŸImplements Averaged Stochastic Gradient Descent.

    It has been proposed in `Acceleration of stochastic approximation by
    averaging`_.

    Args:
        am  
        lr (float, Tensor, optional): learning rate (default: 1e-2)
        lambd (float, optional): decay term (default: 1e-4)
        alpha (float, optional): power for eta update (default: 0.75)
        t0 (float, optional): point at which to start averaging (default: 1e6)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        z	
        z¿

    .. _Acceleration of stochastic approximation by averaging:
        https://meyn.ece.ufl.edu/wp-content/uploads/sites/77/archive/spm_files/Courses/ECE555-2011/555media/poljud92.pdf

    r   rY   r[   rZ   r\   r]   r    r   r"   r!   r#   r%   r&   r'   r^   c       	   
      ó€  — t           j                             ¦   «         st          |¦  «        }t	          | ¦  «        D �]ÿ\  }}||         }|s|n| }||         }||         }||         }||         }t           j                             ¦   «         sk|rit          ¦   «         }|j        j	        |j        j	        cxk    r!|j        j	        cxk    r|j        j	        k    rn n|j        j	        |v sJ d|› d�¦   «         ‚t          j
        |¦  «        r<t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|dz  }|
dk    r|                     ||
¬¦  «        }|r4|                     d||z  z
  ¦  «         |                     ||d¬¦  «         nBt          |¦  «        }|                     d||z  z
  ¦  «         |                     || ¬¦  «         |s|                     ¦   «         dk    r<|                     |                     |¦  «                             |¦  «        ¦  «         n|                     |¦  «         |rf|                     |d||z  |z  z   |	z  z  ¦  «         |                     dt          j        ||z
  t          j        |¦  «        ¦  «        z  ¦  «         �Œ{t          |¦  «        }t          j        |d||z  |z  z   |	z  z  ¦  «        }|                     |¦  «         t          j        dt/          d||z
  ¦  «        z  ¦  «        }|                     |¦  «         �Œd S )NúUIf capturable=True, params, mus, etas, and state_steps must be on supported devices: ú.r   r   ©r!   éÿÿÿÿ©Úvalue)r@   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r7   ÚtyperM   Úview_as_realÚaddÚmul_Úaddcmul_r   Úadd_ÚitemÚsubÚcopy_ÚmaximumÚ	ones_likerR   Úmax)r   rY   r[   rZ   r\   r]   r    r   r"   r!   r#   r%   r&   r'   r^   ÚiÚparamrL   r9   rK   r8   Ústep_tÚcapturable_supported_devicesÚ	eta_valuer5   Únew_etaÚnew_mus                              r2   Ú_single_tensor_asgdrŠ   Å   sv  € õ$ Œ9×!Ò!Ñ#Ô#ð Ý˜‰^Œ^ˆå˜fÑ%Ô%ð 7ñ 7‰ˆˆ5Ø�QŒxˆØ#Ð.ˆtˆt¨$¨ˆØ�ŒVˆØ�ŒVˆØ�1ŒgˆØ˜Q”ˆõ Œ~×*Ò*Ñ,Ô,ð 	°ð 	Ý+LÑ+NÔ+NÐ(à”Ô!Ø”9”>ð&ð &ò &ð &à”:”?ð&ð &ò &ð &ð ”=Ô%ò&ð &ð &ð &ð &ð ”LÔ%Ð)EÐEÐEÐEðIØ)EðIð Ið Iñ FÔEÐEõ Ô˜EÑ"Ô"ð 	(ÝÔ% dÑ+Ô+ˆDÝÔ& uÑ-Ô-ˆEÝÔ# BÑ'Ô'ˆBð 	�!‰ˆà˜1ÒÐØ—8’8˜E¨�8Ñ6Ô6ˆDàð 	/Ø�JŠJ�q˜5 3™;‘Ñ'Ô'Ð'Ø�NŠN˜4 ¨BˆNÑ/Ô/Ð/Ð/å" 3™œˆIØ�JŠJ�q˜5 9Ñ,Ñ,Ñ-Ô-Ð-Ø�JŠJ�t I :ˆJÑ.Ô.Ð.ð ð 	˜Ÿš™œ aš˜Ø�GŠG�E—I’I˜b‘M”M×&Ò& rÑ*Ô*Ñ+Ô+Ð+Ð+à�HŠH�U‰OŒOˆOàð 	Ø�IŠI�b˜Q ¨¡¨fÑ!4Ñ4¸Ñ>Ñ?Ñ@Ô@Ð@Ø�HŠH�Q�œ v°¡{µE´OÀFÑ4KÔ4KÑLÔLÑLÑMÔMÐMÑMå˜fÑ%Ô%ˆDÝ”o b¨Q°¸±¸dÑ1BÑ-BÀuÑ,LÑ&MÑNÔNˆGØ�IŠI�gÑÔÐÝ”_ Q­¨Q°°r±	Ñ):Ô):Ñ%:Ñ;Ô;ˆFØ�HŠH�VÑÔÐÑðo7ð 7r3   c       	   	      ó6  ‡‡‡‡	‡ ‡!— t          | ¦  «        dk    rd S |r
J d¦   «         ‚t          j                             ¦   «         sK|rIt	          d¬¦  «        Š t          ˆ fd„t          | |||¦  «        D ¦   «         ¦  «        sJ d‰ › d�¦   «         ‚t          ‰¦  «        Št          j	        | |||||g¦  «        }| 
                    ¦   «         D �]I\  \  Š!}\  \  }}}}}}}t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }|rt          |||¦  «         |rt          j        |¦  «        }t          j                             ¦   «         s9|d         j        r,t          j        |t          j        dd	¬
¦  «        d¬¦  «         nt          j        |d¦  «         |
dk    rK|rt          j        |||
¬¦  «         |}nt          j        |||
¬¦  «        }t          j        ||‰¬¦  «         nt          j        ||‰¬¦  «        }t          j        |||d¬¦  «         ~t          j        ||¦  «        }t          j        |||¦  «         ~|rèt          j        |‰¦  «        }t          j        |d¦  «         t          j        |¦  «         t          j        ||¦  «         ~t          j        |‰¦  «        }t          j        |‰¦  «         t          j        |d¦  «         t          j        |‰	¦  «         t          j        |¦  «         t          j        |‰¦  «         t          j        ||¦  «         �Œÿˆ	ˆ!ˆˆfd„|D ¦   «         }ˆ!ˆfd„|D ¦   «         }t          j        ||¦  «         t          j        ||¦  «         �ŒKd S )Nr   z#_foreach ops don't support autogradF)Úsupports_xlac              3   ó¼   •K  — | ]V\  }}}}|j         j        |j         j        cxk    o |j         j        cxk    o|j         j        k    nc o|j         j        ‰v V — ŒWd S re   )r7   rw   )Ú.0rE   r9   r8   r5   r†   s        €r2   ú	<genexpr>z%_multi_tensor_asgd.<locals>.<genexpr>0  sŽ   øè è € ð 
ð 
ñ !��2�s˜Dð ŒHŒM˜RœYœ^ÐRÐRÒRÐR¨s¬z¬ÐRÐRÒRÐRÀ$Ä+ÔBRÒRÐRÐRÐRð >Ø””Ð!=Ð=ð
ð 
ð 
ð 
ð 
ð 
r3   rl   rm   g      ð?Úcpu©r7   rn   r   ro   rp   c                 óZ   •— g | ]'}t          j        ‰d ‰‰z  |z  z   ‰z  z  ‰¬¦  «        ‘Œ(S ©r   r‘   )r@   rR   )rŽ   r5   r!   r7   r    r   s     €€€€r2   ú
<listcomp>z&_multi_tensor_asgd.<locals>.<listcomp>—  sQ   ø€ ð ð ð àõ ”  q¨5°2©:¸Ñ+<Ñ'<ÀÑ&FÑ GÐPVÐWÑWÔWðð ð r3   c                 ó~   •— g | ]9}t          j        d t          d t          |¦  «        ‰z
  ¦  «        z  ‰¬¦  «        ‘Œ:S r“   )r@   rR   r‚   r   )rŽ   r5   r7   r"   s     €€r2   r”   z&_multi_tensor_asgd.<locals>.<listcomp>›  sT   ø€ ð ð ð àõ ” ¥C¨­:°dÑ+;Ô+;¸bÑ+@Ñ$AÔ$AÑ AÈ&ÐQÑQÔQðð ð r3   )r?   r@   ru   rv   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚitemsr   Úlistr   r   Ú_foreach_negÚis_cpuÚ_foreach_add_rC   Ú_foreach_addÚ_foreach_addcmul_Ú_foreach_subÚ_foreach_maximum_Ú_foreach_reciprocal_Ú_foreach_copy_Ú_foreach_mulÚ_foreach_mul_Ú_foreach_pow_)"r   rY   r[   rZ   r\   r]   r    r   r"   r!   r#   r%   r&   r'   r^   Úgrouped_tensorsÚ_Úgrouped_params_Úgrouped_grads_Úgrouped_axs_Úgrouped_mus_Úgrouped_etas_Úgrouped_state_steps_Úgrouped_paramsÚgrouped_gradsÚgrouped_axsÚgrouped_musÚgrouped_etasÚgrouped_state_stepsÚintermediateÚnew_musÚnew_etasr†   r7   s"         ````                      @@r2   Ú_multi_tensor_asgdr¸     sÍ  øøøøøø€ õ$ ˆ6�{„{�aÒÐØˆàÐDÐDÐDÑDÔDÐDõ Œ>×&Ò&Ñ(Ô(ð 

¨Zð 

Ý'HØð(
ñ (
ô (
Ð$õ ð 
ð 
ð 
ð 
õ %(¨°°T¸;Ñ$GÔ$Gð
ñ 
ô 
ñ 
ô 
ð 	
ð 	
ð
 Dð  eAð  Dð  Dð  Dñ	
ô 	
ð 	
õ 
�B‰Œ€BåÔBØ	�˜˜S $¨Ð4ñô €Oð 
×	Ò	Ñ	 Ô	 ðc7ñ c7ñ 
	‰ˆ�ñ 
ñ	
ØØØØØØ à	å�d¥6œl¨OÑ<Ô<ˆÝ�T¥&œ\¨>Ñ:Ô:ˆÝ�4¥œ<¨Ñ6Ô6ˆÝ�4¥œ<¨Ñ6Ô6ˆÝ�D¥œL¨-Ñ8Ô8ˆÝ"¥4­¤<Ð1EÑFÔFÐàð 	FÝ˜.¨-¸ÑEÔEÐEàð 	>Ý!Ô.¨}Ñ=Ô=ˆMõ Œ~×*Ò*Ñ,Ô,ð 	8Ð1DÀQÔ1GÔ1Nð 	8ÝÔØ#¥U¤\°#¸eÐ%DÑ%DÔ%DÈCðñ ô ð ð õ ÔÐ 3°QÑ7Ô7Ð7ð ˜1ÒÐØð ÝÔ# M°>ÈÐVÑVÔVÐVØ,��å$Ô1Ø! >¸ð ñ  ô  �õ Ô ¨nÀEÐJÑJÔJÐJÐJå Ô-Ø˜~°Uðñ ô ˆLõ 	Ô °¸lÐRTÐUÑUÔUÐUØõ Ô)¨.¸+ÑFÔFˆÝÔ ¨\¸;ÑGÔGÐGØð ð 	7åÔ(Ð)<¸bÑAÔAˆGÝÔ# G¨SÑ1Ô1Ð1ÝÔ& wÑ/Ô/Ð/ÝÔ  ¨gÑ6Ô6Ð6Øõ Ô)Ð*=¸uÑEÔEˆHÝÔ ¨"Ñ-Ô-Ð-ÝÔ ¨!Ñ,Ô,Ð,ÝÔ ¨%Ñ0Ô0Ð0ÝÔ& xÑ0Ô0Ð0ÝÔ ¨"Ñ-Ô-Ð-ÝÔ  ¨xÑ8Ô8Ð8Ñ8ðð ð ð ð ð ð à/ðñ ô ˆHðð ð ð ð à/ðñ ô ˆGõ Ô  ¨xÑ8Ô8Ð8ÝÔ  ¨gÑ6Ô6Ð6Ñ6ðGc7ð c7r3   )Úsingle_tensor_fnFr$   c                ó$  — |€t          | |d¬¦  «        \  }}|r-t          j                             ¦   «         rt	          d¦  «        ‚|r&t          j                             ¦   «         st
          }nt          } || |||||||||||||	|
¬¦  «         dS )znFunctional API that performs asgd algorithm computation.

    See :class:`~torch.optim.ASGD` for details.
    NF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)	r    r   r"   r!   r#   r%   r&   r'   r^   )r	   r@   rr   rs   rP   r¸   rŠ   )r   rY   r[   rZ   r\   r]   r$   r%   r&   r'   r^   r    r   r"   r!   r#   r¨   Úfuncs                     r2   r   r   £  sÑ   € ð4 €Ý1Ø�N¨eð
ñ 
ô 
‰
ˆˆ7ð ð U•5”9×)Ò)Ñ+Ô+ð UÝÐSÑTÔTÐTàð #•u”y×-Ò-Ñ/Ô/ð #Ý!ˆˆå"ˆà€DØØØØØØØØØØØ!ØØ%ØØðñ ô ð ð ð r3   )NFFFF)Útypingr   r   r   r@   r   Ú	optimizerr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Ú__all__r   Ú__doc__rš   rB   ri   rŠ   r¸   r   rI   r3   r2   ú<module>rÁ      s-  ðà (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& �6Ð
€ðNð Nð Nð Nð Nˆ9ñ Nô Nð Nðbð 
ðð ð 
ðð ð 
ðð ð 
ðð ð 
ðð ð €„ð.LØ�ŒLðLà�Œ<ðLð 
ˆfŒðLð 
ˆfŒð	Lð
 ˆvŒ,ðLð �f”ðLð ðLð 	ðLð 	ðLð ðLð ðLð ðLð ðLð ðLð  ð!Lð Lð Lð Lð^L7Ø�ŒLðL7à�Œ<ðL7ð 
ˆfŒðL7ð 
ˆfŒð	L7ð
 ˆvŒ,ðL7ð �f”ðL7ð ðL7ð 	ðL7ð 	ðL7ð ðL7ð ðL7ð ðL7ð ðL7ð ðL7ð  ð!L7ð L7ð L7ð L7ð^  ÐÐ1DÐEÑEÔEð #ØØ ØØð6ð 6Ø�ŒLð6à�Œ<ð6ð 
ˆfŒð6ð 
ˆfŒð	6ð
 ˆvŒ,ð6ð �f”ð6ð �dŒ^ð6ð ð6ð ð6ð ð6ð ð6ð ð6ð  	ð!6ð" 	ð#6ð$ ð%6ð& ð'6ð 6ð 6ñ FÔEð6ð 6ð 6r3   