§
   ýJòJzWc£ã                   ó„   — d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlZd	d„Z G d„ dej        ¦  «        ZdS )
u`   
AI Login Dialog Handler pro plugin.video.milionar
Zobrazuje dialog pro zadÃ¡nÃ­ AI API klÃ­Ä�e
é    N)Úaccounts)ÚAIGuideDialog)ÚRemoteGuideDialogc                 óp  — 	 t          j        ¦   «         }|                     d¦  «        }d}t          ||| ¬¦  «        }|                     ¦   «          |                     ¦   «         }~|                     dd¦  «        S # t          $ r.}t          j	        d|› �t          j
        ¬¦  «         Y d}~dS d}~ww xY w)	u¬   
    ZobrazÃ­ AI login dialog.
    VracÃ­ True pokud byl zadÃ¡n klÃ­Ä�, False jinak.
    
    Args:
        provider: VolitelnÃ½ parametr pro specifikaci poskytovatele
    Úpathzlogin/DialogAILogin.xml)ÚproviderÚapi_key_enteredFz7[plugin.video.milionar] Error showing AI login dialog: ©ÚlevelN)Ú	xbmcaddonÚAddonÚgetAddonInfoÚAILoginDialogÚdoModalÚ
get_resultÚgetÚ	ExceptionÚxbmcÚlogÚLOGERROR)r   ÚaddonÚ
addon_pathÚxml_filenameÚdialogÚresultÚes          úe/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/login/DialogAILogin.pyÚshow_ai_login_dialogr      sÇ   € ðÝ”Ñ!Ô!ˆØ×'Ò'¨Ñ/Ô/ˆ
Ø0ˆå˜|¨ZÀ(ÐKÑKÔKˆØ�ŠÑÔÐØ×"Ò"Ñ$Ô$ˆØØ�zŠzÐ+¨UÑ3Ô3Ð3øÝð ð ð ÝŒÐNÈ1ÐNÐNÕVZÔVcÐdÑdÔdÐdØˆuˆuˆuˆuˆuøøøøðøøøs   ‚A:A= Á=
B5Â#B0Â0B5c                   óT   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zˆ xZS )r   u#   Dialog pro zadÃ¡nÃ­ AI API klÃ­Ä�e.Nc                 óª   •— t          ¦   «                              ||dd¦  «         t          j        ¦   «         | _        || _        d| _        d| _        d S )NÚDefaultÚ1080iF)ÚsuperÚ__init__r   r   r   r   r	   Údialog_closed)Úselfr   Úscript_pathr   Ú	__class__s       €r   r$   zAILoginDialog.__init__*   sM   ø€ Ý‰Œ×Ò˜ {°I¸wÑGÔGÐGÝ”_Ñ&Ô&ˆŒ
Ø ˆŒØ$ˆÔØ"ˆÔÐÐó    c                 ó>  — 	 t          j        t          j        | j        | j        ¦  «        ¦  «        }	 |                      d¦  «        }|                     d|› d�¦  «         n9# t          $ r,}t          j	        d|› �t          j
        ¦  «         Y d}~nd}~ww xY wdS # t          $ r?}dt          |¦  «        v r(t          j	        d|› �t          j        ¦  «         Y d}~dS ‚ d}~wt          $ r-}t          j	        d|› �t          j        ¦  «         Y d}~dS d}~ww xY w)	zInicializace dialogu.iÑ  uA   Pro pouÅ¾itÃ­ AI funkcÃ­ je vyÅ¾adovÃ¡n API klÃ­Ä� poskytovatele ú.uE   [plugin.video.milionar] AILoginDialog: Nelze nastavit popisnÃ½ text: Núfunction takes at mostzG[plugin.video.milionar] Ignored Kodi callback argument error (onInit): z.[plugin.video.milionar] Ignored onInit error: )r   ÚnameÚresolver   r   Ú
getControlÚsetLabelr   r   r   Ú
LOGWARNINGÚ	TypeErrorÚstrÚLOGDEBUG)r&   Úprovider_nameÚlabel_controlr   s       r   ÚonInitzAILoginDialog.onInit1   sY  € ð	å$œM­(Ô*:¸4¼=È$Ì*Ñ*UÔ*UÑVÔVˆMðwØ $§¢°Ñ 5Ô 5�Ø×&Ò&Ð'{ÐkxÐ'{Ð'{Ð'{Ñ|Ô|Ð|Ð|øÝð wð wð wÝ”ÐdÐabÐdÐdÕfjÔfuÑvÔvÐvÐvÐvÐvÐvÐvøøøøðwøøøàˆDøÝð 	ð 	ð 	Ø'­3¨q©6¬6Ð1Ð1Ý”ÐfÐcdÐfÐfÕhlÔhuÑvÔvÐvØ�����ØøøøøÝð 	ð 	ð 	ÝŒHÐIÀaÐIÐIÍ4Ì=ÑYÔYÐYØˆDˆDˆDˆDˆDøøøøð	øøøsR   ‚1B ´.A# Á"B Á#
BÁ-"BÂB ÂBÂB Â
DÂ(3C"Ã!C"Ã"DÃ/"DÄDc                 ó„  — 	 |t           j        k    s|t           j        k    rd| _        |                      ¦   «          dS dS # t
          $ r?}dt          |¦  «        v r(t          j        d|› �t          j	        ¦  «         Y d}~dS ‚ d}~wt          $ r-}t          j        d|› �t          j	        ¦  «         Y d}~dS d}~ww xY w)u   ZpracovÃ¡nÃ­ akcÃ­.Tr,   zI[plugin.video.milionar] Ignored Kodi callback argument error (onAction): Nz0[plugin.video.milionar] Ignored onAction error: )ÚxbmcguiÚACTION_NAV_BACKÚACTION_PREVIOUS_MENUr%   Úcloser2   r3   r   r   r4   r   )r&   Úactionr   s      r   ÚonActionzAILoginDialog.onActionG   sæ   € ð	Ø�Ô0Ò0Ð0°F½gÔ>ZÒ4ZÐ4ZØ%)�Ô"Ø—
’
‘”���ð 5[Ð4Zøõ ð 	ð 	ð 	Ø'­3¨q©6¬6Ð1Ð1Ý”ÐhÐefÐhÐhÕjnÔjwÑxÔxÐxØ�����ØøøøøÝð 	ð 	ð 	ÝŒHÐKÈÐKÐKÍTÌ]Ñ[Ô[Ð[ØˆDˆDˆDˆDˆDøøøøð	øøøs)   ‚;A Á
B?Á3BÂBÂB?Â"B:Â:B?c                 óø  — 	 |dk    r|                       ¦   «          dS |dk    r|                      ¦   «          dS |dk    r|                      ¦   «          dS |dk    rd| _        |                      ¦   «          dS dS # t
          $ r?}dt          |¦  «        v r(t          j        d|› �t          j	        ¦  «         Y d}~dS ‚ d}~wt          $ r-}t          j        d	|› �t          j	        ¦  «         Y d}~dS d}~ww xY w)
u%   ZpracovÃ¡nÃ­ kliknutÃ­ na tlaÄ�Ã­tka.i½  i¾  i¿  iÀ  Tr,   zH[plugin.video.milionar] Ignored Kodi callback argument error (onClick): Nz/[plugin.video.milionar] Ignored onClick error: )Ú_handle_enter_api_keyÚ_handle_show_guideÚ_handle_show_remote_guider%   r<   r2   r3   r   r   r4   r   )r&   Ú	controlIdr   s      r   ÚonClickzAILoginDialog.onClickV   s>  € ð	Ø˜DÒ Ð Ø×*Ò*Ñ,Ô,Ð,Ð,Ð,Ø˜dÒ"Ð"Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)Ø˜dÒ"Ð"Ø×.Ò.Ñ0Ô0Ð0Ð0Ð0Ø˜dÒ"Ð"Ø%)�Ô"Ø—
’
‘”���ð #Ð"øõ ð 	ð 	ð 	Ø'­3¨q©6¬6Ð1Ð1Ý”ÐgÐdeÐgÐgÕimÔivÑwÔwÐwØ�����ØøøøøÝð 	ð 	ð 	ÝŒHÐJÀqÐJÐJÍDÌMÑZÔZÐZØˆDˆDˆDˆDˆDøøøøð	øøøs9   ‚A; žA; ºA; Á!A; Á;
C9Â3B?Â>B?Â?C9Ã"C4Ã4C9c                 óª  — 	 t          j        | j        | j        ¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        dd|› d�¦  «        }|                     ¦   «          | 	                    ¦   «         sdS | 
                    ¦   «                              ¦   «         }|s)t          j        ¦   «                              dd¦  «         dS t          |¦  «        dk     rHt          j        ¦   «                              dd|› d	�d
d¬¦  «        }|r|                      ¦   «          dS dS |                      ||¦  «        r | j                             ||¦  «         t          j        | j        ¦  «         d| _        t          j        ¦   «                              | j                             d¦  «        d|› d�t          j        d¦  «         |                      ¦   «          dS t          j        ¦   «                              dd|› d�d
d¬¦  «        }|r|                      ¦   «          dS dS # t4          $ r’}dt7          |¦  «        v r(t          j        d|› �t          j        ¦  «         Y d}~dS t          j        d|› �t          j        ¬¦  «         t          j        ¦   «                              dd|› d�¦  «         Y d}~dS d}~ww xY w)u$   Zpracuje zadÃ¡vÃ¡nÃ­ AI API klÃ­Ä�e.Ú zZadejte õ    API klÃ­Ä�Nu   Chyba zadÃ¡nÃ­u#   API klÃ­Ä� nemÅ¯Å¾e bÃ½t prÃ¡zdnÃ½.é
   u5   ZadanÃ½ klÃ­Ä� je neobvykle krÃ¡tkÃ½. API klÃ­Ä� pro u'    obvykle obsahuje vÃ­ce neÅ¾ 10 znakÅ¯.zZadat znovuu   ZavÅ™Ã­t)ÚyeslabelÚnolabelTr-   u   API klÃ­Ä� pro u    byl ÃºspÄ›Å¡nÄ› uloÅ¾en.i¸  u   NeplatnÃ½ API klÃ­Ä�u   ZadanÃ½ API klÃ­Ä� pro ub    je neplatnÃ½. Zkontrolujte prosÃ­m, Å¾e jste jej zadali sprÃ¡vnÄ› podle instrukcÃ­ poskytovatele.r,   z9[plugin.video.milionar] Ignored callback argument error: z?[plugin.video.milionar] AILoginDialog: Error entering API key: r
   ÚChybaõ2   InternÃ­ chyba pÅ™i ovÄ›Å™ovÃ¡nÃ­ API klÃ­Ä�e pro u   . Kontaktujte vÃ½vojÃ¡Å™e.)r   r.   r   r   r-   Úkey_settingr   ÚKeyboardr   ÚisConfirmedÚgetTextÚstripr9   ÚDialogÚokÚlenÚyesnor@   Ú_validate_api_keyÚ
setSettingÚsync_statusr	   Únotificationr   ÚNOTIFICATION_INFOr<   r   r3   r   r4   r   )r&   Úcurrent_providerr5   Úsetting_keyÚkeyboardÚapi_keyÚconfirmr   s           r   r@   z#AILoginDialog._handle_enter_api_keyk   sW  € ðC	IÝ'Ô/°´¸t¼zÑJÔJÐÝ$œMÐ*:Ñ;Ô;ˆMÝ"Ô.Ð/?Ñ@Ô@ˆKõ ”} RÐ)N°MÐ)NÐ)NÐ)NÑOÔOˆHØ×ÒÑÔÐà×'Ò'Ñ)Ô)ð Ø�à×&Ò&Ñ(Ô(×.Ò.Ñ0Ô0ˆGØð Ý”Ñ Ô ×#Ò#Ð$4Ð6[Ñ\Ô\Ð\Ø�õ �7‰|Œ|˜bÒ Ð Ý!œ.Ñ*Ô*×0Ò0Ø$ð CÈMð  Cð  Cð  CØ*Ø&ð	 1ñ ô �ð ð à×.Ò.Ñ0Ô0Ð0Ø�Fð �Fð ×%Ò% gÐ/?Ñ@Ô@ð à”
×%Ò% k°7Ñ;Ô;Ð;ÝÔ$ T¤ZÑ0Ô0Ð0Ø'+�Ô$Ý”Ñ Ô ×-Ò-Ø”J×+Ò+¨FÑ3Ô3ØN mÐNÐNÐNÝÔ-Øñ	ô ð ð —
’
‘”���õ "œ.Ñ*Ô*×0Ò0Ø*ð `¨mð  `ð  `ð  `Ø*Ø&ð	 1ñ ô �ð ð à×.Ò.Ñ0Ô0Ð0Ø�Fð �Føåð 	Ið 	Ið 	IØ'­3¨q©6¬6Ð1Ð1Ý”ÐXÐUVÐXÐXÕZ^ÔZgÑhÔhÐhØ�����ÝŒHÐZÐWXÐZÐZÕbfÔboÐpÑpÔpÐpÝŒNÑÔ×Ò ð  *HÐ^kð  *Hð  *Hð  *Hñ  Iô  Ið  Ið  Ið  Ið  Ið  Ið  Ið  Iøøøøð	Iøøøs;   ‚BH6 ÂAH6 ÃAH6 Ä8B4H6 Ç.AH6 È6
KÉ 3KÉ9AKËKc                 ó¢  — 	 t          j        || j        ¦  «        }t          j        |¦  «        }| j                             |¦  «        }| j                             ||¦  «         	 t          j        |¦  «        | j                             ||¦  «         S # | j                             ||¦  «         w xY w# t          $ rY}t          j	        d|› �t          j
        ¬¦  «         t          j        ¦   «                              dd|› d�¦  «         Y d}~dS d}~wt          $ r.}t          j	        d|› �t          j        ¬¦  «         Y d}~dS d}~ww xY w)	u1   OvÄ›Å™Ã­ platnost AI API klÃ­Ä�e testem volÃ¡nÃ­.uH   [plugin.video.milionar] AILoginDialog: ChybnÃ½ podpis validate_api_key: r
   rK   rL   r+   NFzA[plugin.video.milionar] AILoginDialog: Error validating API key: )r   r.   r   rM   Ú
getSettingrW   Úvalidater2   r   r   r   r9   rR   rS   r   r1   )r&   r^   r   Útemp_setting_keyÚoriginal_keyr   s         r   rV   zAILoginDialog._validate_api_key²   sn  € ð	ÝÔ'¨°$´*Ñ=Ô=ˆHÝ'Ô3°HÑ=Ô=Ðð  œ:×0Ò0Ð1AÑBÔBˆLØŒJ×!Ò!Ð"2°GÑ<Ô<Ð<ðFåÔ(¨Ñ2Ô2ð ”
×%Ò%Ð&6¸ÑEÔEÐEÐEø�”
×%Ò%Ð&6¸ÑEÔEÐEÐEøøøøåð 	ð 	ð 	ÝŒHÐcÐ`aÐcÐcÕkoÔkxÐyÑyÔyÐyÝŒNÑÔ×Ò Ð)iÐ^fÐ)iÐ)iÐ)iÑjÔjÐjØ�5�5�5�5�5øøøøÝð 	ð 	ð 	ÝŒHÐ\ÐYZÐ\Ð\ÕdhÔdsÐtÑtÔtÐtØ�5�5�5�5�5øøøøð	øøøs=   ‚A#B5 Á&B Á9B5 ÂB2Â2B5 Â5
EÂ?ADÄEÄ #E	Å	Ec                 óž  — 	 t          d| j                             d¦  «        ¦  «        }|                     ¦   «          ~dS # t          $ �r }t          j        d|› �t
          j        ¬¦  «         | j                             d¦  «        pd}d| 	                    ¦   «         v rd}d}npd	| 	                    ¦   «         v rd
}d}nUd| 	                    ¦   «         v rd}d}n:d| 	                    ¦   «         v rd}d}nd| 	                    ¦   «         v rd}d}nd}d}t          j        ¦   «                              d|› d�|¦  «         Y d}~dS d}~ww xY w)u.   ZobrazÃ­ nÃ¡vod pro zÃ­skÃ¡nÃ­ AI API klÃ­Ä�e.zguide/DialogAIGuide.xmlr   z<[plugin.video.milionar] AILoginDialog: Error showing guide: r
   Úai_providerÚmistralz
