§
    8¾œcD/  ã                  ó@  — U d dl mZ d dlZddlmZmZmZmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZmZmZmZmZmZ dd
lmZmZmZmZ ddlmZ ej        rDd dlmZ ddlmZ ddlmZ ddlmZm Z   G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# ed ee$e%e
j&        f¦  «        dg ¬¦  «        Z'de(d<    G d„ dej)        ¦  «        Z* G d„ dej)        ¦  «        Z+ G d„ d ¦  «        Z, G d!„ d"e,e¦  «        Z- G d#„ d$e¦  «        Z. G d%„ d&e¦  «        Z/d+d*„Z0dS ),é    )ÚannotationsNé   )ÚExtensionModuleÚModuleObjectÚMutableModuleObjectÚ
ModuleInfoé   )Úbuild)Údependencies)Úmesonlib)Ú	noPosargsÚnoKwargsÚInterpreterExceptionÚInvalidArgumentsÚInvalidCodeÚ
FeatureNew)ÚContainerTypeInfoÚ	KwargInfoÚtyped_kwargsÚtyped_pos_args)Ú
OrderedSet)Ú	TypedDict)ÚModuleState)ÚInterpreter)ÚTYPE_varÚTYPE_kwargsc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú	AddKwargsú-T.List[T.Union[str, dependencies.Dependency]]ÚwhenzUT.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes, dependencies.Dependency]]Úif_trueú<T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes]]Úif_falseN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú>/usr/lib/python3/dist-packages/mesonbuild/modules/sourceset.pyr   r   $   s6   € € € € € € à;Ð;Ð;Ñ;ØfÐfÐfÑfØNÐNÐNÑNÐNÐNr*   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚAddAllKwr   r    úT.List[SourceSetImpl]r!   Nr$   r)   r*   r+   r-   r-   *   s*   € € € € € € à;Ð;Ð;Ñ;Ø&Ð&Ð&Ñ&Ð&Ð&r*   r-   c                  ó   — e Zd ZU ded<   dS )ÚApplyKwÚboolÚstrictNr$   r)   r*   r+   r0   r0   /   s   € € € € € € àˆˆ‰ˆˆr*   r0   r    T©ÚlistifyÚdefaultz8KwargInfo[T.List[T.Union[str, dependencies.Dependency]]]Ú_WHEN_KWc                  óV   — e Zd ZU ded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 ded
<   dS )ÚSourceSetRulezT.List[str]ÚkeysúT.List[dependencies.Dependency]Údepsr"   ÚsourcesÚ
extra_depsr.   Ú
sourcesetsr#   Nr$   r)   r*   r+   r8   r8   <   sn   € € € € € € ØÐÐÑØ:à)Ð)Ð)Ñ)Ø4àIÐIÐIÑIØAà/Ð/Ð/Ñ/ðBð &Ð%Ð%Ñ%ØEàJÐJÐJÑJØBÐBr*   r8   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚSourceFilesz@OrderedSet[T.Union[mesonlib.FileOrString, build.GeneratedTypes]]r<   z#OrderedSet[dependencies.Dependency]r;   Nr$   r)   r*   r+   r@   r@   Q   s*   € € € € € € ØMÐMÐMÑMØ-Ð-Ð-Ñ-Ð-Ð-r*   r@   c                  ó   — e Zd ZdZdS )Ú	SourceSetz›Base class to avoid circular references.

    Because of error messages, this class is called SourceSet, and the actual
    implementation is an Impl.
    N)r%   r&   r'   Ú__doc__r)   r*   r+   rB   rB   V   s   € € € € € ðð ð ð r*   rB   c                  ó  ‡ — e Zd Zd5ˆ fd„Zd6d„Zd7d„Z edeej	        e
