§
    �’jm:  ã                  ó˜  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ej        Z e
de¦  «        ZerdndZdZ eddddd¬¦  «        Zej        ej        ej         ej!        ej"        fZ#ej        ej        ej         fZ$ ee%¦  «        Z&dd„Z'd d„Z(d!d„Z) G d„ d¦  «        Z*dS )"a  Configuration management setup

Some terminology:
- name
  As written in config files.
- value
  Value associated with a name
- key
  Name combined with it's section (section.name)
- variant
  A single word describing where the configuration key-value pair came from
é    )ÚannotationsN)ÚIterable)ÚAnyÚNewType)ÚConfigurationErrorÚ!ConfigurationFileCouldNotBeLoaded)Úappdirs)ÚWINDOWSÚget_locale_encoding)Ú	getLogger)Ú
ensure_dirÚenumÚKindzpip.inizpip.conf)ÚversionÚhelpÚuserÚglobalÚsiteÚenvzenv-var)ÚUSERÚGLOBALÚSITEÚENVÚENV_VARÚnameÚstrÚreturnc                ó€   — |                       ¦   «                              dd¦  «        } |                      d¦  «        } | S )zAMake a name consistent regardless of source (environment or file)Ú_ú-z--)ÚlowerÚreplaceÚremoveprefix)r   s    úIC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\configuration.pyÚ_normalize_namer%   4   s7   € à�:Š:‰<Œ<×Ò  SÑ)Ô)€DØ×Ò˜TÑ"Ô"€DØ€Kó    ú	list[str]c                ó`   — d| vrd| › d�}t          |¦  «        ‚|                      dd¦  «        S )Nú.zVKey does not contain dot separated section and key. Perhaps you wanted to use 'global.z
' instead?é   )r   Úsplit)r   Úerror_messages     r$   Ú_disassemble_keyr-   ;   sO   € Ø
�$€€ðBØ15ðBð Bð Bð 	õ ! Ñ/Ô/Ð/Ø�:Š:�c˜1ÑÔÐr&   údict[Kind, list[str]]c                 óô  — d„ t          j        d¦  «        D ¦   «         } t          j                             t
          j        t          ¦  «        }t          j                             t          j                             d¦  «        t          rdndt          ¦  «        }t          j                             t          j
        d¦  «        t          ¦  «        }t          j        | t          j        |gt          j        ||giS )Nc                óX   — g | ]'}t           j                             |t          ¦  «        ‘Œ(S © )ÚosÚpathÚjoinÚCONFIG_BASENAME)Ú.0r3   s     r$   ú
<listcomp>z+get_configuration_files.<locals>.<listcomp>F   s5   € ð ð ð Ø04�Œ�Š�T�?Ñ+Ô+ðð ð r&   Úpipú~z.pip)r	   Úsite_config_dirsr2   r3   r4   ÚsysÚprefixr5   Ú
expanduserr
   Úuser_config_dirÚkindsr   r   r   )Úglobal_config_filesÚsite_config_fileÚlegacy_config_fileÚnew_config_files       r$   Úget_configuration_filesrD   E   sË   € ðð Ý8?Ô8PÐQVÑ8WÔ8Wðñ ô Ðõ ”w—|’|¥C¤JµÑ@Ô@ÐÝœŸšÝ
Œ×Ò˜3ÑÔÝÐ$ˆˆ˜fÝñô Ðõ
 ”g—l’l¥7Ô#:¸5Ñ#AÔ#AÅ?ÑSÔS€OåŒÐ)ÝŒ
Ð%Ð&ÝŒ
Ð'¨Ð9ðð r&   c                  óÖ   ‡ — e Zd ZdZd0d1ˆ fd	„Zd2d
„Zd3d„Zd4d„Zd5d„Zd6d„Z	d7d„Z
d2d„Zd2d„Zed8d„¦   «         Zd2d„Zd9d„Zd:d „Zd2d!„Zd;d%„Zd<d'„Zd=d)„Zd>d*„Zd?d,„Zd@d.„ZdAd/„Zˆ xZS )BÚConfigurationaâ  Handles management of configuration.

    Provides an interface to accessing and managing configuration files.

    This class converts provides an API that takes "section.key-name" style
    keys and stores the value associated with it as "key-name" under the
    section "section".

    This allows for a clean interface wherein the both the section and the
    key-name are preserved in an easy to manage form in the configuration files
    and the data stored is also nice.
    NÚisolatedÚboolÚ	load_onlyúKind | Noner   ÚNonec           
     óz  •— t          ¦   «                              ¦   «          |�V|t          vrMt          d                     d                     t          t          t          ¦  «        ¦  «        ¦  «        ¦  «        ‚|| _        || _	        d„ t          D ¦   «         | _        d„ t          D ¦   «         | _        g | _        d S )Nz5Got invalid value for load_only - should be one of {}z, c                ó   — i | ]}|g “ŒS r1   r1   ©r6   Úvariants     r$   ú
<dictcomp>z*Configuration.__init__.<locals>.<dictcomp>s   s-   € ð H
ð H
ð H
Ø#ˆG�RðH
ð H
ð H
r&   c                ó   — i | ]}|i “ŒS r1   r1   rN   s     r$   rP   z*Configuration.__init__.<locals>.<dictcomp>v   s'   € ð ?
ð ?
ð ?
Ø#ˆG�Rð?
ð ?
ð ?
r&   )ÚsuperÚ__init__ÚVALID_LOAD_ONLYr   Úformatr4   ÚmapÚreprrG   rI   ÚOVERRIDE_ORDERÚ_parsersÚ_configÚ_modified_parsers)ÚselfrG   rI   Ú	__class__s      €r$   rS   zConfiguration.__init__f   sÎ   ø€ Ý‰Œ×ÒÑÔÐàÐ  YµoÐ%EÐ%EÝ$ØG×NÒNØ—I’I�c¥$­Ñ8Ô8Ñ9Ô9ñô ñô ð ð
 !ˆŒØ"ˆŒðH
ð H
Ý'5ðH
ñ H
ô H
ˆŒð?
ð ?
Ý'5ð?
ñ ?
ô ?
ˆŒð EGˆÔÐÐr&   c                óh   — |                       ¦   «          | j        s|                      ¦   «          dS dS )z<Loads configuration from configuration files and environmentN)Ú_load_config_filesrG   Ú_load_environment_vars©r\   s    r$   ÚloadzConfiguration.load{   s@   € à×ÒÑ!Ô!Ð!ØŒ}ð 	*Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)ð	*ð 	*r&   ú
str | Nonec                ó|   — | j         €
J d¦   «         ‚	 |                      ¦   «         d         S # t          $ r Y dS w xY w)z7Returns the file with highest priority in configurationNz)Need to be specified a file to be editingr   )rI   Ú_get_parser_to_modifyÚ
IndexErrorra   s    r$   Úget_file_to_editzConfiguration.get_file_to_edit�   sW   € àŒ~Ð)Ð)Ð+VÑ)Ô)Ð)ð	Ø×-Ò-Ñ/Ô/°Ô2Ð2øÝð 	ð 	ð 	Ø�4�4ð	øøøs   “- ­
;º;úIterable[tuple[str, Any]]c                ó4   — | j                              ¦   «         S )z`Returns key-value pairs like dict.items() representing the loaded
        configuration
        )Ú_dictionaryÚitemsra   s    r$   rk   zConfiguration.itemsŠ   s   € ð Ô×%Ò%Ñ'Ô'Ð'r&   Úkeyr   r   c                óú   — |}t          |¦  «        }	 i }| j                             ¦   «         D ]}|                     |¦  «         Œ||         S # t          $ r" t          |¦  «         t          d|› �¦  «        ‚w xY w)z#Get a value from the configuration.úNo such key - )r%   rj   ÚvaluesÚupdateÚKeyErrorr-   r   )r\   rl   Úorig_keyÚclean_configÚfile_valuess        r$   Ú	get_valuezConfiguration.get_value�   s¥   € àˆÝ˜cÑ"Ô"ˆð		BØ+-ˆLØ#Ô/×6Ò6Ñ8Ô8ð 1ð 1�Ø×#Ò# KÑ0Ô0Ð0Ð0Ø Ô$Ð$øÝð 	Bð 	Bð 	Bõ ˜SÑ!Ô!Ð!Ý$Ð%@°hÐ%@Ð%@ÑAÔAÐAð		Bøøøs   “:A Á,A:Úvaluec                óä  — t          |¦  «        }|                      ¦   «          | j        sJ ‚|                      ¦   «         \  }}|�St	          |¦  «        \  }}|                     |¦  «        s|                     |¦  «         |                     |||¦  «         | j        | j                  	                    |i ¦  «         || j        | j                 |         |<   |  
                    ||¦  «         dS )z$Modify a value in the configuration.N)r%   Ú_ensure_have_load_onlyrI   re   r-   Úhas_sectionÚadd_sectionÚsetrZ   Ú
