§
    ŒŸjJ[  ã                   óÈ  — d dl mZ d dlmZ d dlmZmZ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 d dlmZ d d	lmZmZ d d
lmZ d„ Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z  G d„ de ¦  «        Z! G d„ de!e¦  «        Z" G d„ de"¦  «        Z# G d „ d!e#¦  «        Z$ G d"„ d#e#¦  «        Z% G d$„ d%e ¦  «        Z& G d&„ d'e¦  «        Z' G d(„ d)e'¦  «        Z( G d*„ d+¦  «        Z) G d,„ d-¦  «        Z* G d.„ d/e*e¦  «        Z+ G d0„ d1ee¦  «        Z, G d2„ d3e*e,¦  «        Z-d4S )5é    )Úabstractmethod)Ú	Parameter)ÚOptionalÚTupleÚAny)Úfind_statement_documentationÚclean_scope_docstring)ÚValueSetÚ	NO_VALUES)Úinference_state_method_cache)Ú
docstrings)Úmemoize_method)Údeep_ast_copyÚinfer_call_of_leaf)Úplugin_managerc                 óP   — d}| D ] }|r|dz  }||                      ¦   «         z  }Œ!|S )NÚ z 
------------------------------
)Ú	py__doc__)ÚnamesÚdocÚnames      úa/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/names.pyÚ_merge_name_docsr      sF   € Ø
€CØð  ð  ˆØð 	*ð Ð)Ñ)ˆCØˆt�~Š~ÑÔÑˆˆØ€Jó    c                   ó¶   — e Zd ZU dZeeeef                  ed<   eed<   dZ	dZ
dZ	 ed„ ¦   «         Zd„ Zdd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ ZdS )ÚAbstractNameDefinitionNÚ	start_posÚstring_nameTc                 ó   — t           ‚©N©ÚNotImplementedError©Úselfs    r   ÚinferzAbstractNameDefinition.infer#   s   € å!Ð!r   c                 ó   — | hS r    © r#   s    r   ÚgotozAbstractNameDefinition.goto'   s   € ð ˆvˆr   Fc                 óz   — |                       ¦   «         }|�|s|S |                      ¦   «         j        }|€d S ||z   S r    )Ú_get_qualified_namesÚget_root_contextÚstring_names)r$   Úinclude_module_namesÚqualified_namesÚmodule_namess       r   Úget_qualified_namesz*AbstractNameDefinition.get_qualified_names,   sO   € Ø×3Ò3Ñ5Ô5ˆØÐ"Ð*>Ð"Ø"Ð"à×,Ò,Ñ.Ô.Ô;ˆØÐØ�4Ø˜oÑ-Ð-r   c                 ó   — d S r    r'   r#   s    r   r*   z+AbstractNameDefinition._get_qualified_names6   s   € àˆtr   c                 ó4   — | j                              ¦   «         S r    )Úparent_contextr+   r#   s    r   r+   z'AbstractNameDefinition.get_root_context:   s   € ØÔ"×3Ò3Ñ5Ô5Ð5r   c                 ó   — | j         S r    )r   r#   s    r   Úget_public_namez&AbstractNameDefinition.get_public_name=   s   € ØÔÐr   c                 ó€   — | j         €d| j        j        ›d| j        ›d�S d| j        j        ›d| j        ›d| j         ›d�S )Nú<z: string_name=ú>z start_pos=)r   Ú	__class__Ú__name__r   r#   s    r   Ú__repr__zAbstractNameDefinition.__repr__@   s_   € ØŒ>Ð!Ð!Ø-1¬^Ô-DÐ-DÐ-DÀdÔFVÐFVÐFVÐWÐWð "à6:´nÔ6MÐ6MÐ6MØ6:Ô6FÐ6FÐ6FÈÌÈÈðXð 	Xr   c                 ó   — dS )NFr'   r#   s    r   Ú	is_importz AbstractNameDefinition.is_importF   s   € Øˆur   c                 ó   — dS )Nr   r'   r#   s    r   r   z AbstractNameDefinition.py__doc__I   s   € Øˆrr   c                 ó   — | j         j        S r    )r3   Úapi_typer#   s    r   r@   zAbstractNameDefinition.api_typeL   s   € àÔ"Ô+Ð+r   c                 ó   — dS )zŸ
        Returns either None or the value that is public and qualified. Won't
        return a function, because a name in a function is never public.
        Nr'   r#   s    r   Úget_defining_qualified_valuez3AbstractNameDefinition.get_defining_qualified_valueP   s	   € ð
 ˆtr   ©F)r:   Ú