Mistral AIut  NÃ�VOD - MISTRAL AI API KLÃ�ÄŒ:\n\n1. PÅ™ejdÄ›te na https://console.mistral.ai/\n2. Zaregistrujte se nebo se pÅ™ihlaÅ¡te\n3. PÅ™ejdÄ›te do sekce 'API Keys'\n4. KliknÄ›te na 'Create new key'\n5. Zadejte nÃ¡zev klÃ­Ä�e a kliknÄ›te 'Create'\n6. ZkopÃ­rujte zobrazenÃ½ API klÃ­Ä�\n7. VloÅ¾te klÃ­Ä� do tohoto dialogu\n\nMistral AI nabÃ­zÃ­ bezplatnou ÃºroveÅˆ pro testovÃ¡nÃ­.ÚopenaiÚOpenAIuw  NÃ�VOD - OPENAI API KLÃ�ÄŒ:\n\n1. PÅ™ejdÄ›te na https://platform.openai.com/\n2. Zaregistrujte se nebo se pÅ™ihlaÅ¡te\n3. PÅ™ejdÄ›te do sekce 'API Keys'\n4. KliknÄ›te na 'Create new secret key'\n5. Zadejte nÃ¡zev klÃ­Ä�e a kliknÄ›te 'Create'\n6. ZkopÃ­rujte zobrazenÃ½ API klÃ­Ä�\n7. VloÅ¾te klÃ­Ä� do tohoto dialogu\n\nOpenAI nabÃ­zÃ­ bezplatnÃ½ kredit pro novÃ© uÅ¾ivatele.Ú	anthropicÚ	Anthropicut  NÃ�VOD - ANTHROPIC API KLÃ�ÄŒ:\n\n1. PÅ™ejdÄ›te na https://console.anthropic.com/\n2. Zaregistrujte se nebo se pÅ™ihlaÅ¡te\n3. PÅ™ejdÄ›te do sekce 'API Keys'\n4. KliknÄ›te na 'Create Key'\n5. Zadejte nÃ¡zev klÃ­Ä�e a kliknÄ›te 'Create'\n6. ZkopÃ­rujte zobrazenÃ½ API klÃ­Ä�\n7. VloÅ¾te klÃ­Ä� do tohoto dialogu\n\nAnthropic nabÃ­zÃ­ bezplatnÃ½ kredit pro novÃ© uÅ¾ivatele.Úgooglez	Google AIuE  NÃ�VOD - GOOGLE AI API KLÃ�ÄŒ:\n\n1. PÅ™ejdÄ›te na https://makersuite.google.com/app/apikey\n2. PÅ™ihlaÅ¡te se Google ÃºÄ�tem\n3. KliknÄ›te na 'Create API key'\n4. Vyberte projekt nebo vytvoÅ™te novÃ½\n5. ZkopÃ­rujte zobrazenÃ½ API klÃ­Ä�\n6. VloÅ¾te klÃ­Ä� do tohoto dialogu\n\nGoogle AI Studio nabÃ­zÃ­ bezplatnou ÃºroveÅˆ.ÚgroqÚGroquN  NÃ�VOD - GROQ API KLÃ�ÄŒ:\n\n1. PÅ™ejdÄ›te na https://console.groq.com/keys\n2. Zaregistrujte se nebo se pÅ™ihlaÅ¡te\n3. KliknÄ›te na 'Create API Key'\n4. Zadejte nÃ¡zev klÃ­Ä�e a kliknÄ›te 'Submit'\n5. ZkopÃ­rujte zobrazenÃ½ API klÃ­Ä�\n6. VloÅ¾te klÃ­Ä� do tohoto dialogu\n\nGroq nabÃ­zÃ­ extrÃ©mnÄ› rychlÃ© generovÃ¡nÃ­ odpovÄ›dÃ­.ÚAIu   NÃ�VOD - AI API KLÃ�ÄŒ:\n\nNejdÅ™Ã­v v nastavenÃ­ doplÅˆku vyberte poskytovatele AI\na potÃ© se vraÅ¥te pro konkrÃ©tnÃ­ nÃ¡vod.u	   NÃ¡vod - rG   N)r   r   r   r   r   r   r   r   ra   Úlowerr9   rR   Ú
textviewer)r&   Úguide_dialogr   r[   r5   Ú
guide_texts         r   rA   z AILoginDialog._handle_show_guideË   sÞ  € ðW	\å(Ø)Ø”
×'Ò'¨Ñ/Ô/ñô ˆLð × Ò Ñ"Ô"Ð"Ø��øåð N	\ñ N	\ð N	\ÝŒHÐWÐTUÐWÐWÕ_cÔ_lÐmÑmÔmÐmð  $œz×4Ò4°]ÑCÔCÐPÀyÐð Ð,×2Ò2Ñ4Ô4Ð4Ð4Ø ,�ðOð �
ð Ð-×3Ò3Ñ5Ô5Ð5Ð5Ø (�ðNð �
ð Ð 0× 6Ò 6Ñ 8Ô 8Ð8Ð8Ø +�ðQð �
ð Ð-×3Ò3Ñ5Ô5Ð5Ð5Ø +�ðEð �
ð Ð+×1Ò1Ñ3Ô3Ð3Ð3Ø &�ðPð �
ð !%�ðAð õ ŒNÑÔ×'Ò'Ð(N°MÐ(NÐ(NÐ(NÐPZÑ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[øøøøð]N	\øøøs   ‚=A ÁEÁC5EÅEc                 óL  — 	 t          d| j                             d¦  «        ¦  «        }|                     ¦   «          ~dS # t          $ rX}t          j        d|› �t
          j        ¬¦  «         t          j	        ¦   «          
                    dd|› �¦  «         Y d}~dS d}~ww xY w)u7   ZobrazÃ­ nÃ¡vod pro nastavenÃ­ dÃ¡lkovÃ©ho ovlÃ¡dÃ¡nÃ­.zguide/DialogRemoteGuide.xmlr   zC[plugin.video.milionar] AILoginDialog: Error showing remote guide: r
   rK   uA   DoÅ¡lo k chybÄ› pÅ™i zobrazenÃ­ nÃ¡vodu dÃ¡lkovÃ©ho ovlÃ¡dÃ¡nÃ­: N)r   r   r   r   r   r   r   r   r9   rR   rS   )r&   Úremote_guide_dialogr   s      r   rB   z'AILoginDialog._handle_show_remote_guide&  sË   € ð	rå"3Ø-Ø”