setdefaultÚ_mark_as_modified)r\   rl   rv   ÚfnameÚparserÚsectionr   s          r$   Ú	set_valuezConfiguration.set_valueŸ   sï   € å˜cÑ"Ô"ˆØ×#Ò#Ñ%Ô%Ð%àŒ~ÐÐˆ~Ø×2Ò2Ñ4Ô4‰ˆˆvàÐÝ,¨SÑ1Ô1‰MˆG�Tð ×%Ò% gÑ.Ô.ð ,Ø×"Ò" 7Ñ+Ô+Ð+Ø�JŠJ�w  eÑ,Ô,Ð,àŒ�T”^Ô$×/Ò/°°rÑ:Ô:Ð:Ø38ˆŒ�T”^Ô$ UÔ+¨CÑ0Ø×Ò˜u fÑ-Ô-Ð-Ð-Ð-r&   c                ó¨  — |}t          |¦  «        }|                      ¦   «          | j        sJ ‚|                      ¦   «         \  }}|| j        | j                 |         vr&|| j        | j                 vrt          d|› �¦  «        ‚|�Œt          |¦  «        \  }}|                     |¦  «        r|                     ||¦  «        st          d¦  «        ‚| 	                    |¦  «        s| 
                    |¦  «         |                      ||¦  «         	 | j        | j                 |         |= dS # t          $ r | j        | j                 |= Y dS w xY w)z#Unset a value in the configuration.rn   Nz4Fatal Internal error [id=1]. Please report as a bug.)r%   rx   rI   re   rZ   r   r-   ry   Úremove_optionrk   Úremove_sectionr}   rq   )r\   rl   rr   r~   r   r€   r   s          r$   Úunset_valuezConfiguration.unset_value³   s€  € àˆÝ˜cÑ"Ô"ˆØ×#Ò#Ñ%Ô%Ð%àŒ~ÐÐˆ~Ø×2Ò2Ñ4Ô4‰ˆˆvð �t”| D¤NÔ3°EÔ:Ð:Ð:Ø˜4œ<¨¬Ô7Ð7Ð7å$Ð%@°hÐ%@Ð%@ÑAÔAÐAàÐÝ,¨SÑ1Ô1‰MˆG�Tà×"Ò" 7Ñ+Ô+ðØ06×0DÒ0DÀWÈdÑ0SÔ0Sðõ )ØJñô ð ð
 —<’< Ñ(Ô(ð /Ø×%Ò% gÑ.Ô.Ð.Ø×"Ò" 5¨&Ñ1Ô1Ð1ð	2Ø”˜Tœ^Ô,¨UÔ3°CÐ8Ð8Ð8øÝð 	2ð 	2ð 	2Ø”˜Tœ^Ô,¨SÐ1Ð1Ð1Ð1ð	2øøøs   ÄD0 Ä0EÅEc                ó   — |                       ¦   «          | j        D ]±\  }}t                               d|¦  «         t	          t
          j                             |¦  «        ¦  «         	 t          |d¦  «        5 }| 	                    |¦  «         ddd¦  «         n# 1 swxY w Y   Œ‹# t          $ r}t          d|› d|› �¦  «        ‚d}~ww xY wdS )z!Save the current in-memory state.zWriting to %sÚwNz:An error occurred while writing to the configuration file z: )rx   r[   ÚloggerÚinfor   r2   r3   ÚdirnameÚopenÚwriteÚOSErrorr   )r\   r~   r   ÚfÚerrors        r$   ÚsavezConfiguration.saveÕ   s-  € à×#Ò#Ñ%Ô%Ð%à!Ô3ð 	ð 	‰MˆE�6Ý�KŠK˜¨Ñ/Ô/Ð/õ •r”w—’ uÑ-Ô-Ñ.Ô.Ð.ðÝ˜% Ñ%Ô%ð $¨Ø—L’L ‘O”O�Oð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øøåð ð ð Ý(ð(Øð(ð (Ø %ð(ð (ñô ð øøøøðøøøð	ð 	s<   Á)B'Á9BÂB'ÂB	ÂB'Â"B	Â#B'Â'