j        e
j        e
j        ej        f¬¦  «         ede ed eeeej	        e
j        e
j        e
j        ej        f¦  «        dg ¬¦  «         ed eeeej	        e
j        e
j        e
j        f¦  «        dg ¬¦  «        ¦  «        d8d„¦   «         ¦   «         Z ede¬¦  «         ede ed eee¦  «        dg ¬¦  «        ¦  «        d9d„¦   «         ¦   «         Z	 d:d;d%„Zeed<d)„¦   «         ¦   «         Zee ed*d+¦  «        d=d-„¦   «         ¦   «         ¦   «         Z ed.e
j        ef¦  «         ed. ed/e d¬0¦  «        ¦  «        d>d4„¦   «         ¦   «         Z!ˆ xZ"S )?ÚSourceSetImplÚinterpreterr   c                ó  •— t          ¦   «                              ¦   «          g | _        |j        | _        |j        | _        |j        | _        d| _        | j                             | j	        | j
        | j        | j        | j        dœ¦  «         d S )NF)ÚaddÚadd_allÚall_sourcesÚall_dependenciesÚapply)ÚsuperÚ__init__ÚrulesÚ
subprojectÚenvironmentÚsubdirÚfrozenÚmethodsÚupdateÚ
add_methodÚadd_all_methodÚall_sources_methodÚall_dependencies_methodÚapply_method©ÚselfrF   Ú	__class__s     €r+   rN   zSourceSetImpl.__init___   s‘   ø€ Ý‰Œ×ÒÑÔÐØ,.ˆŒ
Ø%Ô0ˆŒØ&Ô2ˆÔØ!Ô(ˆŒØˆŒØŒ×ÒØ”?ØÔ*ØÔ2Ø $Ô <ØÔ&ð
ð 
ñ 	ô 	ð 	ð 	ð 	r*   ÚargsúYT.Sequence[T.Union[mesonlib.FileOrString, build.GeneratedTypes, dependencies.Dependency]]ÚreturnúfT.Tuple[T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes]], T.List[dependencies.Dependency]]c                óê  — g }g }|D ]G}t          |t          j        ¦  «        r|                     |¦  «         Œ2|                     |¦  «         ŒHg }|D ]‰}t          |t          ¦  «        r|                     |¦  «         Œ-t          |t
          j        ¦  «        r|                     |j        ¦  «         Œb|                     | 	                    ¦   «         ¦  «         ŒŠt          j
        |¦  «         ||fS ©N)Ú
isinstancer   Ú
DependencyÚappendÚstrr   ÚFileÚfnameÚextendÚget_outputsÚcheck_direntry_issues)r\   r^   r<   r;   ÚxÚto_checkÚss          r+   Úcheck_source_filesz SourceSetImpl.check_source_filesn   sö   € àPRˆØ02ˆØð 	"ð 	"ˆAÝ˜!�\Ô4Ñ5Ô5ð "Ø—’˜A‘”��à—’˜qÑ!Ô!Ð!Ð!Ø "ˆð ð 	1ð 	1ˆAÝ˜!�SÑ!Ô!ð 1Ø—’ Ñ"Ô"Ð"Ð"Ý˜A�xœ}Ñ-Ô-ð 1Ø—’ ¤Ñ(Ô(Ð(Ð(à—’ §¢¡¤Ñ0Ô0Ð0Ð0ÝÔ& xÑ0Ô0Ð0Ø˜ˆ}Ðr*   ú1T.Sequence[T.Union[str, dependencies.Dependency]]ú5T.Tuple[T.List[str], T.List[dependencies.Dependency]]c                óœ   — g }g }|D ]B}t          |t          ¦  «        r|                     |¦  «         Œ-|                     |¦  «         ŒC||fS rc   )rd   rg   rf   )r\   r^   r9   r;   rm   s        r+   Úcheck_conditionszSourceSetImpl.check_conditions„   sY   € àˆØ02ˆØð 	ð 	ˆAÝ˜!�SÑ!Ô!ð Ø—’˜A‘”��à—’˜A‘”��Ø�TˆzÐr*   zsourceset.add)Úvarargsr!   Tr3   r#   Ústater   ú^T.Tuple[T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes, dependencies.Dependency]]]Úkwargsr   ÚNonec           
     ó®  — | j         rt          d¦  «        ‚|d         }|d         }|d         }t          |||g¦  «        s	|d         }n|d         rt          d¦  «        ‚|                      |¦  «        \  }}|                      |¦  «        \  }	}
