§
    ž²Åjòk  ã                   óT  — d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlZd dlm	Z	 ej
         G d„ d¦  «        ¦   «         Z e¦   «         Z	 	 	 	 	 	 dd„Zdeeef         fd„Ze j        d	„ ¦   «         Zd
„ Z G d„ d¦  «        Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Zddœd„Zddœd„Zddœd„ZdS )é    N)ÚAnyÚDictÚOptional)Úinfc                   ób   — e Zd ZU dZeed<   dZeed<   dZeed<   dZ	eed<   d	Z
ee         ed
<   d	S )Ú__PrinterOptionsé   Ú	precisionéè  Ú	thresholdé   Ú	edgeitemséP   Ú	linewidthNÚsci_mode)Ú__name__Ú
__module__Ú__qualname__r
   ÚintÚ__annotations__r   Úfloatr   r   r   r   Úbool© ó    úBC:\Projects\Historical\venv\Lib\site-packages\torch/_tensor_str.pyr   r      sf   € € € € € € à€IˆsÐÐÑØ€IˆuÐÐÑØ€IˆsÐÐÑØ€IˆsÐÐÑØ#€Hˆh�tŒnÐ#Ð#Ñ#Ð#Ð#r   r   c                 óä  — |�©|dk    r1dt           _        dt           _        dt           _        dt           _        nr|dk    r1dt           _        dt           _        dt           _        dt           _        n;|d	k    r5dt           _        t
          t           _        dt           _        dt           _        | �| t           _        |�|t           _        |�|t           _        |�|t           _        |t           _        dS )
a  Set options for printing. Items shamelessly taken from NumPy

    Args:
        precision: Number of digits of precision for floating point output
            (default = 4).
        threshold: Total number of array elements which trigger summarization
            rather than full `repr` (default = 1000).
        edgeitems: Number of array items in summary at beginning and end of
            each dimension (default = 3).
        linewidth: The number of characters per line for the purpose of
            inserting line breaks (default = 80). Thresholded matrices will
            ignore this parameter.
        profile: Sane defaults for pretty printing. Can override with any of
            the above options. (any one of `default`, `short`, `full`)
        sci_mode: Enable (True) or disable (False) scientific notation. If
            None (default) is specified, the value is defined by
            `torch._tensor_str._Formatter`. This value is automatically chosen
            by the framework.

    Example::

        >>> # Limit the precision of elements
        >>> torch.set_printoptions(precision=2)
        >>> torch.tensor([1.12345])
        tensor([1.12])
        >>> # Limit the number of elements shown
        >>> torch.set_printoptions(threshold=5)
        >>> torch.arange(10)
        tensor([0, 1, 2, ..., 7, 8, 9])
        >>> # Restore defaults
        >>> torch.set_printoptions(profile='default')
        >>> torch.tensor([1.12345])
        tensor([1.1235])
        >>> torch.arange(10)
        tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    NÚdefaultr	   r   r   r   Úshorté   Úfull)Ú
PRINT_OPTSr
   r   r   r   r   r   )r
   r   r   r   Úprofiler   s         r   Úset_printoptionsr#      sØ   € ðZ ÐØ�iÒÐØ#$�JÔ Ø#'�JÔ Ø#$�JÔ Ø#%�JÔ Ð Ø˜ÒÐØ#$�JÔ Ø#'�JÔ Ø#$�JÔ Ø#%�JÔ Ð Ø˜ÒÐØ#$�JÔ Ý#&�JÔ Ø#$�JÔ Ø#%�JÔ àÐØ(�
ÔØÐØ(�
ÔØÐØ(�
ÔØÐØ(�
ÔØ"…JÔÐÐr   Úreturnc                  ó4   — t          j        t          ¦  «        S )zyGets the current options for printing, as a dictionary that
    can be passed as ``**kwargs`` to set_printoptions().
    )ÚdataclassesÚasdictr!   r   r   r   Úget_printoptionsr(   b   s   € õ Ô�jÑ)Ô)Ð)r   c               +   ó‚   K  — t          ¦   «         }t          di | ¤Ž 	 dV — t          di |¤Ž dS # t          di |¤Ž w xY w)zyContext manager that temporarily changes the print options.  Accepted
    arguments are same as :func:`set_printoptions`.Nr   )r(   r#   )ÚkwargsÚ
old_kwargss     r   Úprintoptionsr,   i   sj   è è € õ "Ñ#Ô#€JÝÐÐ�vÐÐÐð'ØˆˆˆåÐ&Ð&˜:Ð&Ð&Ð&Ð&Ð&øÕÐ&Ð&˜:Ð&Ð&Ð&Ð&øøøs   ž0 °>c                 óÌ   — | j         s0| j        r5t          j                             | j        ¦  «        j        st          j        nt          j        }|  	                    |¬¦  «        S )N)Údtype)
Úis_mpsÚis_xpuÚtorchÚxpuÚget_device_propertiesÚdeviceÚhas_fp64r   ÚdoubleÚto)Útr.   s     r   Útensor_totyper9   u   sa   € ð ŒHð	ð ”ð	õ "'¤×!@Ò!@ÀÄÑ!JÔ!JÔ!Sð	�Œˆõ
 Œ\ð 