__module__Ú__qualname__r   r   r   ÚintÚ__annotations__Ústrr3   Ú	tree_nameÚis_value_namer   r%   r(   r0   r*   r+   r5   r;   r=   r   Úpropertyr@   rB   r'   r   r   r   r      s  € € € € € € Ø+/€Iˆx˜˜c 3˜hœÔ(Ð/Ð/Ñ/ØÐÐÑØ€NØ€IØ€Mðð ð"ð "ñ „^ð"ðð ð ð
.ð .ð .ð .ðð ð ð6ð 6ð 6ð ð  ð  ðXð Xð Xðð ð ðð ð ð ð,ð ,ñ „Xð,ðð ð ð ð r   r   c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚAbstractArbitraryNamezÉ
    When you e.g. want to complete dicts keys, you probably want to complete
    string literals, which is not really a name, but for Jedi we use this
    concept of Name for completions as well.
    Fc                 ó:   — || _         || _        |j        | _        d S r    )Úinference_stater   Úbuiltins_moduler3   )r$   rO   Ústrings      r   Ú__init__zAbstractArbitraryName.__init__`   s#   € Ø.ˆÔØ!ˆÔØ-Ô=ˆÔÐÐr   c                 ó   — t           S r    ©r   r#   s    r   r%   zAbstractArbitraryName.infere   ó   € ÝÐr   N)r:   rD   rE   Ú__doc__rJ   rR   r%   r'   r   r   rM   rM   X   sC   € € € € € ðð ð
 €Mð>ð >ð >ð
ð ð ð ð r   rM   c                   ó€   ‡ — e Zd ZU eed<   eed<   d„ Zdˆ fd„	Zd„ Zd„ Zd„ Z	d	„ Z
ed
„ ¦   «         Zed„ ¦   «         Zˆ xZS )ÚAbstractTreeNamerI   r3   c                 ó"   — || _         || _        d S r    )r3   rI   )r$   r3   rI   s      r   rR   zAbstractTreeName.__init__m   s   € Ø,ˆÔØ"ˆŒˆˆr   Fc                 ó~  •— | j                              dd¦  «        }|�|j        dk    r8|                      ¦   «                              ¦   «                              ¦   «         s<|r8|j        s1t          d„ |                     | j         ¦  «        D ¦   «         ¦  «        S d S t          ¦   «          	                    |¦  «        S )NÚimport_nameÚimport_fromé   c              3   ó$   K  — | ]}|j         V — Œd S r    )Úvalue)Ú.0Úns     r   ú	<genexpr>z7AbstractTreeName.get_qualified_names.<locals>.<genexpr>{   s$   è è € Ð\Ð\¨˜QœWÐ\Ð\Ð\Ð\Ð\Ð\r   )
rI   Úsearch_ancestorÚlevelr+   Ú	get_valueÚ
is_packageÚtupleÚget_path_for_nameÚsuperr0   )r$   r-   Úimport_noder9   s      €r   r0   z$AbstractTreeName.get_qualified_namesq   s»   ø€ Ø”n×4Ò4°]ÀMÑRÔRˆð
 Ð"¨KÔ,=ÀÒ,BÐ,BØ04×0EÒ0EÑ0GÔ0G×0QÒ0QÑ0SÔ0S×0^Ò0^Ñ0`Ô0`ð -Cð $ð ¨KÔ,=ð ÝÐ\Ð\¨k×.KÒ.KÈDÌNÑ.[Ô.[Ð\Ñ\Ô\Ñ\Ô\Ð\à�tå‰wŒw×*Ò*Ð+?Ñ@Ô@Ð@r   c                 ó\   — | j                              ¦   «         }|€d S || j        j        fz   S r    )r3   r0   rI   r_   )r$   Úparent_namess     r   r*   z%AbstractTreeName._get_qualified_names�   s4   € ØÔ*×>Ò>Ñ@Ô@ˆØÐØ�4Ø˜tœ~Ô3Ð5Ñ5Ð5r   c                 óŒ   — |                       ¦   «         rt          d¦  «        ‚| j        r| j                             ¦   «         S d S )Nz&Shouldn't really happen, please report)r=   r"   r3   re   r#   s    r   rB   z-AbstractTreeName.get_defining_qualified_value‡   sH   € Ø�>Š>ÑÔð 	3Ý%Ð&NÑOÔOÐOØÔ ð 	3ØÔ&×0Ò0Ñ2Ô2Ð2Øˆtr   c                 óÈ  ‡‡— | j         Š| j        Š‰                     d¬¦  «        }|�<|j        }|dk    r‰j        j        dv}|r| gS n;|dv rddlm}  |‰‰¦  «        }|S | gS ddlm}  |‰‰¦  «        }|�d	„ |D ¦   «         S ‰j        }|j        }	|	d
k    �ra|j        d         dk    �rO|j        d         ‰k    �r=|j        }
|
j        dk    r|
j        }
|
j        dk    �r|
j        dk    r!‰ 	                    |
j        d         ¦  «        }n�|
j        j         
                    |
¦  «        }|
j        j        d |…         }|d         dk    r|                     d¦  «         ‰ 	                    |d         ¦  «        }ddlm} |dd …         D ]}
 |‰||
¦  «        }Œg }|D ]U}|                     ¦   «         D ]>}|                     ¦   «         D ]'}|j        ‰j        k    r|                     |¦  «         Œ(Œ?ŒV|S nh|	dk    rb|j         
                    ‰¦  «        }|dk    rBt'          |¦  «        }g |j        |dz
  d …<   ‰ 	                    |¦  «        }ˆˆfd„|D ¦   «         S |	dk    r:|j        d         dk    r)t)          ‰‰d¬¦  «        }|                     ‰‰¬¦  «        S ‰                     dd¦  «        p‰}|j        dk    r‰}‰                     ‰|j        ¬¦  «        S )NT©Úimport_name_alwaysÚ	expr_stmt)ÚpowerÚtrailer)r\   r[   r   )Úgoto_import)Ú%follow_error_node_imports_if_possiblec                 ó   — g | ]	}|j         ‘Œ
S r'   ©r   )r`   r_   s     r   ú
<listcomp>z)AbstractTreeName.goto.<locals>.<listcomp>¤   s   € Ð7Ð7Ð7 u˜œ
Ð7Ð7Ð7r   Úargumentr]   ú=ÚarglistÚclassdefÚ	decoratorÚawait)Úinfer_trailerÚdotted_namec                 óH   •— g | ]}|                      ‰‰¬ ¦  «        D ]}|‘ŒŒS )©Úname_context)r(   )r`   r_   ra   Úcontextr   s      €€r   rx   z)AbstractTreeName.goto.<locals>.<listcomp>Æ   sP   ø€ ð ð ð àØ"ŸZšZ¨¸7˜ZÑCÔCðð ð ð ðð ð ð r   rs   ú.)Úcut_own_trailerr‚   Úlambdef)Úposition)r3   rI   Úget_definitionÚtypeÚparentÚjedi.inference.importsrt   ru   ÚchildrenÚ
infer_nodeÚindexÚpopÚjedi.inference.syntax_treer   Úget_signaturesÚget_param_namesr   r_   Úappendr   r   r(   rc   r   )r$   Ú
definitionÚtype_Úis_simple_namert   r/   ru   ÚvaluesÚparÚ	node_typers   Ú	value_setÚiÚto_inferr   Úparam_namesr_   Ú	signatureÚ
param_namer�   Ú
new_dottedÚstmtr„   r   s                         @@r   r(   zAbstractTreeName.gotoŽ   s®  øø€ ØÔ%ˆØŒ~ˆØ×(Ò(¸DÐ(ÑAÔAˆ
ØÐ!Ø”OˆEØ˜Ò#Ð#ð "&¤Ô!1Ð9MÐ!M�Ø!ð "Ø ˜6�Mð"àÐ8Ð8Ð8Ø>Ð>Ð>Ð>Ð>Ð>Ø*˜{¨7°DÑ9Ô9�Ø#Ð#à�v�àTÐTÐTÐTÐTÐTØ:Ð:¸7ÀDÑIÔIˆFØÐ!Ø7Ð7°Ð7Ñ7Ô7Ð7àŒkˆØ”Hˆ	Ø˜
Ò"Ñ" s¤|°A¤¸#Ò'=Ñ'=À#Ä,ÈqÄ/ÐUYÒBYÑBYà”jˆGØŒ|˜yÒ(Ð(Ø!œ.�ØŒ|˜zÒ)Ñ)Ø”< ;Ò.Ð.Ø '× 2Ò 2°7Ô3CÀAÔ3FÑ GÔ G�I�IàœÔ/×5Ò5°gÑ>Ô>�AØ&œ~Ô6°r¸°rÔ:�HØ ”{ gÒ-Ð-Ø Ÿš Q™œ˜Ø '× 2Ò 2°8¸A´;Ñ ?Ô ?�IØHÐHÐHÐHÐHÐHØ#+¨A¨B¨B¤<ð Oð O˜Ø$1 M°'¸9ÀgÑ$NÔ$N˜	˜	Ø �Ø&ð ?ð ?�EØ%*×%9Ò%9Ñ%;Ô%;ð ?ð ?˜	Ø*3×*CÒ*CÑ*EÔ*Eð ?ð ?˜JØ)Ô5¸¼ÒCÐCØ +× 2Ò 2°:Ñ >Ô >Ð >øð?ð?ð #Ð"ð% *ð& ˜-Ò'Ð'Ø”L×&Ò& tÑ,Ô,ˆEØ�qŠyˆyÝ*¨3Ñ/Ô/�
Ø24�
Ô# E¨A¡I J JÑ/Ø ×+Ò+¨JÑ7Ô7�ðð ð ð ð à!'ðñ ô ð ð ˜	Ò!Ð! c¤l°1¤o¸Ò&<Ð&<Ý'¨°ÀtÐLÑLÔLˆFØ—;’;˜t°'�;Ñ:Ô:Ð:à×'Ò'¨°YÑ?Ô?ÐGÀ4ˆDØŒy˜IÒ%Ð%Ø�Ø—<’< ¨t¬~�<Ñ>Ô>Ð>r   c                 ó@   — | j                              dd¦  «        }|d uS )Nr\   r[   ©rI   rc   )r$   Úimps     r   r=   zAbstractTreeName.is_importÕ   s#   € ØŒn×,Ò,¨]¸MÑJÔJˆØ˜$ˆÐr   c                 ó   — | j         j        S r    )rI   r_   r#   s    r   r   zAbstractTreeName.string_nameÙ   s   € àŒ~Ô#Ð#r   c                 ó   — | j         j        S r    )rI   r   r#   s    r   r   zAbstractTreeName.start_posÝ   s   € àŒ~Ô'Ð'r   rC   )r:   rD   rE   r   rG   rR   r0   r*   rB   r(   r=   rK   r   r   Ú__classcell__©r9   s   @r   rX   rX   i   sß   ø€ € € € € € Ø€N€N�NØÐÐÑð#ð #ð #ðAð Að Að Að Að Að 6ð 6ð 6ðð ð ðE?ð E?ð E?ðNð ð ð ð$ð $ñ „Xð$ð ð(ð (ñ „Xð(ð (ð (ð (ð (r   rX   c                   ób   ‡ — e Zd ZU eed<   eed<   d„ Zd„ Zd„ Zˆ fd„Zd„ Z	e
d„ ¦   «         Zˆ xZS )	ÚValueNameMixinÚ_valuer3   c                 ó,   — t          | j        g¦  «        S r    )r
   r¬   r#   s    r   r%   zValueNameMixin.inferæ   s   € Ý˜œ˜Ñ&Ô&Ð&r   c                 ó¼   — | j                              ¦   «         }|s@| j                              ¦   «         r'ddlm}  || gd¬¦  «        }| |vrt          |¦  «        S |S )Nr   ©Úconvert_namesF©Úprefer_stub_to_compiled)r¬   r   Úis_stubÚ!jedi.inference.gradual.conversionr°   r   )r$   r   r°   r   s       r   r   zValueNameMixin.py__doc__é   sx   € ØŒk×#Ò#Ñ%Ô%ˆØð 	/�t”{×*Ò*Ñ,Ô,ð 	/ØGÐGÐGÐGÐGÐGØ!�M 4 &À%ÐHÑHÔHˆEØ˜5Ð Ð Ý'¨Ñ.Ô.Ð.Øˆ
r   c                 ó4   — | j                              ¦   «         S r    )r¬   r0   r#   s    r   r*   z#ValueNameMixin._get_qualified_namesò   s   € ØŒ{×.Ò.Ñ0Ô0Ð0r   c                 ó„   •— | j         €| j                             ¦   «         S t          ¦   «                              ¦   «         S r    )r3   r¬   Ú
as_contextri   r+   ©r$   r9   s    €r   r+   zValueNameMixin.get_root_contextõ   s6   ø€ ØÔÐ&Ø”;×)Ò)Ñ+Ô+Ð+Ý‰wŒw×'Ò'Ñ)Ô)Ð)r   c                 óš   — | j         }|�A|                     ¦   «         s|                     ¦   «         r| j                              ¦   «         S d S r    )r3   Ú	is_moduleÚis_classre   )r$   r„   s     r   rB   z+ValueNameMixin.get_defining_qualified_valueú   sL   € ØÔ%ˆØÐ G×$5Ò$5Ñ$7Ô$7Ð¸7×;KÒ;KÑ;MÔ;MÐØÔ&×0Ò0Ñ2Ô2Ð2Øˆtr   c                 ó   — | j         j        S r    )r¬   r@   r#   s    r   r@   zValueNameMixin.api_type   s   € àŒ{Ô#Ð#r   )r:   rD   rE   r   rG   r%   r   r*   r+   rB   rK   r@   r¨   r©   s   @r   r«   r«   â   s¦   ø€ € € € € € Ø€K€K�KØÐÐÑð'ð 'ð 'ðð ð ð1ð 1ð 1ð*ð *ð *ð *ð *ð
ð ð ð ð$ð $ñ „Xð$ð $ð $ð $ð $r   r«   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú	ValueNamec                 ód   •— t          ¦   «                              |j        |¦  «         || _        d S r    )ri   rR   r3   r¬   )r$   r_   rI   r9   s      €r   rR   zValueName.__init__  s+   ø€ Ý‰Œ×Ò˜Ô-¨yÑ9Ô9Ð9ØˆŒˆˆr   c                 ó6   — t          | j        j        g¦  «        S r    )r
   r¬   r   r#   s    r   r(   zValueName.goto
  s   € Ý˜œÔ)Ð*Ñ+Ô+Ð+r   )r:   rD   rE   rR   r(   r¨   r©   s   @r   r¾   r¾     sG   ø€ € € € € ðð ð ð ð ð,ð ,ð ,ð ,ð ,ð ,ð ,r   r¾   c                   ó�   — e Zd Z eddddd¬¦  «        Zd„ Zed„ ¦   «         Zd„ Zed	„ ¦   «         Z	 e
d
¬¦  «        d„ ¦   «         ZdS )ÚTreeNameDefinitionÚmoduleÚfunctionÚparamÚclass)r[   r\   ÚfuncdefrÅ   r|   c                 óP   — ddl m}  || j        j        | j        | j        ¦  «        S )Nr   )Útree_name_to_values)r‘   rÉ   r3   rO   rI   )r$   rÉ   s     r   r%   zTreeNameDefinition.infer  s=   € àBÐBÐBÐBÐBÐBØ"Ð"ØÔÔ/ØÔØŒNñ
ô 
ð 	
r   c                 ó€   — | j                              d¬¦  «        }|€dS | j                             |j        d¦  «        S )NTro   Ú	statement)rI   r‰   Ú
_API_TYPESÚgetrŠ   )r$   r•   s     r   r@   zTreeNameDefinition.api_type   s?   € à”^×2Ò2ÀdÐ2ÑKÔKˆ
ØÐØ�;ØŒ×"Ò" :¤?°KÑ@Ô@Ð@r   c                 óÀ  — g }d}| j         j        }| j         }|�Ä|j        dv r˜t          |j        ¦  «        D ]q\  }}||k    rft          |dz  ¦  «        }|r8t          t          |j        ¦  «        |z
  dz  ¦  «        }t          || ¦  «        }|                     d||f¦  «          nŒrt          d¦  «        ‚d}n|j        dk    rd}n
|j        d	v rn|}|j        }|­Ä|S )
a†  
        Returns an array of tuple(int, node) of the indexes that are used in
        tuple assignments.

        For example if the name is ``y`` in the following code::

            x, (y, z) = 2, ''

        would result in ``[(1, xyz_node), (0, yz_node)]``.

        When searching for b in the case ``a, *b, c = [...]`` it will return::

            [(slice(1, -1), abc_node)]
        FN)ÚtestlistÚtestlist_compÚtestlist_star_exprÚexprlisté   r   zCouldn't find the assignment.Ú	star_exprT)rq   Úsync_comp_for)
rI   r‹   rŠ   Ú	enumerater�   rF   ÚlenÚsliceÚinsertÚLookupError)	r$   ÚindexesÚis_star_exprÚnodeÚcomparerœ   Úchildr�   Úfrom_ends	            r   Úassignment_indexesz%TreeNameDefinition.assignment_indexes'  s   € ð ˆØˆØŒ~Ô$ˆØ”.ˆØÐØŒyÐ[Ð[Ð[Ý )¨$¬-Ñ 8Ô 8ð 	Gð 	G‘H�A�uØ Ò'Ð'Ý # A¨¡E¡
¤
˜Ø'ð <Ý'*­C°´Ñ,>Ô,>ÀÑ,BÀaÑ+GÑ'HÔ'H˜HÝ$)¨%°(°Ñ$;Ô$;˜EØŸš q¨5°$¨-Ñ8Ô8Ð8Ø˜ð (õ &Ð&EÑFÔFÐFØ$��Ø”˜kÒ)Ð)Ø#��Ø”Ð<Ð<Ð<ØàˆGØ”;ˆDð' Ðð( ˆr   c                 ó   — | j         j        S r    )r3   rO   r#   s    r   rO   z"TreeNameDefinition.inference_stateP  s   € ð Ô"Ô2Ð2r   r   )Údefaultc                 óð  — | j         }|dv rx| j                             ¦   «                              ¦   «         r'ddlm}  || gd¬¦  «        }| |vrt          |¦  «        S t          | j         	                    ¦   «         ¦  «        S |dk    r'|  
                    ¦   «         }| |vrt          |¦  «        S |dk    r?| j                             ¦   «         r&t          | j         	                    ¦   «         ¦  «        S dS )	N)rÄ   rÆ   rK   r   r¯   Fr±   rÃ   rË   r   )r@   r3   r+   r³   r´   r°   r   r	   rI   r‰   r(   Úis_definitionr   )r$   r@   r°   r   s       r   r   zTreeNameDefinition.py__doc__U  s  € à”=ˆØÐ8Ð8Ð8ØÔ"×3Ò3Ñ5Ô5×=Ò=Ñ?Ô?ð 3ØKÐKÐKÐKÐKÐKØ%˜ t fÀeÐLÑLÔL�Ø˜uÐ$Ð$Ý+¨EÑ2Ô2Ð2õ )¨¬×)FÒ)FÑ)HÔ)HÑIÔIÐIà�xÒÐØ—I’I‘K”KˆEØ˜5Ð Ð Ý'¨Ñ.Ô.Ð.à�{Ò"Ð" t¤~×'CÒ'CÑ'EÔ'EÐ"Ý/°´×0MÒ0MÑ0OÔ0OÑPÔPÐPØˆrr   N)r:   rD   rE   ÚdictrÌ   r%   rK   r@   rá   rO   r   r   r'   r   r   rÂ   rÂ     s»   € € € € € Ø�ØØØØØðñ ô €Jð
ð 
ð 
ð ðAð Añ „XðAð'ð 'ð 'ðR ð3ð 3ñ „Xð3ð "Ð!¨"Ð-Ñ-Ô-ðð ñ .Ô-ðð ð r   rÂ   c                   ó8   — e Zd ZU eed<   d	d„Zd	d„Zd„ Zd
d„ZdS )Ú_ParamMixinÚget_kindTc                 ó    — t           j        t           j        g}|r|                     t           j        ¦  «         |                      ¦   «         |v S r    )r   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDr”   ÚVAR_POSITIONALré   )r$   Úinclude_starÚoptionss      r   Úmaybe_positional_argumentz%_ParamMixin.maybe_positional_argumento  sB   € Ý'Ô7½Ô9XÐYˆØð 	5Ø�NŠN�9Ô3Ñ4Ô4Ð4Ø�}Š}‰Œ 'Ð)Ð)r   c                 ó    — t           j        t           j        g}|r|                     t           j        ¦  «         |                      ¦   «         |v S r    )r   ÚKEYWORD_ONLYrì   r”   ÚVAR_KEYWORDré   )r$   Úinclude_starsrï   s      r   Úmaybe_keyword_argumentz"_ParamMixin.maybe_keyword_argumentu  sB   € Ý'Ô4µiÔ6UÐVˆØð 	2Ø�NŠN�9Ô0Ñ1Ô1Ð1Ø�}Š}‰Œ 'Ð)Ð)r   c                 óv   — |                       ¦   «         }|t          j        k    rdS |t          j        k    rdS dS )NÚ*z**r   ©ré   r   rí   ró   ©r$   Úkinds     r   Ú_kind_stringz_ParamMixin._kind_string{  s:   € Ø�}Š}‰ŒˆØ•9Ô+Ò+Ð+Ø�3Ø•9Ô(Ò(Ð(Ø�4Øˆrr   Fc                 ó   — d S r    r'   )r$   r-   s     r   r0   z_ParamMixin.get_qualified_namesƒ  s   € Øˆtr   N)TrC   )	r:   rD   rE   r   rG   rð   rõ   rû   r0   r'   r   r   rè   rè   l  sj   € € € € € € Ø€M€M�Mð*ð *ð *ð *ð*ð *ð *ð *ðð ð ðð ð ð ð ð r   rè   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Z	dS )ÚParamNameInterfacerÅ   c                 ó   — t           ‚r    r!   r#   s    r   ré   zParamNameInterface.get_kindŠ  ó   € Ý!Ð!r   c                 ó   — t           ‚r    r!   r#   s    r   Ú	to_stringzParamNameInterface.to_string�  r   r   c                 ó   — dS )as  
        For dealing with type inference and working around the graph, we
        sometimes want to have the param name of the execution. This feels a
        bit strange and we might have to refactor at some point.

        For now however it exists to avoid infering params when we don't really
        need them (e.g. when we can just instead use annotations.
        Nr'   r#   s    r   Úget_executed_param_namez*ParamNameInterface.get_executed_param_name�  s	   € ð ˆtr   c                 óv   — |                       ¦   «         }|t          j        k    rdS |t          j        k    rdS dS )Nr]   rÓ   r   rø   rù   s     r   Ú
star_countzParamNameInterface.star_count›  s:   € à�}Š}‰ŒˆØ•9Ô+Ò+Ð+Ø�1Ø•9Ô(Ò(Ð(Ø�1Øˆqr   c                 ó   — t           S r    rT   r#   s    r   Úinfer_defaultz ParamNameInterface.infer_default¤  rU   r   N)
r:   rD   rE   r@   ré   r  r  rK   r  r  r'   r   r   rþ   rþ   ‡  sp   € € € € € Ø€Hð"ð "ð "ð"ð "ð "ð	ð 	ð 	ð ðð ñ „Xððð ð ð ð r   rþ   c                   ó(   — e Zd ZdZdZd„ Zd„ Zd„ ZdS )ÚBaseTreeParamNameNc                 óì   — |                       ¦   «         |                      ¦   «         z   }| j        }| j        }|�|d|                     d¬¦  «        z   z  }|�|d|                     d¬¦  «        z   z  }|S )Nú: F)Úinclude_prefixrz   )rû   r5   Úannotation_nodeÚdefault_nodeÚget_code)r$   ÚoutputÚ
annotationrã   s       r   r  zBaseTreeParamName.to_string¬  s…   € Ø×"Ò"Ñ$Ô$ t×';Ò';Ñ'=Ô'=Ñ=ˆØÔ)ˆ
ØÔ#ˆØÐ!Ø�d˜Z×0Ò0ÀÐ0ÑFÔFÑFÑFˆFØÐØ�c˜G×,Ò,¸EÐ,ÑBÔBÑBÑBˆFØˆr   c                 óR   — | j         }|                     d¦  «        r
|dd …         }|S )NÚ__rÓ   )r   Ú
startswith©r$   r   s     r   r5   z!BaseTreeParamName.get_public_name¶  s2   € ØÔˆØ�?Š?˜4Ñ Ô ð 	ð ˜˜˜”8ˆDØˆr   c                 ó   — | gS r    r'   )r$   Úkwargss     r   r(   zBaseTreeParamName.goto¾  s	   € Øˆvˆr   )r:   rD   rE   r  r  r  r5   r(   r'   r   r   r
  r
  ¨  sK   € € € € € Ø€OØ€Lðð ð ðð ð ðð ð ð ð r   r
  c                   ój   ‡ — e Zd Zˆ fd„Zd„ Zed„ ¦   «         Zdd„Zd„ Zed„ ¦   «         Z	d	„ Z
d
„ Zˆ xZS )Ú_ActualTreeParamNamec                 ó~   •— t          ¦   «                              |                     ¦   «         |¦  «         || _        d S r    )ri   rR   Úget_default_param_contextÚfunction_value)r$   r  rI   r9   s      €r   rR   z_ActualTreeParamName.__init__Ã  sA   ø€ Ý‰Œ×ÒØ×4Ò4Ñ6Ô6¸	ñ	Cô 	Cð 	Cà,ˆÔÐÐr   c                 ó6   — | j                              d¦  «        S )NrÅ   r¤   r#   s    r   Ú_get_param_nodez$_ActualTreeParamName._get_param_nodeÈ  s   € ØŒ~×-Ò-¨gÑ6Ô6Ð6r   c                 ó4   — |                       ¦   «         j        S r    )r  r  r#   s    r   r  z$_ActualTreeParamName.annotation_nodeË  s   € à×#Ò#Ñ%Ô%Ô0Ð0r   TFc                 ó¸   — ddl m}  || j        |                      ¦   «         |¬¦  «        }|r,|                     | j                             ¦   «         ¦  «        }|S )Nr   )Úinfer_param)Úignore_stars)Ú!jedi.inference.gradual.annotationr"  r  r  Úexecute_annotationr  )r$   r%  r#  r"  r˜   s        r   Úinfer_annotationz%_ActualTreeParamName.infer_annotationÏ  ss   € ØAÐAÐAÐAÐAÐAØ�ØÔ ×!5Ò!5Ñ!7Ô!7Ø%ð'ñ 'ô 'ˆð ð 	`Ø×.Ò.¨tÔ/B×/\Ò/\Ñ/^Ô/^Ñ_Ô_ˆFØˆr   c                 óV   — | j         }|€t          S | j                             |¦  «        S r    )r  r   r3   rŽ   )r$   rÝ   s     r   r  z"_ActualTreeParamName.infer_defaultØ  s,   € ØÔ ˆØˆ<ÝÐØÔ"×-Ò-¨dÑ3Ô3Ð3r   c                 ó4   — |                       ¦   «         j        S r    )r  rã   r#   s    r   r  z!_ActualTreeParamName.default_nodeÞ  s   € à×#Ò#Ñ%Ô%Ô-Ð-r   c                 óÀ  — |                       ¦   «         }|j        dk    rt          j        S |j        dk    rt          j        S |j        j                             d¦  «        rt          j        S |j	        }d}|j
        D ]U}|r|dk    rt          j        c S Œ|dk    rt          j        c S |j        dk    r|j        rt          j        c S ||k    rd}ŒVt          j        S )	Nr]   rÓ   r  Fú/r÷   rÅ   T)r  r  r   rí   ró   r   r_   r  rë   r‹   r�   rò   rŠ   rì   )r$   Ú