|                      |¦  «        \  }}| j                             t          |||	|
g |¦  «        ¦  «         d S )Nz0Tried to use 'add' after querying the source setr    r!   r#   r   z5add called with both positional and keyword arguments)	rS   r   Úanyr   rt   rp   rO   rf   r8   )r\   rv   r^   rx   r    r!   r#   r9   r   r<   r=   Ú_s               r+   rV   zSourceSetImpl.add_method�   sñ   € ð( Œ;ð 	TÝÐRÑSÔSÐSØ�fŒ~ˆØ˜Ô#ˆØ˜*Ô%ˆÝ�D˜' 8Ð,Ñ-Ô-ð 	`Ø˜1”gˆGˆGØ�!ŒWð 	`Ý&Ð'^Ñ_Ô_Ð_Ø!×2Ò2°4Ñ8Ô8ÑˆˆlØ"×5Ò5°gÑ>Ô>Ñˆ�Ø×-Ò-¨hÑ7Ô7‰ˆ�!ØŒ
×Ò�-¨¨l¸GÀZÐQSÐU]Ñ^Ô^Ñ_Ô_Ð_Ð_Ð_r*   zsourceset.add_allúT.Tuple[T.List[SourceSetImpl]]r-   c           
     ó‚  — | j         rt          d¦  «        ‚|d         }|d         }|s|s	|d         }n|d         rt          d¦  «        ‚|                      |¦  «        \  }}|D ]-}t	          |t
          ¦  «        st          d¦  «        ‚d|_         Œ.| j                             t          ||g g |g ¦  «        ¦  «         d S )Nz4Tried to use 'add_all' after querying the source setr    r!   r   z9add_all called with both positional and keyword argumentsz:Arguments to 'add_all' after the first must be source setsT)	rS   r   r   rt   rd   rE   rO   rf   r8   )	r\   rv   r^   rx   r    r!   r9   r   ro   s	            r+   rW   zSourceSetImpl.add_all_method±   sé   € ð Œ;ð 	XÝÐVÑWÔWÐWØ�fŒ~ˆØ˜Ô#ˆØð 	d˜Gð 	dØ˜1”gˆGˆGØ�!ŒWð 	dÝ&Ð'bÑcÔcÐcØ!×2Ò2°4Ñ8Ô8ÑˆˆlØð 	ð 	ˆAÝ˜a¥Ñ/Ô/ð bÝ!Ð"`ÑaÔaÐaØˆAŒHˆHØŒ