ð �4Š4�eˆ4ÑÔÐr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú
_Formatterc                 óø  — |j         j        | _        d| _        d| _        d| _        t          j        ¦   «         5  |                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   | j        s1|D ],}|› }t          | j        t          |¦  «        ¦  «        | _        Œ-�n<t          j        |t          j        |¦  «        |                     d¦  «        z  ¦  «        }|                     ¦   «         dk    rd S t          |                     ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        }t          | 	                    ¦   «         ¦  «        }|D ]#}|t          j        |¦  «        k    r	d| _         nŒ$| j        rš||z  dk    s|dk    rWd| _        |D ]L}dt&          j        › d	�                     |¦  «        }t          | j        t          |¦  «        ¦  «        | _        ŒMnï|D ]0}|d
›}t          | j        t          |¦  «        dz   ¦  «        | _        Œ1n»||z  dk    s|dk    s|dk     rWd| _        |D ]L}dt&          j        › d	�                     |¦  «        }t          | j        t          |¦  «        ¦  «        | _        ŒMnO|D ]L}dt&          j        › d�                     |¦  «        }t          | j        t          |¦  «        ¦  «        | _        ŒMt&          j        �t&          j        | _        d S d S )NTFé   éÿÿÿÿr   g     @�@g    „×—Aú{:.úe}ú.0fg-Cëâ6?úf})r.   Úis_floating_pointÚfloating_dtypeÚint_moder   Ú	max_widthr1   Úno_gradÚreshapeÚmaxÚlenÚmasked_selectÚisfiniteÚneÚnumelr9   ÚabsÚminÚceilr!   r
   Úformat)	ÚselfÚtensorÚtensor_viewÚvalueÚ	value_strÚnonzero_finite_valsÚnonzero_finite_absÚnonzero_finite_minÚnonzero_finite_maxs	            r   Ú__init__z_Formatter.__init__‚   sp  € Ø$œlÔ<ˆÔØˆŒØˆŒØˆŒåŒ]‰_Œ_ð 	-ð 	-Ø Ÿ.š.¨Ñ,Ô,ˆKð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð Ô"ð 5	MØ$ð Eð E�Ø$˜J�	Ý!$ T¤^µS¸±^´^Ñ!DÔ!D�”�ñEõ
 #(Ô"5Ø�Uœ^¨KÑ8Ô8¸;¿>º>È!Ñ;LÔ;LÑLñ#ô #Ðð #×(Ò(Ñ*Ô*¨aÒ/Ð/à�õ "/Ð/B×/FÒ/FÑ/HÔ/HÑ!IÔ!IÐÝ!.Ð/A×/EÒ/EÑ/GÔ/GÑ!HÔ!HÐÝ!.Ð/A×/EÒ/EÑ/GÔ/GÑ!HÔ!HÐà,ð ð �Ø�EœJ uÑ-Ô-Ò-Ð-Ø$)�D”MØ�Eð .ð Œ}ð Mð 'Ð);Ñ;¸fÒDÐDØ)¨EÒ1Ð1à$(�D”MØ!4ð Mð M˜Ø$D­:Ô+?Ð$DÐ$DÐ$D×$KÒ$KÈEÑ$RÔ$R˜	Ý),¨T¬^½SÀ¹^¼^Ñ)LÔ)L˜œ˜ðMð "5ð Qð Q˜Ø', N N˜	Ý),¨T¬^½SÀ¹^¼^ÈaÑ=OÑ)PÔ)P˜œ˜ðQð 'Ð);Ñ;¸fÒDÐDØ)¨EÒ1Ð1Ø)¨FÒ2Ð2à$(�D”MØ!4ð Mð M˜Ø$D­:Ô+?Ð$DÐ$DÐ$D×$KÒ$KÈEÑ$RÔ$R˜	Ý),¨T¬^½SÀ¹^¼^Ñ)LÔ)L˜œ˜ðMð "5ð Mð M˜Ø$D­:Ô+?Ð$DÐ$DÐ$D×$KÒ$KÈEÑ$RÔ$R˜	Ý),¨T¬^½SÀ¹^¼^Ñ)LÔ)L˜œ˜åÔÐ*Ý&Ô/ˆDŒMˆMˆMð +Ð*s   ºAÁA Á#A c                 ó   — | j         S ©N)rF   )rS   s    r   Úwidthz_Formatter.widthÅ   s
   € ØŒ~Ðr   c                 óp  — | j         r�| j        r,d| j        › dt          j        › d�                     |¦  «        }n`| j        r2|d›}t          j        |¦  «        st          j	        |¦  «        s|dz  }n'dt          j        › d�                     |¦  «        }n|› }| j        t          |¦  «        z
  dz  |z   S )Nz{:ú.r@   rA   r?   rB   ú )rD   r   rF   r!   r
   rR   rE   ÚmathÚisinfÚisnanrJ   )rS   rV   Úrets      r   rR   z_Formatter.formatÈ   sÍ   € ØÔð 
	ØŒ}ð EØF˜DœNÐFÐF­ZÔ-AÐFÐFÐF×MÒMÈeÑTÔT��Ø”ð EØ�n�n�Ýœ
 5Ñ)Ô)ð ­T¬Z¸Ñ->Ô->ð Ø˜3‘J�Cøà6�ZÔ1Ð6Ð6Ð6×=Ò=¸eÑDÔD��à�*ˆCØ”¥ S¡¤Ñ)¨SÑ0°3Ñ6Ð6r   N)r   r   r   r\   r_   rR   r   r   r   r;   r;   �   sE   € € € € € ðA0ð A0ð A0ðFð ð ð7ð 7ð 7ð 7ð 7r   r;   c                 ó  — |�dt          | j        |¦  «        }t          | j        |¦  «        dz                        ¦   «         }|d         dk    s|d         dk    r||z   S |dz   |z   S |                     |                      ¦   «         ¦  «        S ©NÚjr   ú+ú-)Ú_scalar_strÚrealÚimagÚlstriprR   Úitem)rS   Ú
formatter1Ú
formatter2Úreal_strÚimag_strs        r   rl   rl   ×   sŽ   € ØÐÝ˜tœy¨*Ñ5Ô5ˆÝ ¤	¨:Ñ6Ô6¸Ñ<×DÒDÑFÔFˆà�AŒ;˜#ÒÐ ¨!¤°Ò!3Ð!3Ø˜hÑ&Ð&à˜c‘> HÑ,Ð,à× Ò  §¢¡¤Ñ-Ô-Ð-r   c           	      ó8  ‡‡	‡
— |                      ¦   «         dz   }|�||                      ¦   «         dz   z  }t          dt          t          j        t
          j        |z
  |z  ¦  «        ¦  «        ¦  «        Š
||fd„Š|rt
          j        sdgŠ	n³|r‘|                      d¦  «        dt
          j        z  k    rkˆfd„| d t
          j        …          	                    ¦   «         D ¦   «         dgz   ˆfd„| t
          j         d …          	                    ¦   «         D ¦   «         z   Š	n ˆfd	„|  	                    ¦   «         D ¦   «         Š	ˆ	ˆ
fd
„t          dt          ‰	¦  «        ‰
¦  «        D ¦   «         }d„ |D ¦   «         }ddd|dz   z  z                        |¦  «        z   dz   S )Nr   r=   c                 ó  — |�n|                      | j        ¦  «        }|                      | j        ¦  «        dz                        ¦   «         }|d         dk    s|d         dk    r||z   S |dz   |z   S |                      | ¦  «        S rh   )rR   rm   rn   ro   )Úvalrq   rr   rs   rt   s        r   Ú_val_formatterz#_vector_str.<locals>._val_formatterï   sŽ   € ØÐ!Ø!×(Ò(¨¬Ñ2Ô2ˆHØ"×)Ò)¨#¬(Ñ3Ô3°cÑ9×AÒAÑCÔCˆHà˜Œ{˜cÒ!Ð! X¨a¤[°CÒ%7Ð%7Ø (Ñ*Ð*à #‘~¨Ñ0Ð0à×$Ò$ SÑ)Ô)Ð)r   ú...r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   ©Ú.0rw   rx   s     €r   ú
<listcomp>z_vector_str.<locals>.<listcomp>   s#   ø€ ÐRÐRÐR Sˆ^ˆ^˜CÑ Ô ÐRÐRÐRr   z ...c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   r{   s     €r   r}   z_vector_str.<locals>.<listcomp>  s#   ø€ ÐUÐUÐU sˆ~ˆ~˜cÑ"Ô"ÐUÐUÐUr   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   r{   s     €r   r}   z_vector_str.<locals>.<listcomp>  s#   ø€ Ð=Ð=Ð=¨��˜sÑ#Ô#Ð=Ð=Ð=r   c                 ó*   •— g | ]}‰||‰z   …         ‘ŒS r   r   )r|   ÚiÚdataÚelements_per_lines     €€r   r}   z_vector_str.<locals>.<listcomp>  s6   ø€ ð ð ð Ø,-ˆˆQ�Ð&Ñ&Ð&Ô'ðð ð r   c                 ó8   — g | ]}d                       |¦  «        ‘ŒS )ú, )Újoin©r|   Úlines     r   r}   z_vector_str.<locals>.<listcomp>
  s"   € Ð4Ð4Ð4 ˆT�YŠY�t‰_Œ_Ð4Ð4Ð4r   ú[ú,
rb   ú])r_   rI   r   rc   Úfloorr!   r   r   ÚsizeÚtolistÚrangerJ   r†   )rS   ÚindentÚ	summarizerq   rr   Úelement_lengthÚ
data_linesÚlinesrx   r‚   rƒ   s           @@@r   Ú_vector_strr•   ä   sì  øøø€ à×%Ò%Ñ'Ô'¨!Ñ+€NØÐà˜*×*Ò*Ñ,Ô,¨qÑ0Ñ0ˆåØ	�3�tŒz�:Ô/°&Ñ8¸^ÑLÑMÔMÑNÔNñô Ðð (2¸jð 
*ð 
*ð 
*ð 
*ð ð 
>�Ô-ð 
>àˆwˆˆØ	ð >�t—y’y ‘|”| a­*Ô*>Ñ&>Ò>Ð>àRÐRÐRÐR¨DÐ1Gµ:Ô3GÐ1GÔ,H×,OÒ,OÑ,QÔ,QÐRÑRÔRØˆhñàUÐUÐUÐU¨dµJÔ4HÐ3HÐ3JÐ3JÔ.K×.RÒ.RÑ.TÔ.TÐUÑUÔUñVð 	ˆð >Ð=Ð=Ð=¨t¯{ª{©}¬}Ð=Ñ=Ô=ˆðð ð ð ð Ý16°q½#¸d¹)¼)ÐEVÑ1WÔ1Wðñ ô €Jð 5Ð4¨Ð4Ñ4Ô4€EØ�*˜s f¨q¡jÑ1Ñ1×7Ò7¸Ñ>Ô>Ñ>ÀÑDÐDr   c                 ó–  ‡ ‡‡‡‡— ‰                       ¦   «         }|dk    rt          ‰ ‰‰¦  «        S |dk    rt          ‰ ‰‰‰‰¦  «        S ‰r�‰                      d¦  «        dt          j        z  k    rwˆˆˆˆ ˆfd„t          dt          j        ¦  «        D ¦   «         dgz   ˆˆˆˆ ˆfd„t          t          ‰ ¦  «        t          j        z
  t          ‰ ¦  «        ¦  «        D ¦   «         z   }n3ˆˆˆˆ ˆfd„t          d‰                      d¦  «        ¦  «        D ¦   «         }dd	|dz
  z  z   d
‰dz   z  z                        |¦  «        }d|z   dz   S )Nr   r=   r   c           	      óH   •— g | ]}t          ‰|         ‰d z   ‰‰‰¦  «        ‘ŒS ©r=   ©Ú_tensor_str_with_formatter©r|   r�   rq   rr   r�   rS   r‘   s     €€€€€r   r}   z._tensor_str_with_formatter.<locals>.<listcomp>  sH   ø€ ð ð ð ð õ +Ø˜”G˜V a™Z¨°JÀ
ñô ðð ð r   ry   c           	      óH   •— g | ]}t          ‰|         ‰d z   ‰‰‰¦  «        ‘ŒS r˜   r™   r›   s     €€€€€r   r}   z._tensor_str_with_formatter.<locals>.<listcomp>#  sH   ø€ ð ð ð ð õ +Ø˜”G˜V a™Z¨°JÀ
ñô ðð ð r   c           	      óH   •— g | ]}t          ‰|         ‰d z   ‰‰‰¦  «        ‘ŒS r˜   r™   r›   s     €€€€€r   r}   z._tensor_str_with_formatter.<locals>.<listcomp>+  sH   ø€ ð 
ð 
ð 
ð õ 'Ø�Q”˜ !™ Y°
¸Jñô ð
ð 
ð 
r   ú,ú
rb   r‰   r‹   )	Údimrl   r•   r�   r!   r   r�   rJ   r†   )rS   r�   r‘   rq   rr   r    ÚslicesÚ
tensor_strs   `````   r   rš   rš     sÀ  øøøøø€ Ø
�(Š(‰*Œ*€Cà
ˆa‚x€xÝ˜4 ¨ZÑ8Ô8Ð8à
ˆa‚x€xÝ˜4 ¨°JÀ
ÑKÔKÐKàð 
�T—Y’Y˜q‘\”\ A­
Ô(<Ñ$<Ò<Ð<ðð ð ð ð ð ð ð õ ˜q¥*Ô"6Ñ7Ô7ð	ñ ô ð ˆgñðð ð ð ð ð ð ð õ �s 4™yœy­:Ô+?Ñ?ÅÀTÁÄÑKÔKð	ñ ô ñð 	ˆð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
õ ˜1˜dŸiši¨™lœlÑ+Ô+ð	
ñ 
ô 
ˆð ˜  a¡Ñ(Ñ(¨3°&¸1±*Ñ+=Ñ=×CÒCÀFÑKÔK€JØ�Ñ˜cÑ!Ð!r   c                 óp  — |                       ¦   «         dk    rdS |                      ¦   «         r|                      d ¦  «        } |                       ¦   «         t          j        k    }|                      ¦   «         r|                      ¦   «         } |                      ¦   «         r|                      ¦   «         } | j	        t          j        t          j        t          j        t          j        fv r|                      ¦   «         } | j	        j        r{|                      ¦   «         } t%          |rt'          | j        ¦  «        n| j        ¦  «        }t%          |rt'          | j        ¦  «        n| j        ¦  «        }t-          | ||||¦  «        S t%          |rt'          | ¦  «        n| ¦  «        }t-          | |||¦  «        S )Nr   ú[])rN   Ú	has_namesÚrenamer!   r   Ú_is_zerotensorÚcloneÚis_negÚresolve_negr.   r1   Úfloat8_e5m2Úfloat8_e5m2fnuzÚfloat8_e4m3fnÚfloat8_e4m3fnuzÚhalfÚ
is_complexÚresolve_conjr;   Úget_summarized_datarm   rn   rš   )rS   r�   r‘   Úreal_formatterÚimag_formatterÚ	formatters         r   Ú_tensor_strr¶   6  s�  € Ø‡z‚z�|„|�qÒÐØˆtà‡~‚~ÑÔð !ð �{Š{˜4Ñ Ô ˆà—
’
‘”�zÔ3Ò3€Ià×ÒÑÔð Ø�zŠz‰|Œ|ˆð ‡{‚{�}„}ð "Ø×ÒÑ!Ô!ˆð „zÝÔÝÔÝÔÝÔð	ð ð ð �yŠy‰{Œ{ˆà„zÔð Nà× Ò Ñ"Ô"ˆÝ#Ø.7ÐFÕ ¤	Ñ*Ô*Ð*¸T¼Yñ
ô 
ˆõ $Ø.7ÐFÕ ¤	Ñ*Ô*Ð*¸T¼Yñ
ô 
ˆõ *Ø�&˜) ^°^ñ
ô 
ð 	
õ ¸IÐOÕ2°4Ñ8Ô8Ð8È4ÑPÔPˆ	Ý)¨$°¸	À9ÑMÔMÐMr   c                 ó�  — | g}t          | ¦  «        |                      d¦  «        z
  dz   }|D ]o}t          |¦  «        }|s||z   dz   t          j        k    r&|                     dd|z  z   |z   ¦  «         ||z   }d}ŒO|                     d|z   ¦  «         ||dz   z  }Œp|                     d¦  «         d	                     |¦  «        S )