tree_paramr‹   Úparam_appearedÚps        r   ré   z_ActualTreeParamName.get_kindâ  s  € Ø×)Ò)Ñ+Ô+ˆ
ØÔ  AÒ%Ð%ÝÔ+Ð+ØÔ  AÒ%Ð%ÝÔ(Ð(ð Œ?Ô ×+Ò+¨DÑ1Ô1ð 	-ÝÔ,Ð,àÔ"ˆØˆØ”ð 	.ð 	.ˆAØð 
.Ø˜’8�8Ý$Ô4Ð4Ð4Ð4ð ð ˜’8�8Ý$Ô1Ð1Ð1Ð1Ø”6˜WÒ$Ð$Ø”|ð 6Ý(Ô5Ð5Ð5Ð5Ø˜J’�Ø)-˜øÝÔ.Ð.r   c                 óŽ   — |                       ¦   «         }|r|S t          j        | j        |                      ¦   «         ¦  «        }|S r    )r&  r   r"  r  r  )r$   r˜   Ú
doc_paramss      r   r%   z_ActualTreeParamName.inferþ  sG   € Ø×&Ò&Ñ(Ô(ˆØð 	ØˆMåÔ+¨DÔ,?À×AUÒAUÑAWÔAWÑXÔXˆ
ØÐr   )TF)r:   rD   rE   rR   r  rK   r  r&  r  r  ré   r%   r¨   r©   s   @r   r  r  Â  s¾   ø€ € € € € ð-ð -ð -ð -ð -ð
7ð 7ð 7ð ð1ð 1ñ „Xð1ðð ð ð ð4ð 4ð 4ð ð.ð .ñ „Xð.ð/ð /ð /ð8ð ð ð ð ð ð r   r  c                   ó„   ‡ — e Zd Z ej        d¬¦  «        ˆ fd„¦   «         Z ej        d¬¦  «        ˆ fd„¦   «         Zˆ xZS )ÚAnonymousParamNameÚgoto_anonymous_paramrw   c                 óD   •— t          ¦   «                              ¦   «         S r    )ri   r(   r¸   s    €r   r(   zAnonymousParamName.goto  s   ø€ å‰wŒw�|Š|‰~Œ~Ðr   Úinfer_anonymous_paramc                 óØ  •— t          ¦   «                              ¦   «         }|r|S ddlm} |                      ¦   «         } || j        |j        ¦  «        }|r|S |j        dk    rddlm	}  || j        j
        g ¦  «        }nZ|j        dk    rddlm}  || j        j
        i ¦  «        }n2|j        €t          S | j        j                             |j        ¦  «        S t!          |h¦  «        S )Nr   )Údynamic_param_lookupr]   )Ú	FakeTuplerÓ   )ÚFakeDict)ri   r%   Újedi.inference.dynamic_paramsr6  r  r  Úposition_indexr  Újedi.inference.value.iterabler7  rO   r8  rã   r   r3   rŽ   r
   )r$   r˜   r6  rÅ   r7  r_   r8  r9   s          €r   r%   zAnonymousParamName.infer  s  ø€ å‘”—’‘”ˆØð 	ØˆMØFÐFÐFÐFÐFÐFØ×$Ò$Ñ&Ô&ˆØ%Ð% dÔ&9¸5Ô;OÑPÔPˆØð 	ØˆMàÔ˜qÒ Ð Ø?Ð?Ð?Ð?Ð?Ð?Ø�I˜dÔ1ÔAÀ2ÑFÔFˆEˆEØÔ Ò"Ð"Ø>Ð>Ð>Ð>Ð>Ð>Ø�H˜TÔ0Ô@À"ÑEÔEˆEˆEØŒ]Ð"ÝÐàÔ&Ô5×@Ò@ÀÄÑOÔOÐOÝ˜˜Ñ Ô Ð r   )r:   rD   rE   r   Údecorater(   r%   r¨   r©   s   @r   r1  r1    s‹   ø€ € € € € Ø€^ÔÐ"8Ð9Ñ9Ô9ðð ð ð ñ :Ô9ðð €^ÔÐ"9Ð:Ñ:Ô:ð!ð !ð !ð !ñ ;Ô:ð!ð !ð !ð !ð !r   r1  c                   ó.   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )Ú	ParamNamec                 óZ   •— t          ¦   «                              ||¦  «         || _        d S r    )ri   rR   Ú	arguments)r$   r  rI   r@  r9   s       €r   rR   zParamName.__init__%  s(   ø€ Ý‰Œ×Ò˜¨Ñ3Ô3Ð3Ø"ˆŒˆˆr   c                 ó˜   •— t          ¦   «                              ¦   «         }|r|S |                      ¦   «                              ¦   «         S r    )ri   r%   r  )r$   r˜   r9   s     €r   r%   zParamName.infer)  s?   ø€ Ý‘”—’‘”ˆØð 	ØˆMà×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5Ð5r   c                 óx   — ddl m}  || j        | j        ¦  «        }||                      ¦   «         j                 S )Nr   )Úget_executed_param_names)Újedi.inference.paramrC  r  r@  r  r:  )r$   rC  Úparams_namess      r   r  z!ParamName.get_executed_param_name0  sE   € ØAÐAÐAÐAÐAÐAØ/Ð/°Ô0CÀTÄ^ÑTÔTˆØ˜D×0Ò0Ñ2Ô2ÔAÔBÐBr   )r:   rD   rE   rR   r%   r  r¨   r©   s   @r   r>  r>  $  sg   ø€ € € € € ð#ð #ð #ð #ð #ð6ð 6ð 6ð 6ð 6ðCð Cð Cð Cð Cð Cð Cr   r>  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚParamNameWrapperc                 ó   — || _         d S r    )Ú_wrapped_param_name)r$   r    s     r   rR   zParamNameWrapper.__init__7  s   € Ø#-ˆÔ Ð Ð r   c                 ó,   — t          | j        |¦  «        S r    )ÚgetattrrI  r  s     r   Ú__getattr__zParamNameWrapper.__getattr__:  s   € Ý�tÔ/°Ñ6Ô6Ð6r   c                 ó2   — d| j         j        ›d| j        ›d�S )Nr7   r  r8   )r9   r:   rI  r#   s    r   r;   zParamNameWrapper.__repr__=  s#   € € Ø!œ^Ô4Ð4Ð4°dÔ6NÐ6NÐ6NÐOÐOr   N©r:   rD   rE   rR   rL  r;   r'   r   r   rG  rG  6  sF   € € € € € ð.ð .ð .ð7ð 7ð 7ðPð Pð Pð Pð Pr   rG  c                   ór   — e Zd ZdZdZd„ Zdd„Zed„ ¦   «         Ze	d„ ¦   «         Z
d„ Zed	„ ¦   «         Zd
„ ZdS )Ú
ImportName©r]   r   r   c                 ó"   — || _         || _        d S r    )Ú_from_module_contextr   )r$   r3   r   s      r   rR   zImportName.__init__E  s   € Ø$2ˆÔ!Ø&ˆÔÐÐr   Fc                 óˆ   — |r?| j         r0| j         dk    s
J d¦   «         ‚| j        j        }|€|S || j        fz   S | j        fS dS )Nr]   z(Everything else is not supported for nowr'   )Ú_levelrS  r,   r   )r$   r-   r/   s      r   r0   zImportName.get_qualified_namesI  si   € Øð 	'ØŒ{ð :Ø”{ aÒ'Ð'Ð'Ð)SÑ'Ô'Ð'Ø#Ô8ÔE�ØÐ'Ø'Ð'Ø# tÔ'7Ð&9Ñ9Ð9ØÔ$Ð&Ð&Øˆrr   c                 óœ   — | j         }|                      ¦   «         }|s|S t          t          |¦  «        ¦  «                             ¦   «         S r    )rS  r%   ÚnextÚiterr·   )r$   ÚmÚimport_valuess      r   r3   zImportName.parent_contextT  sH   € àÔ%ˆØŸ
š
™œˆØð 	ØˆHõ •D˜Ñ'Ô'Ñ(Ô(×3Ò3Ñ5Ô5Ð5r   c                 ó~   — ddl m} | j        } ||j        | j        g|| j        ¬¦  «                             ¦   «         S )Nr   )ÚImporter)rd   )rŒ   r\  rS  rO   r   rU  Úfollow)r$   r\  rY  s      r   r%   zImportName.infer^  sL   € à3Ð3Ð3Ð3Ð3Ð3ØÔ%ˆØˆx˜Ô)¨DÔ,<Ð+=¸qÈÌÐTÑTÔT×[Ò[Ñ]Ô]Ð]r   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S r'   rw   )r`   rY  s     r   rx   z#ImportName.goto.<locals>.<listcomp>e  s   € Ð-Ð-Ð-˜1�”Ð-Ð-Ð-r   )r%   r#   s    r   r(   zImportName.gotod  s   € Ø-Ð- §
¢
¡¤Ð-Ñ-Ô-Ð-r   c                 ó   — dS )NrÃ   r'   r#   s    r   r@   zImportName.api_typeg  s   € àˆxr   c                 óD   — t          |                      ¦   «         ¦  «        S r    )r   r(   r#   s    r   r   zImportName.py__doc__k  s   € Ý §	¢	¡¤Ñ,Ô,Ð,r   NrC   )r:   rD   rE   r   rU  rR   r0   rK   r3   r   r%   r(   r@   r   r'   r   r   rP  rP  A  s³   € € € € € Ø€IØ€Fð'ð 'ð 'ð	ð 	ð 	ð 	ð ð6ð 6ñ „Xð6ð ð^ð ^ñ „^ð^ð
.ð .ð .ð ðð ñ „Xðð-ð -ð -ð -ð -r   rP  c                   ó   — e Zd ZdZdS )ÚSubModuleNamer]   N)r:   rD   rE   rU  r'   r   r   rc  rc  o  s   € € € € € Ø€F€F€Fr   rc  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚNameWrapperc                 ó   — || _         d S r    )Ú_wrapped_name)r$   Úwrapped_names     r   rR   zNameWrapper.__init__t  s   € Ø)ˆÔÐÐr   c                 ó,   — t          | j        |¦  «        S r    )rK  rg  r  s     r   rL  zNameWrapper.__getattr__w  s   € Ý�tÔ)¨4Ñ0Ô0Ð0r   c                 ó0   — | j         j        ›d| j        ›d�S )Nú(ú))r9   r:   rg  r#   s    r   r;   zNameWrapper.__repr__z  s!   € Øœ>Ô2Ð2Ð2°DÔ4FÐ4FÐ4FÐGÐGr   NrN  r'   r   r   re  re  s  sF   € € € € € ð*ð *ð *ð1ð 1ð 1ðHð Hð Hð Hð Hr   re  c                   ó>   ‡ — e Zd ZU eed<   eed<   eed<   ˆ fd„Zˆ xZS )ÚStubNameMixinr@   rI   r%   c                 ó(  •— ddl m} | g}| j        dk    r>d| j                             ¦   «         j        v rd„ |                      ¦   «         D ¦   «         } ||d¬¦  «        }| |v r t          ¦   «                              ¦   «         S t          |¦  «        S )Nr   r¯   rË   rz   c                 ó   — g | ]	}|j         ‘Œ
S r'   rw   )r`   Úvs     r   rx   z+StubNameMixin.py__doc__.<locals>.<listcomp>Š  s   € Ð2Ð2Ð2 �Q”VÐ2Ð2Ð2r   Fr±   )
r´   r°   r@   rI   r‰   r�   r%   ri   r   r   )r$   r°   r   r9   s      €r   r   zStubNameMixin.py__doc__ƒ  s¤   ø€ ØCÐCÐCÐCÐCÐCð �ˆØŒ=˜KÒ'Ð'¨C°4´>×3PÒ3PÑ3RÔ3RÔ3[Ð,[Ð,[Ø2Ð2 T§Z¢Z¡\¤\Ð2Ñ2Ô2ˆEà�˜e¸UÐCÑCÔCˆØ�5ˆ=ˆ=Ý‘7”7×$Ò$Ñ&Ô&Ð&õ $ EÑ*Ô*Ð*r   )r:   rD   rE   rH   rG   r   r   r¨   r©   s   @r   rn  rn  ~  sU   ø€ € € € € € Ø€M€M�MØ€N€N�NØ€J€J�Jð+ð +ð +ð +ð +ð +ð +ð +ð +r   rn  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚStubNamec                 óö   •‡— t          ¦   «                              ¦   «         }| j        dk    rK|                      ¦   «                              ¦   «         dk    r!ddlmŠ t          ˆfd„|D ¦   «         ¦  «        S |S )NÚversion_infoÚsysr   )ÚVersionInfoc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r    r'   )r`   Úcrw  s     €r   rb   z!StubName.infer.<locals>.<genexpr>›  s+   øè è € Ð=Ð=¨q˜K˜K¨™NœNÐ=Ð=Ð=Ð=Ð=Ð=r   )ri   r%   r   r+   Ú
py__name__Ú!jedi.inference.gradual.stub_valuerw  r
   )r$   Úinferredrw  r9   s     @€r   r%   zStubName.infer—  s€   øø€ Ý‘7”7—=’=‘?”?ˆØÔ˜~Ò-Ð-°$×2GÒ2GÑ2IÔ2I×2TÒ2TÑ2VÔ2VÐZ_Ò2_Ð2_ØEÐEÐEÐEÐEÐEÝÐ=Ð=Ð=Ð=°HÐ=Ñ=Ô=Ñ=Ô=Ð=Øˆr   )r:   rD   rE   r%   r¨   r©   s   @r   rs  rs  –  s8   ø€ € € € € ðð ð ð ð ð ð ð ð r   rs  c                   ó.   — e Zd ZdZd„ Zed„ ¦   «         ZdS )Ú