×Ò�-¨¨l¸BÀÀGÈRÑPÔPÑQÔQÐQÐQÐQr*   NÚ
enabled_fnúT.Callable[[str], bool]rJ   r1   ÚintoúT.Optional['SourceFiles']r@   c                ó,  ‡— |s(t          t          ¦   «         t          ¦   «         ¦  «        }| j        D ]à}t          d„ |j        D ¦   «         ¦  «        r¡t          ˆfd„|j        D ¦   «         ¦  «        r�|j                             |j        ¦  «         |j                             |j        ¦  «         |j                             |j        ¦  «         |j	        D ]}| 
                    ‰||¦  «         Œ|sŒÁ|j                             |j        ¦  «         Œá|S )Nc              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rc   )Úfound)Ú.0rm   s     r+   ú	<genexpr>z(SourceSetImpl.collect.<locals>.<genexpr>Ó   s*   è è € Ð1Ð1 �1—7’7‘9”9Ð1Ð1Ð1Ð1Ð1Ð1r*   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rc   r)   )r†   Úkeyr   s     €r+   r‡   z(SourceSetImpl.collect.<locals>.<genexpr>Ô   s+   øè è € Ð9Ð9 s�:�:˜c‘?”?Ð9Ð9Ð9Ð9Ð9Ð9r*   )r@   r   rO   Úallr;   r9   r<   rU   r=   r>   Úcollectr#   )r\   r   rJ   r�   ÚentryÚsss    `    r+   r‹   zSourceSetImpl.collectÍ   s  ø€ ð ð 	;Ý�z™|œ|­Z©\¬\Ñ:Ô:ˆDØ”Zð 
	0ð 
	0ˆEÝÐ1Ð1 e¤jÐ1Ñ1Ô1Ñ1Ô1ð ÝÐ9Ð9Ð9Ð9¨e¬jÐ9Ñ9Ô9Ñ9Ô9ðà”×#Ò# E¤MÑ2Ô2Ð2Ø”	× Ò  ¤Ñ,Ô,Ð,Ø”	× Ò  Ô!1Ñ2Ô2Ð2ØÔ*ð >ð >�BØ—J’J˜z¨;¸Ñ=Ô=Ð=Ð=Ø"ð ØØŒL×Ò ¤Ñ/Ô/Ð/Ð/Øˆr*   úT.List[TYPE_var]r   r"   c                óf   — d| _         |                      d„ d¦  «        }t          |j        ¦  «        S )NTc                ó   — dS ©NTr)   ©rm   s    r+   ú<lambda>z2SourceSetImpl.all_sources_method.<locals>.<lambda>ä   ó   €  t€ r*   )rS   r‹   Úlistr<   ©r\   rv   r^   rx   Úfiless        r+   rX   z SourceSetImpl.all_sources_methodß   s0   € ð ˆŒØ—’˜^˜^¨TÑ2Ô2ˆÝ�E”MÑ"Ô"Ð"r*   z$source_set.all_dependencies() methodz0.52.0r:   c                óf   — d| _         |                      d„ d¦  «        }t          |j        ¦  «        S )NTc                ó   — dS r‘   r)   r’   s    r+   r“   z7SourceSetImpl.all_dependencies_method.<locals>.<lambda>í   r”   r*   )rS   r‹   r•   r;   r–   s        r+   rY   z%SourceSetImpl.all_dependencies_methodç   s0   € ð
 ˆŒØ—’˜^˜^¨TÑ2Ô2ˆÝ�E”JÑÔÐr*   zsourceset.applyr2   )r5   ú@T.Tuple[T.Union[build.ConfigurationData, T.Dict[str, TYPE_var]]]r0   ÚSourceFilesObjectc                óÒ   ‡‡‡	— |d         Šd| _         |d         Š	t          ‰t          ¦  «        rdˆˆ	fd„}n