NrŸ   r=   r   rŠ   rb   Fr…   ú)Ú )rJ   Úrfindr!   r   Úappendr†   )r¢   Úsuffixesr�   Úforce_newlineÚtensor_strsÚlast_line_lenÚsuffixÚ
suffix_lens           r   Ú_add_suffixesrÂ   e  sæ   € Ø�,€KÝ˜
‘O”O j×&6Ò&6°tÑ&<Ô&<Ñ<¸qÑ@€MØð ,ð ,ˆÝ˜‘[”[ˆ
Øð 	,˜M¨JÑ6¸Ñ:½ZÔ=QÒQÐQØ×Ò˜u s¨V¡|Ñ3°fÑ<Ñ=Ô=Ð=Ø" ZÑ/ˆMØ!ˆMˆMà×Ò˜t f™}Ñ-Ô-Ð-Ø˜Z¨!™^Ñ+ˆMˆMØ×Ò�sÑÔÐØ�7Š7�;ÑÔÐr   c                 ó  ‡ — ‰                       ¦   «         }|dk    r‰ S |dk    rc‰                      d¦  «        dt          j        z  k    r;t	          j        ‰ d t          j        …         ‰ t          j         d …         f¦  «        S ‰ S t          j        s+‰                      dg‰                       ¦   «         z  ¦  «        S ‰                      d¦  «        dt          j        z  k    rŠˆ fd„t          dt          j        ¦  «        D ¦   «         }ˆ fd„t          t          ‰ ¦  «        t          j        z
  t          ‰ ¦  «        ¦  «        D ¦   «         }t	          j	        d„ ||z   D ¦   «         ¦  «        S t	          j	        d„ ‰ D ¦   «         ¦  «        S )Nr   r=   r   c                 ó    •— g | ]
}‰|         ‘ŒS r   r   ©r|   r�   rS   s     €r   r}   z'get_summarized_data.<locals>.<listcomp>ƒ  s   ø€ ÐAÐAÐA˜Q��a”ÐAÐAÐAr   c                 ó    •— g | ]
}‰|         ‘ŒS r   r   rÅ   s     €r   r}   z'get_summarized_data.<locals>.<listcomp>„  s   ø€ ÐSÐSÐS˜1ˆt�AŒwÐSÐSÐSr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©r²   ©r|   Úxs     r   r}   z'get_summarized_data.<locals>.<listcomp>…  s!   € ÐJÐJÐJ°qÕ/°Ñ2Ô2ÐJÐJÐJr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   rÈ   rÉ   s     r   r}   z'get_summarized_data.<locals>.<listcomp>‡  s!   € ÐAÐAÐA°qÕ/°Ñ2Ô2ÐAÐAÐAr   )
r    r�   r!   r   r1   ÚcatÚ	new_emptyr�   rJ   Ústack)rS   r    ÚstartÚends   `   r   r²   r²   u  so  ø€ Ø
�(Š(‰*Œ*€CØ
ˆa‚x€xØˆØ
ˆa‚x€xØ�9Š9�Q‰<Œ<˜!�jÔ2Ñ2Ò2Ð2Ý”9ØÐ,�
Ô,Ð,Ô-¨tµZÔ5IÐ4IÐ4KÐ4KÔ/LÐMñô ð ð ˆKÝÔð CØ�~Š~˜q˜c D§H¢H¡J¤JÑ.Ñ/Ô/Ð/Ø	�Š�1‰Œ˜�JÔ0Ñ0Ò	0Ð	0ØAÐAÐAÐA¥%¨­:Ô+?Ñ"@Ô"@ÐAÑAÔAˆØSÐSÐSÐS¥¥c¨$¡i¤iµ*Ô2FÑ&FÍÈDÉ	Ì	Ñ RÔ RÐSÑSÔSˆÝŒ{ÐJÐJ¸UÀS¹[ÐJÑJÔJÑKÔKÐKåŒ{ÐAÐA¸DÐAÑAÔAÑBÔBÐBr   ©Útensor_contentsc          	      ó®  ‡!‡"— t           j        j                             | ¦  «        rt	          | |¬¦  «        S t          | ¦  «        t           j        u pt          | ¦  «        t           j        j        u }| j	        rd}n|rd}nt          | ¦  «        j
        › d�}t          |¦  «        Š!g }|d u}|r|}t           j        j                             | ¦  «        \  }}|j        j        t           j                             ¦   «         k    sL|j        j        dk    r,t           j                             ¦   «         |j        j        k    s|j        j        dk    r-|                     dt+          |j        ¦  «        z   dz   ¦  «         |j        j        d	v r|                     d
¦  «        }t          j        ¦   «         t           j        k    rt           j        nt           j        }	|j        t          j        ¦   «         |	t           j        t           j        fv }
|j        �rñ|                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         ddl!m"} |j#        ptI          ||¦  «        }|s7|                     dt+          | %                    ¦   «         ¦  «        z   ¦  «         |
s*|                     dt+          |j        ¦  «        z   ¦  «         |�s3d}| &                    ¦   «          '                    ¦   «         }|rd}n tQ          |‰!t          |¦  «        z   ¦  «        }|s| )                    ¦   «         dk    r'|dt+          t?          |j         ¦  «        ¦  «        z   z  }d}| *                    ¦   «          '                    ¦   «         }|rd}n tQ          |‰!t          |¦  «        z   ¦  «        }|s| )                    ¦   «         dk    r'|dt+          t?          |j         ¦  «        ¦  «        z   z  }||z   dz   d‰!z  z   |z   |z   dz   }�nã|j+        t           j,        t           j-        t           j.        t           j/        hv �r}ddl!m"} |                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         |j#        ptI          ||¦  «        }|s7|                     dt+          | %                    ¦   «         ¦  «        z   ¦  «         |
s*|                     dt+          |j        ¦  «        z   ¦  «         |�s¿t           j,        t           j        j0        t           j        j1        ft           j-        t           j        j2        t           j        j3        ft           j.        t           j        j0        t           j        j1        ft           j/        t           j        j2        t           j        j3        fi|j+                 \  }}|j+        t           j,        t           j.        hv rd\  }}nd\  }}d|d d…         › d�} ||¦  «         '                    ¦   «         }|rd}n tQ          |‰!t          |¦  «        z   ¦  «        }| )                    ¦   «         dk    s|r'|dt+          t?          |j         ¦  «        ¦  «        z   z  }|d d…         › d�} ||¦  «         '                    ¦   «         }|rd}n tQ          |‰!t          |¦  «        z   ¦  «        }| )                    ¦   «         dk    s|r'|dt+          t?          |j         ¦  «        ¦  «        z   z  }d}| 4                    ¦   «          '                    ¦   «         }|rd}n tQ          |‰!t          |¦  «        z   ¦  «        }| )                    ¦   «         dk    s|r'|dt+          t?          |j         ¦  «        ¦  «        z   z  }||z   dz   d‰!z  z   |z   |z   dz   d‰!z  z   |z   |z   dz   }�n0|j5        �r|                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         |
s*|                     dt+          |j        ¦  «        z   ¦  «         |                     dt+          | 6                    ¦   «         ¦  «        z   ¦  «         | 6                    ¦   «         t           j7        k    s"| 6                    ¦   «         t           j8        k    rp|                     dt+          | 9                    ¦   «         ¦  «        z   ¦  «         |                     dt+          | :                    ¦   «         ¦  «        z   ¦  «         �n| 6                    ¦   «         t           j;        k    sD| 6                    ¦   «         t           j<        k    s"| 6                    ¦   «         t           j=        k    r¥|                     dt+          | >                    ¦   «         ¦  «        z   ¦  «         |                     dt+          | ?                    ¦   «         ¦  «        z   ¦  «         |                     dt+          | @                    ¦   «         ¦  «        z   ¦  «         |s"tQ          | A                    ¦   «         ‰!¦  «        }�n©|j	        rW|sSd „ Š"d! B                    ˆ!ˆ"fd"„t           jC        jD        jE         F                    |d¦  «        D ¦   «         ¦  «        }d#|› d$�}�nKt          jG        |¦  «        r%d%}t‘          t          jI        |¦  «        ¦  «        }�nddl!m"} |j#        stI          ||¦  «        rƒ|                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         |j        t          j        ¦   «         k    r*|                     dt+          |j        ¦  «        z   ¦  «         |sd}�nr| )                    ¦   «         dk    r¡|j        sš| J                    ¦   «         d&k    r7|                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         |j        t          j        ¦   «         k    r*|                     dt+          |j        ¦  «        z   ¦  «         |sd'}n¹t–          jL        s7|                     dt+          t?          |j         ¦  «        ¦  «        z   ¦  «         |
s*|                     dt+          |j        ¦  «        z   ¦  «         |sH|j+        t           jM        k    r#tQ          | N                    ¦   «         ‰!¦  «        }ntQ          |‰!¦  «        }|j+        t           jM        k    r*|                     d(t+          |j+        ¦  «        z   ¦  «         d }	 | jO        }n# t           $ r d)}Y nw xY w|€J|�Ht          |¦  «        j
        }|d*k    r.| Q                    ¦   «          R                    d+d&¦  «        d,         }|�|                     d-|› d.�¦  «         n| jS        r|                     d/¦  «         | T                    ¦   «         r|                     d0|jU        › �¦  «         |�|                     d1|› �¦  «         t­          ||z   |‰!|j        ¬2¦  «        } tI          |t           j        j        ¦  «        r|sd3| › d�} | S )4NrÑ   znested_tensor(ztensor(ú(ÚcudaÚmpszdevice='ú')ÚxlaÚlazyÚipuÚmtiaÚcpuzsize=r   )Ú
FakeTensorznnz=zdtype=zindices=tensor(ry   z, size=zvalues=tensor(z),
rb   r¸   )ÚrowÚcolumn)rß   rÞ   Úcr   z_indices=tensor(zquantization_scheme=zscale=zzero_point=zaxis=c                 óf   — d                      d„ |                      d¦  «        D ¦   «         ¦  «        S )NrŸ   c              3   ó    K  — | ]	}d |› �V — Œ
dS )z  Nr   r‡   s     r   ú	<genexpr>z4_str_intern.<locals>.indented_str.<locals>.<genexpr>@  s(   è è € Ð GÐ G°  d  Ð GÐ GÐ GÐ GÐ GÐ Gr   )r†   Úsplit)Úsr�   s     r   Úindented_strz!_str_intern.<locals>.indented_str?  s-   € Ø—y’yÐ GÐ G¸¿ºÀ¹¼Ð GÑ GÔ GÑGÔGÐGr   rŠ   c              3   óP   •K  — | ] } ‰t          |¦  «        ‰d z   ¦  «        V — Œ!dS )r=   N)Ústr)r|   r8   r�   ræ   s     €€r   rã   z_str_intern.<locals>.<genexpr>B  sM   øè è € ð ð àð ��S ™VœV V¨a¡ZÑ0Ô0ðð ð ð ð ð r   z[
z
]z_to_functional_tensor(r=   r¤   zlayout=ÚInvalidÚCppFunctionz::r>   z	grad_fn=<ú>zrequires_grad=Trueznames=ztangent=)r½   z
Parameter()Wr1   Ú_CÚ
_functorchÚis_functorch_wrapped_tensorÚ_functorch_wrapper_str_internÚtypeÚTensorÚnnÚ	ParameterÚ	is_nestedr   rJ   ÚautogradÚ
forward_adÚunpack_dualr4   Ú_get_default_devicerÕ   Úcurrent_deviceÚindexr»   rè   r7   Úget_default_dtyper6   ÚcdoubleÚcfloatr.   Úint64r   Ú	is_sparseÚtupleÚshapeÚtorch._subclasses.fake_tensorrÝ   Úis_metaÚ
isinstanceÚ_nnzÚ_indicesÚdetachr¶   rN   Ú_valuesÚlayoutÚ
sparse_csrÚ
sparse_cscÚ
sparse_bsrÚ
sparse_bscÚcrow_indicesÚcol_indicesÚccol_indicesÚrow_indicesÚvaluesÚis_quantizedÚqschemeÚper_tensor_affineÚper_tensor_symmetricÚq_scaleÚq_zero_pointÚper_channel_affineÚper_channel_symmetricÚ per_channel_affine_float_qparamsÚq_per_channel_scalesÚq_per_channel_zero_pointsÚq_per_channel_axisÚ
dequantizer†   ÚopsÚatenÚunbindr   Ú_is_functional_tensorÚreprÚ_from_functional_tensorr    r!   r   ÚstridedÚto_denseÚgrad_fnÚRuntimeErrorÚnameÚrsplitÚrequires_gradr¥   ÚnamesrÂ   )#ÚinprÒ   Úis_plain_tensorÚprefixr¼   Úcustom_contents_providedr¢   rS   ÚtangentÚ_default_complex_dtypeÚhas_default_dtyperÝ   r  Úindices_prefixÚindicesÚindices_strÚvalues_prefixr  Ú
values_strÚcompressed_indices_methodÚplain_indices_methodÚcdimnameÚpdimnameÚcompressed_indices_prefixÚcompressed_indicesÚcompressed_indices_strÚplain_indices_prefixÚplain_indicesÚplain_indices_strÚstrsÚgrad_fn_namer(  Ústring_reprr�   ræ   s#                                    @@r   Ú_str_internrG  Š  s×  øø€ Ý„xÔ×6Ò6°sÑ;Ô;ð SÝ,¨SÀ/ÐRÑRÔRÐRÝ˜3‘i”i¥5¤<Ð/ÐRµ4¸±9´9ÅÄÔ@RÐ3R€OØ
„}ð *Ø!ˆˆØ	ð *Øˆˆå˜‘I”IÔ&Ð)Ð)Ð)ˆÝ�‰[Œ[€FØ€HØ.°dÐ:ÐØð %Ø$ˆ
õ
 ”NÔ-×9Ò9¸#Ñ>Ô>�M€Dˆ'ð 	ŒÔ�EœH×8Ò8Ñ:Ô:Ò:Ð:àŒKÔ Ò&Ð&Ý”
×)Ò)Ñ+Ô+¨t¬{Ô/@Ò@Ð@àŒKÔ Ò%Ð%à�Š˜
¥S¨¬Ñ%5Ô%5Ñ5¸Ñ;Ñ<Ô<Ð<ð
 „{ÔÐ9Ð9Ð9Ø�wŠw�u‰~Œ~ˆõ Ô0Ñ2Ô2µe´lÒBÐB�ŒˆÍÌð ð œ
ÝÔÑ!Ô!ØÝŒÝŒ
ð	'ð Ðð „~ñ m?Ø�Š˜¥#¥e¨D¬JÑ&7Ô&7Ñ"8Ô"8Ñ8Ñ9Ô9Ð9Ø<Ð<Ð<Ð<Ð<Ð<à”,Ð>¥*¨T°:Ñ">Ô">ˆØð 	7Ø�OŠO˜F¥S¨¯ª©¬Ñ%5Ô%5Ñ5Ñ6Ô6Ð6Ø ð 	8Ø�OŠO˜H¥s¨4¬:¡¤Ñ6Ñ7Ô7Ð7Ø'ñ 	Ø.ˆNØ—m’m‘o”o×,Ò,Ñ.Ô.ˆGØð QØ#��å)¨'°6½CÀÑ<OÔ<OÑ3OÑPÔP�Øð E˜'Ÿ-š-™/œ/¨QÒ.Ð.Ø˜y­3­u°W´]Ñ/CÔ/CÑ+DÔ+DÑDÑD�Ø,ˆMØ—\’\‘^”^×*Ò*Ñ,Ô,ˆFØð NØ"�
�
å(¨°½#¸mÑ:LÔ:LÑ1LÑMÔM�
Øð C˜&Ÿ,š,™.œ.¨AÒ-Ð-Ø˜i­#­e°F´LÑ.AÔ.AÑ*BÔ*BÑBÑB�
àØñàñð ˜‘,ñð  ñ	 ð
 ñð ñð ùð 
ŒÝÔÝÔÝÔÝÔð	ð 
ñ 
ð 	=Ð<Ð<Ð<Ð<Ð<à�Š˜¥#¥e¨D¬JÑ&7Ô&7Ñ"8Ô"8Ñ8Ñ9Ô9Ð9Ø”,Ð>¥*¨T°:Ñ">Ô">ˆØð 	7Ø�OŠO˜F¥S¨¯ª©¬Ñ%5Ô%5Ñ5Ñ6Ô6Ð6Ø ð 	8Ø�OŠO˜H¥s¨4¬:¡¤Ñ6Ñ7Ô7Ð7Ø'ñ 5	åÔ ¥5¤<Ô#<½e¼lÔ>VÐ"WÝÔ ¥5¤<Ô#<½e¼lÔ>VÐ"WÝÔ ¥5¤<Ô#<½e¼lÔ>VÐ"WÝÔ ¥5¤<Ô#<½e¼lÔ>VÐ"Wð	?ð
 Œkô?Ñ;Ð%Ð';ð Œ{�uÔ/µÔ1AÐBÐBÐBØ%4Ñ"�˜(˜(à%4Ñ"�˜(Ø(J¨H°R°a°R¬LÐ(JÐ(JÐ(JÐ%Ø!:Ð!:¸4Ñ!@Ô!@×!GÒ!GÑ!IÔ!IÐØð Ø).Ð&Ð&å)4Ø&¨µÐ5NÑ1OÔ1OÑ(Oñ*ô *Ð&ð "×'Ò'Ñ)Ô)¨QÒ.Ð.°'Ð.Ø&¨)µcÝÐ,Ô2Ñ3Ô3ñ7ô 7ñ +ñ Ð&ð '/¨r°¨r¤lÐ#DÐ#DÐ#DÐ Ø0Ð0°Ñ6Ô6×=Ò=Ñ?Ô?ˆMØð Ø$)Ð!Ð!å$/Ø! 6­CÐ0DÑ,EÔ,EÑ#Eñ%ô %Ð!ð ×"Ò"Ñ$Ô$¨Ò)Ð)¨WÐ)Ø! YµµU¸=Ô;NÑ5OÔ5OÑ1PÔ1PÑ%PÑPÐ!Ø,ˆMØ—[’[‘]”]×)Ò)Ñ+Ô+ˆFØð NØ"�
�
å(¨°½#¸mÑ:LÔ:LÑ1LÑMÔM�
Ø�|Š|‰~Œ~ Ò"Ð" gÐ"Ø˜i­#­e°F´LÑ.AÔ.AÑ*BÔ*BÑBÑB�
à)Ø(ñ)àñð ˜‘,ñð 'ñ	'ð
 $ñ$ð ñð ˜‘,ñð  ñ ð ñ	ð ñ
ð ùð 
Ô	ñ F?Ø�Š˜¥#¥e¨D¬JÑ&7Ô&7Ñ"8Ô"8Ñ8Ñ9Ô9Ð9Ø ð 	8Ø�OŠO˜H¥s¨4¬:¡¤Ñ6Ñ7Ô7Ð7Ø�ŠÐ.µ°T·\²\±^´^Ñ1DÔ1DÑDÑEÔEÐEà�LŠL‰NŒN�eÔ5Ò5Ð5Ø�|Š|‰~Œ~¥Ô!;Ò;Ð;à�OŠO˜H¥s¨4¯<ª<©>¬>Ñ':Ô':Ñ:Ñ;Ô;Ð;Ø�OŠO˜M­C°×0AÒ0AÑ0CÔ0CÑ,DÔ,DÑDÑEÔEÐEÑEà�LŠL‰NŒN�eÔ6Ò6Ð6Ø�|Š|‰~Œ~¥Ô!<Ò<Ð<Ø�|Š|‰~Œ~¥Ô!GÒGÐGà�OŠO˜H¥s¨4×+DÒ+DÑ+FÔ+FÑ'GÔ'GÑGÑHÔHÐHØ�OŠO˜M­C°×0NÒ0NÑ0PÔ0PÑ,QÔ,QÑQÑRÔRÐRØ�OŠO˜G¥c¨$×*AÒ*AÑ*CÔ*CÑ&DÔ&DÑDÑEÔEÐEØ'ð 	@Ý$ T§_¢_Ñ%6Ô%6¸Ñ?Ô?ˆJùØ	Œð 1?Ø'ð 		)ðHð Hð Hð —:’:ð ð ð ð ð åœœÔ.×2Ò2°4¸Ñ;Ô;ðñ ô ñ ô ˆDð )˜t˜˜˜ˆJùÝ	Ô	$ TÑ	*Ô	*ð &?Ø)ˆÝ�%Ô7¸Ñ=Ô=Ñ>Ô>ˆ
‰
ð 	=Ð<Ð<Ð<Ð<Ð<àŒ<ð 	?�: d¨JÑ7Ô7ð 	?Ø�OŠO˜G¥c­%°´
Ñ*;Ô*;Ñ&<Ô&<Ñ<Ñ=Ô=Ð=ØŒz�UÔ4Ñ6Ô6Ò6Ð6Ø—’ ­3¨t¬z©?¬?Ñ :Ñ;Ô;Ð;ð ,ð #Ø"�
ùà�zŠz‰|Œ|˜qÒ Ð ¨¬Ð à—8’8‘:”: ’?�?Ø—O’O G­cµ%¸¼
Ñ2CÔ2CÑ.DÔ.DÑ$DÑEÔEÐEð ”:¥Ô!8Ñ!:Ô!:Ò:Ð:Ø—O’O H­s°4´:©¬Ñ$>Ñ?Ô?Ð?Ø/ð &Ø!%�Jøå!Ô+ð FØ—O’O G­cµ%¸¼
Ñ2CÔ2CÑ.DÔ.DÑ$DÑEÔEÐEà(ð @Ø—O’O H­s°4´:©¬Ñ$>Ñ?Ô?Ð?à/ð ?Ø”{¥e¤mÒ3Ð3Ý%0°·²±´À&Ñ%IÔ%I˜
˜
å%0°°vÑ%>Ô%>˜
à„{•e”mÒ#Ð#Ø�Š˜	¥C¨¬Ñ$4Ô$4Ñ4Ñ5Ô5Ð5ð €Lð!Ø”+ˆˆøÝð !ð !ð !ð !ˆˆˆð	!øøøð Ð Ð 3Ý˜G‘}”}Ô-ˆØ˜=Ò(Ð(Ø"Ÿ<š<™>œ>×0Ò0°°qÑ9Ô9¸"Ô=ˆLàÐØ�ŠÐ3 LÐ3Ð3Ð3Ñ4Ô4Ð4Ð4Ø	Ô	ð .Ø�ŠÐ,Ñ-Ô-Ð-à‡~‚~ÑÔð /Ø�ŠÐ- ¤Ð-Ð-Ñ.Ô.Ð.àÐØ�ŠÐ, 7Ð,Ð,Ñ-Ô-Ð-åØ�ÑØØØ”nð	ñ ô €Kõ �$�œÔ*Ñ+Ô+ð 2°Oð 2Ø1 ;Ð1Ð1Ð1ˆàÐs   ô*t2 ô2uõ uc                óä  — t           j        j                             | ¦  «        }|dk    sJ ‚t           j        j                             | ¦  «        rt          j        | ¦  «         t           j        j                             | ¦  «        }t          |¦  «        }t          j	        |d¦  «        }t           j        j         
                    | ¦  «        r8t           j        j                             | ¦  «        }|dk    sJ ‚d|› d|› d|› d�S t           j        j                             | ¦  «        r	d|› d|› d�S t           j        j                             | ¦  «        r	d|› d	|› d
�S t          d¦  «        ‚)Nr>   z    zBatchedTensor(lvl=z, bdim=z	, value=
z
)zGradTrackingTensor(lvl=zFunctionalTensor(lvl=z
, value=\
r¸   z8We don't know how to print this, please file us an issue)r1   rì   rí   Úmaybe_get_levelÚis_functionaltensorÚ_syncÚget_unwrappedr$  Útextwrapr�   Úis_batchedtensorÚmaybe_get_bdimÚis_gradtrackingtensorÚ
ValueError)rT   rÒ   ÚlevelrV   Ú
value_reprÚindented_value_reprÚbdims          r   rï   rï   ž  s|  € ÝŒHÔ×/Ò/°Ñ7Ô7€EØ�BŠ;ˆ;ˆ;ˆ;å„xÔ×.Ò.¨vÑ6Ô6ð õ 	Œ�FÑÔÐåŒHÔ×-Ò-¨fÑ5Ô5€EÝ�e‘”€Jå"œ/¨*°gÑ>Ô>ÐÝ„xÔ×+Ò+¨FÑ3Ô3ð 
ÝŒxÔ"×1Ò1°&Ñ9Ô9ˆØ�rŠzˆzˆzˆzð ð ð ¨tð ð Ø"ðð ð ð	
õ
 „xÔ×0Ò0°Ñ8Ô8ð 
àW eÐWÐWÐ;NÐWÐWÐWð	
õ „xÔ×.Ò.¨vÑ6Ô6ð HØG uÐGÐG¸*ÐGÐGÐGÐGå
ÐOÑ
PÔ
PÐPr   c                óJ  — t          j        ¦   «         5  t           j        j                             ¦   «         5  t           j                             ¦   «         }t          | |¬¦  «        cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÑ   )r1   rG   ÚutilsÚ_python_dispatchÚ_disable_current_modesrì   Ú_DisableFuncTorchrG  )rS   rÒ   Úguards      r   Ú_strr\  ½  sU  € Ý	Œ‰Œð Bð B�%œ+Ô6×MÒMÑOÔOð Bð BÝ”×*Ò*Ñ,Ô,ˆÝ˜4°ÐAÑAÔAðBð Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs4   ”$B¸/B Á'BÂ B	ÂBÂB	ÂBÂBÂB)NNNNNNr^   )Ú
contextlibr&   rc   rM  Útypingr   r   r   r1   r   Ú	dataclassr   r!   r#   rè   r(   Úcontextmanagerr,   r9   r;   rl   r•   rš   r¶   rÂ   r²   rG  rï   r\  r   r   r   ú<module>ra     sL  ðà Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à €€€Ø Ð Ð Ð Ð Ð ð Ôð$ð $ð $ð $ð $ñ $ô $ñ Ôð$ð ÐÑÔ€
ð
 ØØØØØðF#ð F#ð F#ð F#ðR*˜$˜s C˜xœ.ð *ð *ð *ð *ð Ôð'ð 'ñ Ôð'ð	ð 	ð 	ðS7ð S7ð S7ð S7ð S7ñ S7ô S7ð S7ðl
.ð 
.ð 
.ð 
.ð'Eð 'Eð 'Eð 'EðZ""ð ""ð ""ð ""ðJ,Nð ,Nð ,Nð^ ð  ð  ð Cð Cð Cð* )-ð Qð Qð Qð Qð Qðh >Bð Qð Qð Qð Qð Qð> #'ð Bð Bð Bð Bð Bð Bð Br   