ModuleNamerQ  c                 ó"   — || _         || _        d S r    )r¬   Ú_name)r$   r_   r   s      r   rR   zModuleName.__init__¢  s   € ØˆŒØˆŒ
ˆ
ˆ
r   c                 ó   — | j         S r    )r€  r#   s    r   r   zModuleName.string_name¦  s
   € àŒzÐr   N)r:   rD   rE   r   rR   rK   r   r'   r   r   r~  r~  Ÿ  sC   € € € € € Ø€Iðð ð ð ðð ñ „Xðð ð r   r~  c                   ó   — e Zd ZdS )ÚStubModuleNameN)r:   rD   rE   r'   r   r   rƒ  rƒ  «  s   € € € € € Ø€Dr   rƒ  N).Úabcr   Úinspectr   Útypingr   r   r   Újedi.parser_utilsr   r	   Újedi.inference.base_valuer
   r   Újedi.inference.cacher   Újedi.inferencer   Ú
jedi.cacher   Újedi.inference.helpersr   r   Újedi.pluginsr   r   r   rM   rX   r«   r¾   rÂ   rè   rþ   r
  r  r1  r>  rG  rP  rc  re  rn  rs  r~  rƒ  r'   r   r   ú<module>rŽ     s{  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø =Ð =Ð =Ð =Ð =Ð =Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð<ð <ð <ð <ð <ñ <ô <ð <ð~ð ð ð ð Ð2ñ ô ð ð"v(ð v(ð v(ð v(ð v(Ð-ñ v(ô v(ð v(ðr $ð  $ð  $ð  $ð  $ñ  $ô  $ð  $ðF,ð ,ð ,ð ,ð ,�Ð 0ñ ,ô ,ð ,ð[ð [ð [ð [ð [Ð)ñ [ô [ð [ð|ð ð ð ð ñ ô ð ð6ð ð ð ð ˜ñ ô ð ðBð ð ð ð Ð*Ð,<ñ ô ð ð4Bð Bð Bð Bð BÐ,ñ Bô Bð BðJ!ð !ð !ð !ð !Ð-ñ !ô !ð !ð:Cð Cð Cð Cð CÐ$ñ Cô Cð Cð$Pð Pð Pð Pð P�{ñ Pô Pð Pð+-ð +-ð +-ð +-ð +-Ð'ñ +-ô +-ð +-ð\ð ð ð ð �Jñ ô ð ðHð Hð Hð Hð Hñ Hô Hð Hð+ð +ð +ð +ð +ñ +ô +ð +ð0ð ð ð ð ˆ}Ð0ñ ô ð ð	ð 	ð 	ð 	ð 	�Ð!7ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�] Jñ 	ô 	ð 	ð 	ð 	r   