i Šdˆˆˆ	fd	„}|                      |d
¦  «        }t	          |¦  «        }|S )Nr   Tr2   r‰   rg   r`   r1   c                óº   •— t          ‰t          ¦  «        s
J d¦   «         ‚‰r| ‰vrt          d| › d�¦  «        ‚t          ‰                     | d¦  «        ¦  «        S )Núfor mypyzEntry z! not in configuration dictionary.F)rd   Údictr   r1   Úget)r‰   Úconfig_datar2   s    €€r+   Ú_get_from_config_dataz9SourceSetImpl.apply_method.<locals>._get_from_config_data÷   sj   ø€ Ý! +­tÑ4Ô4Ð@Ð@°jÑ@Ô@Ð@Øð `˜c¨Ð4Ð4Ý.Ð/^¸Ð/^Ð/^Ð/^Ñ_Ô_Ð_Ý˜KŸOšO¨C°Ñ7Ô7Ñ8Ô8Ð8r*   c                óø   •— t          ‰t          j        ¦  «        s
J d¦   «         ‚| ‰vrJ| ‰v r,t          ‰                     | ¦  «        d         ¦  «        ‰| <   n‰rt          d| › d�¦  «        ‚d‰| <   ‰|          S )Nrž   r   zsourceset.apply: key "z." not in passed configuration, and strict set.F)rd   r
   ÚConfigurationDatar1   r    r   )r‰   Úconfig_cacher¡   r2   s    €€€r+   r¢   z9SourceSetImpl.apply_method.<locals>._get_from_config_dataÿ   s—   ø€ Ý! +­uÔ/FÑGÔGÐSÐSÈÑSÔSÐSØ˜lÐ*Ð*Ø˜kÐ)Ð)Ý,0°·²ÀÑ1EÔ1EÀaÔ1HÑ,IÔ,I˜ SÑ)Ð)Øð 2Ý.Ð/{ÈÐ/{Ð/{Ð/{Ñ|Ô|Ð|à,1˜ SÑ)Ø# CÔ(Ð(r*   F)r‰   rg   r`   r1   )rS   rd   rŸ   r‹   r›   )
r\   rv   r^   rx   r¢   r—   Úresr¥   r¡   r2   s
          @@@r+   rZ   zSourceSetImpl.apply_methodð   s²   øøø€ ð ˜1”gˆØˆŒØ˜Ô!ˆÝ�k¥4Ñ(Ô(ð 	)ð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð /1ˆLð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð —’Ð2°EÑ:Ô:ˆÝ Ñ&Ô&ˆØˆ
r*   ©rF   r   )r^   r_   r`   ra   )r^   rq   r`   rr   )rv   r   r^   rw   rx   r   r`   ry   )rv   r   r^   r}   rx   r-   r`   ry   rc   )r   r€   rJ   r1   r�   r‚   r`   r@   ©rv   r   r^   rŽ   rx   r   r`   r"   ©rv   r   r^   rŽ   rx   r   r`   r:   )rv   r   r^   rš   rx   r0   r`   r›   )#r%   r&   r'   rN   rp   rt   r   rg   r   rh   r
   ÚGeneratedListÚCustomTargetÚCustomTargetIndexr   re   r   r6   r   r   r•   rV   rB   rW   r‹   r   r   rX   r   rY   r¤   rŸ   r1   rZ   Ú__classcell__©r]   s   @r+   rE   rE   ^   s   ø€ € € € € ðð ð ð ð ð ðð ð ð ð,	ð 	ð 	ð 	ð €^�O¨c°8´=À%ÔBUÐW\ÔWiÐkpô  lCð  EQô  E\ð  .]ð  ^ñ  ^ô  ^Ø€\ØØØˆ	ØØÐ˜d S¨(¬-¸Ô9LÈeÔN`ÐbgÔbyð  |Hô  |Sð  %Tñ  Uô  UØØð		
ñ 	
ô 	
ð 	ˆ	ØØÐ˜d S¨(¬-¸Ô9LÈeÔN`ÐbgÔbyÐ$zÑ{Ô{ØØð		
ñ 	
ô 	
ñô ð `ð `ð `ñ!ô ñ ^ô  ^ð"`ð" €^Ð'°Ð;Ñ;Ô;Ø€\ØØØˆ	ØØÐ˜d IÑ.Ô.ØØð		
ñ 	
ô 	
ñ	ô 	ðRð Rð Rñ	ô 	ñ <Ô;ðRð& 37ðð ð ð ð ð$ Øð#ð #ð #ñ „Yñ „Xð#ð ØØ€ZÐ6¸ÑAÔAð ð  ð  ñ BÔAñ „Yñ „Xð ð €^Ð%¨Ô(?ÀÐ'FÑGÔGØ€\Ð# Y Y¨x¸ÀtÐ%LÑ%LÔ%LÑMÔMðð ð ñ NÔMñ HÔGðð ð ð ð r*   rE   c                  óp   ‡ — e Zd Zdˆ fd„Zeedd„¦   «         ¦   «         Zeedd„¦   «         ¦   «         Zˆ xZS )r›   r—   r@   c                ó¤   •— t          ¦   «                              ¦   «          || _        | j                             | j        | j        dœ¦  «         d S )N)r<   r   )rM   rN   r—   rT   rU   Úsources_methodÚdependencies_method)r\   r—   r]   s     €r+   rN   zSourceFilesObject.__init__  sZ   ø€ Ý‰Œ×ÒÑÔÐØˆŒ
ØŒ×ÒØÔ*Ø Ô4ð
ð 
ñ 	ô 	ð 	ð 	ð 	r*   rv   r   r^   rŽ   rx   r   r`   r"   c                ó4   — t          | j        j        ¦  «        S rc   )r•   r—   r<   ©r\   rv   r^   rx   s       r+   r±   z SourceFilesObject.sources_method  s   € õ �D”JÔ&Ñ'Ô'Ð'r*   r:   c                ó4   — t          | j        j        ¦  «        S rc   )r•   r—   r;   r´   s       r+   r²   z%SourceFilesObject.dependencies_method  s   € õ �D”J”OÑ$Ô$Ð$r*   )r—   r@   r¨   r©   )	r%   r&   r'   rN   r   r   r±   r²   r­   r®   s   @r+   r›   r›     s‘   ø€ € € € € ðð ð ð ð ð ð Øð(ð (ð (ñ „Xñ „Yð(ð Øð%ð %ð %ñ „Xñ „Yð%ð %ð %ð %ð %r*   r›   c                  ó`   ‡ — e Zd Z edd¦  «        Zdˆ fd„Zeedd„¦   «         ¦   «         Zˆ xZ	S )ÚSourceSetModuleÚ	sourcesetz0.51.0rF   r   c                óŒ   •— t          ¦   «                              |¦  «         | j                             d| j        i¦  «         d S )NÚ
source_set)rM   rN   rT   rU   rº   r[   s     €r+   rN   zSourceSetModule.__init__'  sK   ø€ Ý‰Œ×Ò˜Ñ%Ô%Ð%ØŒ×ÒØ˜$œ/ð
ñ 	ô 	ð 	ð 	ð 	r*   rv   r   r^   rŽ   rx   r   r`   rE   c                ó*   — t          | j        ¦  «        S rc   )rE   rF   r´   s       r+   rº   zSourceSetModule.source_set-  s   € õ ˜TÔ-Ñ.Ô.Ð.r*   r§   )rv   r   r^   rŽ   rx   r   r`   rE   )
r%   r&   r'   r   ÚINFOrN   r   r   rº   r­   r®   s   @r+   r·   r·   #  sx   ø€ € € € € àˆ:�k 8Ñ,Ô,€Dðð ð ð ð ð ð Øð/ð /ð /ñ „Yñ „Xð/ð /ð /ð /ð /r*   r·   Úinterpr   r`   c                ó    — t          | ¦  «        S rc   )r·   )r½   s    r+   Ú
initializer¿   2  s   € Ý˜6Ñ"Ô"Ð"r*   )r½   r   r`   r·   )1Ú
__future__r   ÚtypingÚTÚ r   r   r   r   r
   r   r   Úinterpreterbaser   r   r   r   r   r   Úinterpreterbase.decoratorsr   r   r   r   r   ÚTYPE_CHECKINGÚtyping_extensionsr   r   rF   r   r   r   r   r-   r0   r•   rg   re   r6   r(   Ú
NamedTupler8   r@   rB   rE   r›   r·   r¿   r)   r*   r+   ú<module>rÉ      sk  ðð #Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð dÐ cÐ cÐ cÐ cÐ cÐ cÐ cÐ cÐ cÐ cÐ cØ !Ð !Ð !Ð !Ð !Ð !à„?ð Ø+Ð+Ð+Ð+Ð+Ð+àÐÐÐÐÐØ)Ð)Ð)Ð)Ð)Ð)Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ðOð Oð Oð Oð O�Iñ Oô Oð Oð'ð 'ð 'ð 'ð '�9ñ 'ô 'ð 'ð
ð ð ð ð �)ñ ô ð ð
 FOÀYØ
ØÐ�d˜S ,Ô"9Ð:Ñ;Ô;ØØð	Fñ Fô F€ð ð ð ñ ðCð Cð Cð Cð C�A”Lñ Cô Cð Cð*.ð .ð .ð .ð .�!”,ñ .ô .ð .ð
ð ð ð ð ñ ô ð ðnð nð nð nð n�IÐ2ñ nô nð nð`%ð %ð %ð %ð %˜ñ %ô %ð %ð*/ð /ð /ð /ð /�oñ /ô /ð /ð#ð #ð #ð #ð #ð #r*   