CÂ1CÃCc                ór   — | j         €t          d¦  «        ‚t                               d| j         ¦  «         d S )Nz'Needed a specific file to be modifying.z$Will be working with %s variant only)rI   r   rˆ   Údebugra   s    r$   rx   z$Configuration._ensure_have_load_onlyí   s6   € ØŒ>Ð!Ý$Ð%NÑOÔOÐOÝ�ŠÐ;¸T¼^ÑLÔLÐLÐLÐLr&   údict[str, dict[str, Any]]c                ó^   — i }t           D ]"}|                     | j        |         ¦  «         Œ#|S )z3A dictionary representing the loaded configuration.)rX   rp   rZ   )r\   ÚretvalrO   s      r$   rj   zConfiguration._dictionaryò   s9   € ð
 ˆå%ð 	1ð 	1ˆGØ�MŠM˜$œ, wÔ/Ñ0Ô0Ð0Ð0àˆr&   c                óÞ  — t          |                      ¦   «         ¦  «        }|t          j                 dd…         t          j        gk    rt                               d¦  «         dS |                     ¦   «         D ]q\  }}|D ]i}| j	        �(|| j	        k    rt                               d||¦  «         Œ1|  
                    ||¦  «        }| j        |                              ||f¦  «         ŒjŒrdS )z,Loads configuration from configuration filesr   r*   zZSkipping loading configuration files due to environment's PIP_CONFIG_FILE being os.devnullNz Skipping file '%s' (variant: %s))ÚdictÚiter_config_filesr?   r   r2   Údevnullrˆ   r’   rk   rI   Ú