×'Ò'¨Ñ/Ô/ñ#ô #Ðð  ×'Ò'Ñ)Ô)Ð)Ø#Ð#Ð#øåð 	rð 	rð 	rÝŒHÐ^Ð[\Ð^Ð^ÕfjÔfsÐtÑtÔtÐtÝŒNÑÔ×Ò Ð)pÐmnÐ)pÐ)pÑqÔqÐqÐqÐqÐqÐqÐqÐqøøøøð	røøøs   ‚=A Á
B#ÁABÂB#c                 ó    — | j         | j        dœS )u   VrÃ¡tÃ­ vÃ½sledek dialogu.©r	   r%   rw   )r&   s    r   r   zAILoginDialog.get_result5  s   € ð  $Ô3Ø!Ô/ð
ð 
ð 	
r)   ©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   r7   r>   rD   r@   rV   rA   rB   r   Ú__classcell__)r(   s   @r   r   r   '   sÌ   ø€ € € € € Ø-Ð-ð#ð #ð #ð #ð #ð #ðð ð ð,ð ð ðð ð ð*EIð EIð EIðNð ð ð2Y\ð Y\ð Y\ðvrð rð rð
ð 
ð 
ð 
ð 
ð 
ð 
r)   r   rx   )r|   r   r9   r   Ú
xbmcpluginÚwcs.air   Ú"wcs.ui.dialogs.guide.DialogAIGuider   Ú&wcs.ui.dialogs.guide.DialogRemoteGuider   Úosr   ÚWindowXMLDialogr   © r)   r   ú<module>r…      sÏ   ððð ð
 €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ø DÐ DÐ DÐ DÐ DÐ DØ 	€	€	€	ðð ð ð ð.S
ð S
ð S
ð S
ð S
�GÔ+ñ S
ô S
ð S
ð S
ð S
r)   