_load_filerY   Úappend)r\   Úconfig_filesrO   Úfilesr~   r   s         r$   r_   z Configuration._load_config_filesþ   s  € å˜D×2Ò2Ñ4Ô4Ñ5Ô5ˆØ�œ	Ô" 1 Q 3Ô'­B¬J¨<Ò7Ð7Ý�LŠLðAñô ð ð ˆFà*×0Ò0Ñ2Ô2ð 	?ð 	?‰NˆG�UØð 
?ð 
?�ð ”>Ð-°'¸T¼^Ò2KÐ2KÝ—L’LÐ!CÀUÈGÑTÔTÐTØàŸš¨°%Ñ8Ô8�ð ”˜gÔ&×-Ò-¨u°f¨oÑ>Ô>Ð>Ð>ð
?ð	?ð 	?r&   rO   r   r~   ÚRawConfigParserc                óv  — t                                d||¦  «         |                      |¦  «        }|                     ¦   «         D ]r}|                     |¦  «        }| j        |                              |i ¦  «         | j        |         |                              |                      ||¦  «        ¦  «         Œs|S )Nz'For variant '%s', will try loading '%s')	rˆ   ÚverboseÚ_construct_parserÚsectionsrk   rZ   r|   rp   Ú_normalized_keys)r\   rO   r~   r   r€   rk   s         r$   rš   zConfiguration._load_file  s­   € Ý�ŠÐ@À'È5ÑQÔQÐQØ×'Ò'¨Ñ.Ô.ˆà—’Ñ(Ô(ð 	Wð 	WˆGØ—L’L Ñ)Ô)ˆEØŒL˜Ô!×,Ò,¨U°BÑ7Ô7Ð7ØŒL˜Ô! %Ô(×/Ò/°×0EÒ0EÀgÈuÑ0UÔ0UÑVÔVÐVÐVàˆr&   c                óB  — t          j        ¦   «         }t          j                             |¦  «        rlt          ¦   «         }	 |                     ||¬¦  «         nE# t          $ r t          d|› d�|¬¦  «        ‚t           j	        $ r}t          |¬¦  «        ‚d }~ww xY w|S )N)Úencodingzcontains invalid z characters)Úreasonr~   )r�   )
Úconfigparserrž   r2   r3   Úexistsr   ÚreadÚUnicodeDecodeErrorr   ÚError)r\   r~   r   Úlocale_encodingr�   s        r$   r¡   zConfiguration._construct_parser   sÍ   € ÝÔ-Ñ/Ô/ˆõ
 Œ7�>Š>˜%Ñ Ô ð 	EÝ1Ñ3Ô3ˆOð
EØ—’˜E¨O�Ñ<Ô<Ð<Ð<øÝ%ð ð ð å7ØK¨ÐKÐKÐKØðñ ô ð õ  Ô%ð Eð Eð Eå7¸eÐDÑDÔDÐDøøøøðEøøøð ˆs   ÁA Á-BÂBÂBc                ó  — | j         t          j                                      di ¦  «         | j         t          j                 d                              |                      d|                      ¦   «         ¦  «        ¦  «         dS )z.Loads configuration from environment variablesz:env:N)rZ   r?   r   r|   rp   r£   Úget_environ_varsra   s    r$   r`   z$Configuration._load_environment_vars5  sp   € àŒ•U”]Ô#×.Ò.¨w¸Ñ;Ô;Ð;ØŒ•U”]Ô# GÔ,×3Ò3Ø×!Ò! '¨4×+@Ò+@Ñ+BÔ+BÑCÔCñ	
ô 	
ð 	
ð 	
ð 	
r&   r€   rk   údict[str, Any]c                óN   — i }|D ]\  }}|dz   t          |¦  «        z   }|||<   Œ |S )z×Normalizes items to construct a dictionary with normalized keys.

        This routine is where the names become keys and are made the same
        regardless of source - configuration files or environment.
        r)   )r%   )r\   r€   rk   Ú
normalizedr   Úvalrl   s          r$   r£   zConfiguration._normalized_keys<  sC   € ð ˆ
Øð 	"ð 	"‰IˆD�#Ø˜C‘-¥/°$Ñ"7Ô"7Ñ7ˆCØ!ˆJ�s‰OˆOØÐr&   úIterable[tuple[str, str]]c              #  óÒ   K  — t           j                             ¦   «         D ]E\  }}|                     d¦  «        r+|dd…                              ¦   «         }|t
          vr||fV — ŒFdS )z@Returns a generator with all environmental vars with prefix PIP_ÚPIP_é   N)r2   Úenvironrk   Ú
startswithr!   ÚENV_NAMES_IGNORED)r\   rl   r²   r   s       r$   r®   zConfiguration.get_environ_varsJ  st   è è € åœ
×(Ò(Ñ*Ô*ð 	$ð 	$‰HˆC�Ø�~Š~˜fÑ%Ô%ð $Ø˜1˜2˜2”w—}’}‘”�ØÕ0Ð0Ð0Ø ˜)�O�O�Oøð		$ð 	$r&   ú Iterable[tuple[Kind, list[str]]]c              #  óÈ  K  — t           j                             dd¦  «        }t          ¦   «         }t          j        |t          j                 fV — | j         o!|ot           j                             |¦  «         }|r t          j	        |t          j	                 fV — t          j
        |t          j
                 fV — |�t          j        |gfV — dS t          j        g fV — dS )a�  Yields variant and configuration files associated with it.

        This should be treated like items of a dictionary. The order
        here doesn't affect what gets overridden. That is controlled
        by OVERRIDE_ORDER. However this does control the order they are
        displayed to the user. It's probably most ergonomic to display
        things in the same order as OVERRIDE_ORDER
        ÚPIP_CONFIG_FILEN)r2   r·   ÚgetrD   r?   r   rG   r3   r¨   r   r   r   )r\   Úenv_config_filerœ   Úshould_load_user_configs       r$   r˜   zConfiguration.iter_config_filesS  sê   è è € õ œ*Ÿ.š.Ð):¸DÑAÔAˆÝ.Ñ0Ô0ˆåŒl˜L­¬Ô6Ð6Ð6Ð6Ð6ð '+¤mÐ"3ð #
ØÐ?¥¤§¢¨Ñ ?Ô ?ð9
Ðð #ð 	7å”*˜l­5¬:Ô6Ð6Ð6Ð6Ð6õ Œj˜,¥u¤zÔ2Ð2Ð2Ð2Ð2àÐ&Ý”)˜oÐ.Ð.Ð.Ð.Ð.Ð.Ð.å”)˜R�-ÐÐÐÐÐr&   c                ó   — | j         |         S )z#Get values present in a config file)rZ   )r\   rO   s     r$   Úget_values_in_configz"Configuration.get_values_in_configs  s   € àŒ|˜GÔ$Ð$r&   útuple[str, RawConfigParser]c                ój   — | j         sJ ‚| j        | j                  }|st          d¦  «        ‚|d         S )Nz4Fatal Internal error [id=2]. Please report as a bug.éÿÿÿÿ)rI   rY   r   )r\   Úparserss     r$   re   z#Configuration._get_parser_to_modifyw  sF   € àŒ~ÐÐˆ~Ø”- ¤Ô/ˆØð 	å$ØFñô ð ð
 �rŒ{Ðr&   r   c                óX   — ||f}|| j         vr| j                              |¦  «         d S d S ©N)r[   r›   )r\   r~   r   Úfile_parser_tuples       r$   r}   zConfiguration._mark_as_modified…  s@   € Ø" F˜OÐØ DÔ$:Ð:Ð:ØÔ"×)Ò)Ð*;Ñ<Ô<Ð<Ð<Ð<ð ;Ð:r&   c                ó0   — | j         j        › d| j        ›d�S )Nú(ú))r]   Ú__name__rj   ra   s    r$   Ú__repr__zConfiguration.__repr__Š  s!   € Ø”.Ô)ÐAÐA¨DÔ,<ÐAÐAÐAÐAr&   rÇ   )rG   rH   rI   rJ   r   rK   )r   rK   )r   rc   )r   rh   )rl   r   r   r   )rl   r   rv   r   r   rK   )rl   r   r   rK   )r   r“   )rO   r   r~   r   r   rž   )r~   r   r   rž   )r€   r   rk   rh   r   r¯   )r   r³   )r   rº   )rO   r   r   r¯   )r   rÂ   )r~   r   r   rž   r   rK   )r   r   )rÌ   Ú
__module__Ú__qualname__Ú__doc__rS   rb   rg   rk   ru   r�   r…   r�   rx   Úpropertyrj   r_   rš   r¡   r`   r£   r®   r˜   rÁ   re   r}   rÍ   Ú__classcell__)r]   s   @r$   rF   rF   X   s  ø€ € € € € ðð ðGð Gð Gð Gð Gð Gð Gð**ð *ð *ð *ðð ð ð ð(ð (ð (ð (ðBð Bð Bð Bð.ð .ð .ð .ð( 2ð  2ð  2ð  2ðDð ð ð ð0Mð Mð Mð Mð
 ð	ð 	ð 	ñ „Xð	ð?ð ?ð ?ð ?ð.	ð 	ð 	ð 	ðð ð ð ð*
ð 
ð 
ð 
ðð ð ð ð$ð $ð $ð $ð ð  ð  ð  ð@%ð %ð %ð %ðð ð ð ð=ð =ð =ð =ð
Bð Bð Bð Bð Bð Bð Bð Br&   rF   )r   r   r   r   )r   r   r   r'   )r   r.   )+rÐ   Ú
__future__r   r§   r2   r;   Úcollections.abcr   Útypingr   r   Úpip._internal.exceptionsr   r   Úpip._internal.utilsr	   Úpip._internal.utils.compatr
   r   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   rž   r   r   r5   r¹   r?   r   r   r   r   r   rX   rT   rÌ   rˆ   r%   r-   rD   rF   r1   r&   r$   ú<module>rÛ      sü  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5àÔ.€Ø€wˆv�sÑÔ€à&Ð6�)�)¨J€Ø%Ð ð 	ˆØ	ØØ	ØØð	ñ 	ô 	€ð ”˜uœz¨5¬:°u´yÀ%Ä-ÐO€Ø”*˜eœl¨E¬JÐ6€à	ˆ�8Ñ	Ô	€ðð ð ð ðð ð ð ðð ð ð ð&sBð sBð sBð sBð sBñ sBô sBð sBð sBð sBr&   