§
    ‚ŠtjPŽ  ã                   óü  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZmZmZmZ dd
lm Z m!Z!  ej"        e#¦  «        Z$de%de%fd„Z& ej'        ¦   «         Z(d„ Z)de%ej*        z  ddfd„Z+de%ej*        z  de,e%         fd„Z-de%ej*        z  de,e%         fd„Z.de%ej*        z  de,e%         fd„Z/de%ej*        z  de,e%         fd„Z0ddœde%de%ej*        z  de1de2fd„Z3de%ej*        z  de%ej*        z  de%fd„Z4	 	 	 	 	 	 	 	 d4de%ej*        z  de%de%ej*        z  dz  d e1d!e5e%e%f         dz  d"e1e%z  dz  d#e%dz  d$e1d%e%dz  d&e%dz  de%fd'„Z6	 	 	 	 	 	 	 	 d4d(e%de%ej*        z  de%ej*        z  dz  d e1d!e5e%e%f         dz  d"e1e%z  dz  d#e%dz  d$e1d%e%dz  d)e%dz  de2fd*„Z7d5d+ed,e%ej*        z  d-e5dz  de,e%         fd.„Z8d/„ Z9d0Z:	 d6d1„Z;d7d3„Z<dS )8z3Utilities to dynamically load objects from the Hub.é    N)ÚPath)Ú
ModuleType)ÚAny)Úis_offline_modeÚtry_to_load_from_cache)Úversioné   )ÚHF_MODULES_CACHEÚ TRANSFORMERS_DYNAMIC_MODULE_NAMEÚcached_fileÚextract_commit_hashÚlogging)ÚVersionComparisonÚsplit_package_versionÚnameÚreturnc                 ór  — |                       dd¦  «                              dd¦  «        }|r|d                              ¦   «         rd|› �}t          j        |¦  «        r"t                               d|› d| › d	�¦  «         n5|                     ¦   «         s!t                               d|› d| › d
�¦  «         |S )aØ  
    Tries to sanitize a module name so that it can be used as a Python module.

    The following transformations are applied:

    1. Replace `.` in module names with `_dot_`.
    2. Replace `-` in module names with `_hyphen_`.
    3. If the module name starts with a digit, prepend it with `_`.
    4. Warn if the sanitized name is a Python reserved keyword or not a valid identifier.

    If the input name is already a valid identifier, it is returned unchanged.
    ú.Ú_dot_ú-Ú_hyphen_r   Ú_zThe module name z (originally z\) is a reserved keyword in Python. Please rename the original module to avoid import issues.z]) is not a valid Python identifier. Please rename the original module to avoid import issues.)ÚreplaceÚisdigitÚkeywordÚ	iskeywordÚloggerÚwarningÚisidentifier)r   Únew_names     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/dynamic_module_utils.pyÚ_sanitize_module_namer"   1   s  € ð" �|Š|˜C Ñ)Ô)×1Ò1°#°zÑBÔB€HØð "�H˜Q”K×'Ò'Ñ)Ô)ð "Ø!�x�>�>ˆÝÔ˜Ñ"Ô"ð 	
Ý�ŠðH˜xð Hð H°dð Hð Hð Hñ	
ô 	
ð 	
ð 	
ð ×"Ò"Ñ$Ô$ð 
Ý�ŠðH˜xð Hð H°dð Hð Hð Hñ	
ô 	
ð 	
ð €Oó    c                  óV  — t           t          j        v rdS t          j                             t           ¦  «         t	          j        t           d¬¦  «         t          t           ¦  «        dz  } |                      ¦   «         s)|                      ¦   «          t          j
        ¦   «          dS dS )z_
    Creates the cache directory for modules with an init, and adds it to the Python path.
    NT©Úexist_okú__init__.py)r
   ÚsysÚpathÚappendÚosÚmakedirsr   ÚexistsÚtouchÚ	importlibÚinvalidate_caches)Ú	init_paths    r!   Úinit_hf_modulesr2   U   s—   € õ
 �3œ8Ð#Ð#Øˆå„H‡O‚OÕ$Ñ%Ô%Ð%Ý„KÕ ¨4Ð0Ñ0Ô0Ð0ÝÕ%Ñ&Ô&¨Ñ6€IØ×ÒÑÔð &Ø�ŠÑÔÐÝÔ#Ñ%Ô%Ð%Ð%Ð%ð&ð &r#   c                 ó~  — t          ¦   «          t          t          ¦  «        | z                       ¦   «         }|j                             ¦   «         st          |j        ¦  «         t          j        |d¬¦  «         |dz  }|                     ¦   «         s)| 	                    ¦   «          t          j        ¦   «          dS dS )z®
    Creates a dynamic module in the cache directory for modules.

    Args:
        name (`str` or `os.PathLike`):
            The name of the dynamic module to create.
    Tr%   r'   N)r2   r   r
   ÚresolveÚparentr-   Úcreate_dynamic_moduler+   r,   r.   r/   r0   )r   Údynamic_module_pathr1   s      r!   r6   r6   e   s¾   € õ ÑÔÐÝÕ 0Ñ1Ô1°DÑ8×AÒAÑCÔCÐàÔ%×,Ò,Ñ.Ô.ð :ÝÐ1Ô8Ñ9Ô9Ð9Ý„KÐ#¨dÐ3Ñ3Ô3Ð3Ø# mÑ3€IØ×ÒÑÔð &Ø�ŠÑÔÐõ 	Ô#Ñ%Ô%Ð%Ð%Ð%ð	&ð &r#   Úmodule_filec                 ó>  — t          | d¬¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        d|t          j        ¬¦  «        }|t          j        d|t          j        ¬¦  «        z  }t          t          |¦  «        ¦  «        S )zô
    Get the list of modules that are relatively imported in a module file.

    Args:
        module_file (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of relative imports in the module.
    úutf-8©ÚencodingNz^\s*import\s+\.(\S+)\s*$)Úflagsz^\s*from\s+\.(\S+)\s+import)ÚopenÚreadÚreÚfindallÚ	MULTILINEÚlistÚset)r8   ÚfÚcontentÚrelative_importss       r!   Úget_relative_importsrH   {   sÊ   € õ 
ˆk GÐ	,Ñ	,Ô	,ð °Ø—&’&‘(”(ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”zÐ"=¸wÍbÌlÐ[Ñ[Ô[Ðà�œ
Ð#AÀ7ÕRTÔR^Ð_Ñ_Ô_Ñ_Ðå•Ð$Ñ%Ô%Ñ&Ô&Ð&s   ’3³7º7c                 ó"  ‡‡— d}| g}g Š|sƒg }|D ]$}|                      t          |¦  «        ¦  «         Œ%t          | ¦  «        j        Šˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t	          |¦  «        dk    }‰                      |¦  «         |¯ƒ‰S )aÛ  
    Get the list of all files that are needed for a given module. Note that this function recurses through the relative
    imports (if a imports b and b imports c, it will return module files for b and c).

    Args:
        module_file (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of all relative imports a given module needs (recursively), which will give us the list
        of module files a given module needs.
    Fc                 ó:   •— g | ]}t          ‰|z  ¦  «        › d �‘ŒS )ú.py)Ústr)Ú.0ÚmÚmodule_paths     €r!   ú
<listcomp>z-get_relative_import_files.<locals>.<listcomp>§   s.   ø€ ÐNÐNÐN¸Q�s ;°¡?Ñ3Ô3Ð8Ð8Ð8ÐNÐNÐNr#   c                 ó   •— g | ]}|‰v¯|‘Œ	S © rR   )rM   rE   Úall_relative_importss     €r!   rP   z-get_relative_import_files.<locals>.<listcomp>¨   s$   ø€ ÐWÐWÐW ¸ÐBVÐ9VÐ9V˜!Ð9VÐ9VÐ9Vr#   r   )ÚextendrH   r   r5   Úlen)r8   Ú	no_changeÚfiles_to_checkÚnew_importsrE   Únew_import_filesrS   rO   s         @@r!   Úget_relative_import_filesrZ   �   sÒ   øø€ ð €IØ!�]€NØÐð ð 
4ØˆØð 	8ð 	8ˆAØ×ÒÕ3°AÑ6Ô6Ñ7Ô7Ð7Ð7å˜;Ñ'Ô'Ô.ˆØNÐNÐNÐNÀ+ÐNÑNÔNÐØWÐWÐWÐWÐ%5ÐWÑWÔWˆå˜Ñ'Ô'¨1Ò,ˆ	Ø×#Ò# NÑ3Ô3Ð3ð ð 
4ð  Ðr#   Úfilenamec                 ó  ‡‡‡— t          | d¬¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          ¦   «         ŠddlŠˆˆˆfd„Št	          j        |¦  «        } ‰|¦  «         t          ‰¦  «        S )a  
    Extracts all the libraries (not relative imports this time) that are imported in a file.

    Args:
        filename (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of all packages required to use the input module.
    r:   r;   Nr   c                 ób  •— t          | t          j        ¦  «        rd S t          | t          j        ¦  «        r–| j        }t          j        |¦  «        D ]y}t          |t          j        ¦  «        r]t          |j        dd¦  «        }| 	                    d¦  «        r| 
                    d¦  «        st          ‰	j        j        |¦  «        r d S Œzn¿t          | t          j        ¦  «        rB| j        D ]9}|j                             d¦  «        d         }|r‰                     |¦  «         Œ:nct          | t          j        ¦  «        rI| j        dk    r>| j        r7| j                             d¦  «        d         }|r‰                     |¦  «         t          j        | ¦  «        D ]} ‰|¦  «         Œd S )NÚidÚ Ú	availableÚis_flash_attnr   r   )Ú
isinstanceÚastÚTryÚIfÚtestÚwalkÚCallÚgetattrÚfuncÚendswithÚ
startswithÚhasattrÚutilsÚimport_utilsÚImportÚnamesr   ÚsplitÚaddÚ
ImportFromÚlevelÚmoduleÚiter_child_nodes)
Únoderf   Úcondition_nodeÚcheck_functionÚaliasÚ
top_moduleÚchildÚimported_modulesÚrecursive_look_for_importsÚtransformerss
          €€€r!   r   z/get_imports.<locals>.recursive_look_for_importsÀ   sÅ  ø€ Ý�d�CœGÑ$Ô$ð 	5ØˆFÝ˜�cœfÑ%Ô%ð 	5Ø”9ˆDÝ"%¤(¨4¡.¤.ð 
ð 
�Ý˜n­c¬hÑ7Ô7ð 	Ý%,¨^Ô-@À$ÈÑ%KÔ%K�Nà&×/Ò/°Ñ<Ô<ðà*×5Ò5°oÑFÔFðõ # <Ô#5Ô#BÀNÑSÔSðð ˜˜øð
õ ˜�cœjÑ)Ô)ð 	5àœð 5ð 5�Ø"œZ×-Ò-¨cÑ2Ô2°1Ô5�
Øð 5Ø$×(Ò(¨Ñ4Ô4Ð4øð5õ ˜�cœnÑ-Ô-ð 	5àŒz˜QŠˆ 4¤;ˆØ!œ[×.Ò.¨sÑ3Ô3°AÔ6�
Øð 5Ø$×(Ò(¨Ñ4Ô4Ð4õ Ô)¨$Ñ/Ô/ð 	.ð 	.ˆEØ&Ð& uÑ-Ô-Ð-Ð-ð	.ð 	.r#   )r>   r?   rD   Útransformers.utilsrc   ÚparseÚsorted)r[   rE   rF   Útreer~   r   r€   s       @@@r!   Úget_importsr…   °   sä   øøø€ õ 
ˆh Ð	)Ñ	)Ô	)ð ¨QØ—&’&‘(”(ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å‘u”uÐàÐÐÐð.ð .ð .ð .ð .ð .ð .õB Œ9�WÑÔ€DØÐ˜tÑ$Ô$Ð$åÐ"Ñ#Ô#Ð#s   •6¶:½:c                 óÒ  — t          | ¦  «        }g }|D ]v}	 t          j        |¦  «         Œ# t          $ rR}t                               d|› d|› �¦  «         dt          |¦  «        v r|                     |¦  «         n‚ Y d}~Œod}~ww xY wt          |¦  «        dk    r<t          dd 	                    |¦  «        › dd	 	                    |¦  «        › d
�¦  «        ‚t          | ¦  «        S )a.  
    Check if the current Python environment contains all the libraries that are imported in a file. Will raise if a
    library is missing.

    Args:
        filename (`str` or `os.PathLike`): The module file to check.

    Returns:
        `list[str]`: The list of relative imports in the file.
    z&Encountered exception while importing z: zNo module namedNr   z\This modeling file requires the following packages that were not found in your environment: z, z. Run `pip install ú ú`)r…   r/   Úimport_moduleÚImportErrorr   r   rL   r*   rU   ÚjoinrH   )r[   ÚimportsÚmissing_packagesÚimpÚ	exceptions        r!   Úcheck_importsr�   ç   s;  € õ ˜(Ñ#Ô#€GØÐØð ð ˆð
	ÝÔ# CÑ(Ô(Ð(Ð(øÝð 	ð 	ð 	Ý�NŠNÐVÀCÐVÐVÈ9ÐVÐVÑWÔWÐWð !¥C¨	¡N¤NÐ2Ð2Ø ×'Ò'¨Ñ,Ô,Ð,Ð,àð -Ð,Ð,Ð,Ð,øøøøð	øøøõ ÐÑÔ˜qÒ Ð Ýð]Ø�yŠyÐ)Ñ*Ô*ð]ð ]Ø?B¿xºxÐHXÑ?YÔ?Yð]ð ]ð ]ñ
ô 
ð 	
õ
   Ñ)Ô)Ð)s   —,¬
B¶ABÂBF©Úforce_reloadÚ
class_namerO   r’   c          
      óì  — t           j                             |¦  «        }|                     d¦  «        }|                     t           j        j        d¦  «        }t          t          ¦  «        |z  }t          5  |r3t          j
                             |d¦  «         t          j        ¦   «          t          j
                             |¦  «        }t          j                             ||¬¦  «        }|gt#          t%          t          t'          |¦  «        ¦  «        ¦  «        z   }t)          j        d                     d„ |D ¦   «         ¦  «        ¦  «                             ¦   «         }|€/t          j                             |¦  «        }	|	t          j
        |<   n|}	t3          |	dd¦  «        |k    r!|j                             |	¦  «         ||	_        t3          |	| ¦  «        cddd¦  «         S # 1 swxY w Y   dS )	a  
    Import a module on the cache directory for modules and extract a class from it.

    Args:
        class_name (`str`): The name of the class to import.
        module_path (`str` or `os.PathLike`): The path to the module to import.
        force_reload (`bool`, *optional*, defaults to `False`):
            Whether to reload the dynamic module from file if it already exists in `sys.modules`.
            Otherwise, the module is only reloaded if the file has changed.

    Returns:
        `typing.Type`: The class looked for.
    rK   r   N)Úlocationr#   c              3   ó^   K  — | ](}t          |¦  «        |                     ¦   «         z   V — Œ)d S ©N)ÚbytesÚ
read_bytes©rM   rE   s     r!   ú	<genexpr>z&get_class_in_module.<locals>.<genexpr>*  s6   è è € Ð2cÐ2cÐQRµ5¸±8´8¸a¿lºl¹n¼nÑ3LÐ2cÐ2cÐ2cÐ2cÐ2cÐ2cr#   Ú__transformers_module_hash__r_   )r+   r)   ÚnormpathÚremovesuffixr   Úsepr   r
   Ú_HF_REMOTE_CODE_LOCKr(   ÚmodulesÚpopr/   r0   ÚgetÚutilÚspec_from_file_locationrƒ   ÚmaprZ   ÚhashlibÚsha256r‹   Ú	hexdigestÚmodule_from_specri   ÚloaderÚexec_modulerœ   )
r“   rO   r’   r   r8   Úcached_moduleÚmodule_specÚmodule_filesÚmodule_hashrv   s
             r!   Úget_class_in_moduler±   
  sð  € õ& Œ7×Ò˜KÑ(Ô(€DØ×Ò˜UÑ#Ô#€DØ�<Š<�œœ SÑ)Ô)€DÝÕ-Ñ.Ô.°Ñ<€KÝ	ð +ð +Øð 	*ÝŒK�OŠO˜D $Ñ'Ô'Ð'ÝÔ'Ñ)Ô)Ð)Ý+.¬;¯?ª?¸4Ñ+@Ô+@ˆÝ”n×<Ò<¸TÈKÐ<ÑXÔXˆð %0 =µ6½#½dÕD]Ð^iÑDjÔDjÑ:kÔ:kÑ3lÔ3lÑ#lˆÝ"œ>¨#¯(ª(Ð2cÐ2cÐVbÐ2cÑ2cÔ2cÑ*cÔ*cÑdÔd×nÒnÑpÔpˆð Ð Ý”^×4Ò4°[ÑAÔAˆFà &�CŒK˜ÑÐà"ˆFå�6Ð9¸2Ñ>Ô>À+ÒMÐMØÔ×*Ò*¨6Ñ2Ô2Ð2Ø2=ˆFÔ/Ý�v˜zÑ*Ô*ð-+ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   Á8E$G)Ç)G-Ç0G-Úpretrained_model_name_or_pathÚresolved_module_filec                 óV  ‡	— t          | ¦  «                             ¦   «         Š	t          |¦  «        }dt           dt          fˆ	fd„} ||¦  «        |fg}t          |¦  «        D ]1}t          |¦  «        }|                      ||¦  «        |f¦  «         Œ2t          j        ¦   «         }t          |d„ ¬¦  «        D ]T\  }}|                     | 	                    d¦  «        ¦  «         |                     | 
                    ¦   «         ¦  «         ŒU|                     ¦   «         dd…         S )	zn
    Computes a stable hash from the bytes of the local source file and its relative-import source files.
    Úsource_file_pathr   c                 óÞ   •— | j                              ¦   «         | j        z  }	 |                     ‰¦  «                             ¦   «         S # t
          $ r |                     ¦   «         cY S w xY wr—   )r5   r4   r   Úrelative_toÚas_posixÚ
ValueError)rµ   Úcanonical_pathÚ
model_paths     €r!   Ú_resolve_relative_source_pathzG_compute_local_source_files_hash.<locals>._resolve_relative_source_pathD  sx   ø€ Ø)Ô0×8Ò8Ñ:Ô:Ð=MÔ=RÑRˆð	-Ø!×-Ò-¨jÑ9Ô9×BÒBÑDÔDÐDøÝð 	-ð 	-ð 	-Ø!×*Ò*Ñ,Ô,Ð,Ð,Ð,ð	-øøøs   ¤&A ÁA,Á+A,c                 ó   — | d         S )Nr   rR   )Úentrys    r!   ú<lambda>z2_compute_local_source_files_hash.<locals>.<lambda>S  s   € ÈEÐRSÌH€ r#   )Úkeyr:   Né   )r   r4   rL   rZ   r*   r§   r¨   rƒ   ÚupdateÚencoder™   r©   )
r²   r³   r¼   Úfiles_to_hashÚsource_filerµ   Úsource_files_hashÚrelative_pathÚ	file_pathr»   s
            @r!   Ú _compute_local_source_files_hashrÉ   :  s_  ø€ õ Ð3Ñ4Ô4×<Ò<Ñ>Ô>€JÝÐ 4Ñ5Ô5Ðð-½ð -Åð -ð -ð -ð -ð -ð -ð 
'Ð	&Ð';Ñ	<Ô	<Ð>RÐSð€Mõ 1Ð1EÑFÔFð bð bˆÝ Ñ,Ô,ÐØ×ÒÐ;Ð;Ð<LÑMÔMÐO_Ð`ÑaÔaÐaÐaåœÑ(Ô(ÐÝ$*¨=Ð>TÐ>TÐ$UÑ$UÔ$Uð 9ð 9Ñ ˆ�yØ× Ò  ×!5Ò!5°gÑ!>Ô!>Ñ?Ô?Ð?Ø× Ò  ×!5Ò!5Ñ!7Ô!7Ñ8Ô8Ð8Ð8à×&Ò&Ñ(Ô(¨¨"¨Ô-Ð-r#   Ú	cache_dirÚforce_downloadÚproxiesÚtokenÚrevisionÚlocal_files_onlyÚ	repo_typeÚ_commit_hashc
                 óâ	  — t          ¦   «         r|st                               d¦  «         d}t          | ¦  «        } t          j                             | ¦  «        }d}|s^t          j        j                             t          t          |                      d¦  «        ¦  «        ¦  «        }t          | |||	|¬¦  «        }g }	 t          | |||||||||	¬¦
  «
        }|s||k    r|                     |¦  «         n0# t          $ r# t                               d|› d| › d	�¦  «         ‚ w xY wt!          |¦  «        }|r„t          t          j                             t          j                             | ¦  «        ¦  «        ¦  «        }t'          | |¦  «        }|r't          j        j                             ||g¦  «        }n|}t(          t          j        j        z   |z   }t+          |¦  «         t-          t.          ¦  «        |z  }|�rM||z                       ¦   «         r%t3          j        |t          ||z  ¦  «        ¦  «        sJ||z  j                             dd¬
¦  «         t;          j        |||z  ¦  «         t?          j         ¦   «          tC          |¦  «        D ]µ}	 t-          |¦  «         "                    | ¦  «        }||z  }n# tF          $ r Y Œ7w xY w|                     ¦   «         r"t3          j        |t          |¦  «        ¦  «        sD|j                             dd¬
¦  «         t;          j        ||¦  «         t?          j         ¦   «          Œ¶�ntI          ||	¦  «        }||z  }|t          j        j        z   |z   }t          j                             ||¦  «        }t+          t-          |¦  «        j        ¦  «         ||z                       ¦   «         s+t;          j        |||z  ¦  «         t?          j         ¦   «          |D ]l}||z  j        |› d�z                       ¦   «         sHtK          | t-          |¦  «        j        |z  › d�|||||||¬¦	  «	         |                     |› d�¦  «         ŒmtM          |¦  «        dk    rR|€Pd                     d„ |D ¦   «         ¦  «        }|€dn|› d�}d|› | › �}t           '                    d|› d|› d�¦  «         t          j                             ||¦  «        S )a	  
    Prepares Downloads a module from a local folder or a distant repo and returns its path inside the cached
    Transformers module.

    Args:
        pretrained_model_name_or_path (`str` or `os.PathLike`):
            This can be either:

            - a string, the *model id* of a pretrained model configuration hosted inside a model repo on
              huggingface.co.
            - a path to a *directory* containing a configuration file saved using the
              [`~PreTrainedTokenizer.save_pretrained`] method, e.g., `./my_model_directory/`.

        module_file (`str`):
            The name of the module file containing the class to look for.
        cache_dir (`str` or `os.PathLike`, *optional*):
            Path to a directory in which a downloaded pretrained model configuration should be cached if the standard
            cache should not be used.
        force_download (`bool`, *optional*, defaults to `False`):
            Whether or not to force to (re-)download the configuration files and override the cached versions if they
            exist.
        proxies (`dict[str, str]`, *optional*):
            A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
            'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
        token (`str` or *bool*, *optional*):
            The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
            when running `hf auth login` (stored in `~/.huggingface`).
        revision (`str`, *optional*, defaults to `"main"`):
            The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
            git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
            identifier allowed by git.
        local_files_only (`bool`, *optional*, defaults to `False`):
            If `True`, will only try to load the tokenizer configuration from local files.
        repo_type (`str`, *optional*):
            Specify the repo type (useful when downloading from a space for instance).

    <Tip>

    Passing `token=True` is required when you want to use a private model.

    </Tip>

    Returns:
        `str`: The path to the module inside the cache.
    z+Offline mode: forcing local_files_only=TrueTNú/)rÊ   rÎ   rÐ   )rÊ   rË   rÌ   rÏ   rÍ   rÎ   rÐ   rÑ   zCould not locate the z inside r   )Úparentsr&   rK   )rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÑ   r   ú
c                 ó   — g | ]}d |› �‘ŒS )z- rR   rš   s     r!   rP   z*get_cached_module_file.<locals>.<listcomp>ø  s   € Ð;Ð;Ð;¨A˜x A˜x˜xÐ;Ð;Ð;r#   r_   zs/zhttps://huggingface.co/z9A new version of the following files was downloaded from z:
z–
. Make sure to double-check they do not contain any added malicious code. To avoid downloading new versions of the code file, you can pin a revision.)(r   r   ÚinforL   r+   r)   ÚisdirrŸ   r‹   r¦   r"   rr   r   r   r*   ÚOSErrorr�   Úbasenamer�   rÉ   r   r6   r   r
   r-   ÚfilecmpÚcmpr5   ÚmkdirÚshutilÚcopyfiler/   r0   rZ   r·   r¹   r   Úget_cached_module_filerU   r   )r²   r8   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   Údeprecated_kwargsÚis_localr­   Ú	submoduleÚ	new_filesr³   Úmodules_neededÚlocal_model_nameÚlocal_source_files_hashÚfull_submoduleÚsubmodule_pathrÅ   Úmodule_neededÚtarget_pathÚcommit_hashÚfull_submodule_module_file_pathÚrepo_type_strÚurls                               r!   rà   rà   Z  sˆ  € õt ÑÔð  Ð!1ð  Ý�ŠÐAÑBÔBÐBØÐõ %(Ð(EÑ$FÔ$FÐ!ÝŒw�}Š}Ð:Ñ;Ô;€HØ€MØð 
Ý”G”K×$Ò$¥SÕ)>Ð@]×@cÒ@cÐdgÑ@hÔ@hÑ%iÔ%iÑjÔjˆ	Ý.Ø)¨;À)ÐVbÐnwð
ñ 
ô 
ˆð €Iðå*Ø)ØØØ)ØØ-ØØØØ%ð 
ñ  
ô  
Ðð ð 	*˜MÐ-AÒAÐAØ×Ò˜[Ñ)Ô)Ð)øøåð ð ð Ý�ŠÐa¨KÐaÐaÐA^ÐaÐaÐaÑbÔbÐbØðøøøõ
 #Ð#7Ñ8Ô8€NØð 0Ý0µ´×1AÒ1AÅ"Ä'×BRÒBRÐSpÑBqÔBqÑ1rÔ1rÑsÔsÐÝ"BÐC`ÐbvÑ"wÔ"wÐØð 	0Ýœœ×(Ò(Ð*:Ð<SÐ)TÑUÔUˆIˆIà/ˆIõ 6½¼¼ÑCÀiÑO€NÝ˜.Ñ)Ô)Ð)ÝÕ*Ñ+Ô+¨nÑ<€NØñ /8ð  Ñ,×4Ò4Ñ6Ô6ð 	*½g¼kØ ¥# n°{Ñ&BÑ"CÔ"Cñ?
ô ?
ð 	*ð ˜kÑ)Ô1×7Ò7ÀÈtÐ7ÑTÔTÐTÝŒOÐ0°.À;Ñ2NÑOÔOÐOÝÔ'Ñ)Ô)Ð)Ý4Ð5IÑJÔJð 		.ð 		.ˆKðÝ $ [Ñ 1Ô 1× =Ò =Ð>[Ñ \Ô \�Ø,¨}Ñ<��øÝð ð ð Ø�ðøøøà×%Ò%Ñ'Ô'ð .­w¬{¸;ÍÈKÑHXÔHXÑ/YÔ/Yð .ØÔ"×(Ò(°ÀÐ(ÑEÔEÐEÝ” ¨[Ñ9Ô9Ð9ÝÔ+Ñ-Ô-Ð-øñ		.õ *Ð*>ÀÑMÔMˆð (¨+Ñ5ˆØ'­"¬'¬+Ñ5¸ÑCˆÝ*,¬'¯,ª,°~À{Ñ*SÔ*SÐ'Ý�dÐ#BÑCÔCÔJÑKÔKÐKà Ñ,×4Ò4Ñ6Ô6ð 	*ÝŒOÐ0°.À;Ñ2NÑOÔOÐOÝÔ'Ñ)Ô)Ð)à+ð 	8ð 	8ˆMØ# kÑ1Ô9¸}Ð<QÐ<QÐ<QÑQ×YÒYÑ[Ô[ð 8Ý&Ø1Ý˜KÑ(Ô(Ô/°-Ñ?ÐDÐDÐDØ'Ø#1Ø#ØØ%Ø%5Ø!,ð
ñ 
ô 
ð 
ð × Ò  MÐ!6Ð!6Ð!6Ñ7Ô7Ð7øå
ˆ9�~„~˜ÒÐ˜hÐ.Ø—I’IÐ;Ð;°Ð;Ñ;Ô;Ñ<Ô<ˆ	Ø'Ð/˜˜¸	Ð5EÐ5EÐ5EˆØV¨ÐVÐ7TÐVÐVˆÝ�ŠðAÈð Að AÐPYð Að Að Añ	
ô 	
ð 	
õ Œ7�<Š<˜¨Ñ4Ô4Ð4s   Ã 6C7 Ã7-D$Ê'KË
KËKÚclass_referenceÚcode_revisionc
                 óÞ   — d| v r|                       d¦  «        \  }} n|}|                       d¦  «        \  }}|	€||k    r|}	t          ||dz   |||||	||¬¦	  «	        }t          |||¬¦  «        S )aŽ  
    Extracts a class from a module file, present in the local folder or repository of a model.

    <Tip warning={true}>

    Calling this function will execute the code in the module file found locally or downloaded from the Hub. It should
    therefore only be called on trusted repos.

    </Tip>



    Args:
        class_reference (`str`):
            The full name of the class to load, including its module and optionally its repo.
        pretrained_model_name_or_path (`str` or `os.PathLike`):
            This can be either:

            - a string, the *model id* of a pretrained model configuration hosted inside a model repo on
              huggingface.co.
            - a path to a *directory* containing a configuration file saved using the
              [`~PreTrainedTokenizer.save_pretrained`] method, e.g., `./my_model_directory/`.

            This is used when `class_reference` does not specify another repo.
        module_file (`str`):
            The name of the module file containing the class to look for.
        class_name (`str`):
            The name of the class to import in the module.
        cache_dir (`str` or `os.PathLike`, *optional*):
            Path to a directory in which a downloaded pretrained model configuration should be cached if the standard
            cache should not be used.
        force_download (`bool`, *optional*, defaults to `False`):
            Whether or not to force to (re-)download the configuration files and override the cached versions if they
            exist.
        proxies (`dict[str, str]`, *optional*):
            A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
            'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
        token (`str` or `bool`, *optional*):
            The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
            when running `hf auth login` (stored in `~/.huggingface`).
        revision (`str`, *optional*, defaults to `"main"`):
            The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
            git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
            identifier allowed by git.
        local_files_only (`bool`, *optional*, defaults to `False`):
            If `True`, will only try to load the tokenizer configuration from local files.
        repo_type (`str`, *optional*):
            Specify the repo type (useful when downloading from a space for instance).
        code_revision (`str`, *optional*, defaults to `"main"`):
            The specific revision to use for the code on the Hub, if the code leaves in a different repository than the
            rest of the model. It can be a branch name, a tag name, or a commit id, since we use a git-based system for
            storing models and other artifacts on huggingface.co, so `revision` can be any identifier allowed by git.

    <Tip>

    Passing `token=True` is required when you want to use a private model.

    </Tip>

    Returns:
        `typing.Type`: The class, dynamically imported from the module.

    Examples:

    ```python
    # Download module `modeling.py` from huggingface.co and cache then extract the class `MyBertModel` from this
    # module.
    cls = get_class_from_dynamic_module("modeling.MyBertModel", "sgugger/my-bert-model")

    # Download module `modeling.py` from a given repo and cache then extract the class `MyBertModel` from this
    # module.
    cls = get_class_from_dynamic_module("sgugger/my-bert-model--modeling.MyBertModel", "sgugger/another-bert-model")
    ```z--r   NrK   )rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   r‘   )rr   rà   r±   )rð   r²   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rñ   ÚkwargsÚrepo_idr8   r“   Úfinal_modules                  r!   Úget_class_from_dynamic_modulerö     s¨   € ðn ˆÐÐØ#2×#8Ò#8¸Ñ#>Ô#>Ñ ˆ��à/ˆØ-×3Ò3°CÑ8Ô8Ñ€K�àÐÐ!>À'Ò!IÐ!IØ ˆå)ØØ�eÑØØ%ØØØØ)Øð
ñ 
ô 
€Lõ ˜z¨<ÀnÐUÑUÔUÐUr#   ÚobjÚfolderÚconfigc                 óz  ‡ — ‰ j         dk    r#t                               d‰ › d|› d�¦  «         dS ˆ fd„}t          |t          t
          f¦  «        r|D ]} ||¦  «         Œn|� ||¦  «         g }t          j        ‰ j                  j        }t          |¦  «        t          |¦  «        j
        z  }t          j        ||¦  «         |                     |¦  «         t          |¦  «        D ]P}t          |¦  «        t          |¦  «        j
        z  }t          j        ||¦  «         |                     |¦  «         ŒQ|S )a  
    Save the modeling files corresponding to a custom model/configuration/tokenizer etc. in a given folder. Optionally
    adds the proper fields in a config.

    Args:
        obj (`Any`): The object for which to save the module files.
        folder (`str` or `os.PathLike`): The folder where to save.
        config (`PreTrainedConfig` or dictionary, `optional`):
            A config in which to register the auto_map corresponding to this custom object.

    Returns:
        `list[str]`: The list of files saved.
    Ú__main__z We can't save the code defining z in z¢ as it's been defined in __main__. You should put this code in a separate module so we can include it in the saved folder and make it easier to share via the Hub.Nc                 óŠ  •— ‰
j         j        }|                     d¦  «        d         }|› d‰
j         j        › �}d|v r™d }d }‰
j         j                             d¦  «        ra|› d‰
j         j        › �}t          ‰
dd ¦  «        �>t          ‰
d¦  «        }|j        }|                     d¦  «        d         }|› d|j        › �}n|› d‰
j         j        › �}||f}t          | t          ¦  «        r'|                      di ¦  «        }	||	‰
j	        <   |	| d<   d S t          | dd ¦  «        �|| j
        ‰
j	        <   d S ‰
j	        |i| _
        d S )Nr   éÿÿÿÿÚ	TokenizerÚFastÚslow_tokenizer_classÚauto_map)Ú	__class__Ú
__module__rr   Ú__name__rk   ri   rb   Údictr£   Ú_auto_classr  )Ú_configÚmodule_nameÚlast_moduleÚ	full_namer   Úfast_tokenizer_classÚslow_tokenizerÚslow_tok_module_nameÚlast_slow_tok_moduler  r÷   s             €r!   Ú_set_auto_map_in_configz3custom_object_save.<locals>._set_auto_map_in_configˆ  s‰  ø€ Ø”mÔ.ˆØ!×'Ò'¨Ñ,Ô,¨RÔ0ˆØ"Ð=Ð= S¤]Ô%;Ð=Ð=ˆ	à˜)Ð#Ð#Ø#'Ð Ø#'Ð ØŒ}Ô%×.Ò.¨vÑ6Ô6ð 
Qà*5Ð'PÐ'P¸¼Ô8NÐ'PÐ'PÐ$Ý˜3Ð 6¸Ñ=Ô=ÐIÝ%,¨SÐ2HÑ%IÔ%I�NØ+9Ô+DÐ(Ø+?×+EÒ+EÀcÑ+JÔ+JÈ2Ô+NÐ(Ø.BÐ+^Ð+^À^ÔE\Ð+^Ð+^Ð(øð +6Ð'PÐ'P¸¼Ô8NÐ'PÐ'PÐ$à-Ð/CÐDˆIå�g�tÑ$Ô$ð 	<Ø—{’{ :¨rÑ2Ô2ˆHØ(1ˆH�S”_Ñ%Ø"*ˆG�JÑÐÐÝ�W˜j¨$Ñ/Ô/Ð;Ø09ˆGÔ˜Sœ_Ñ-Ð-Ð-à #¤°Ð;ˆGÔÐÐr#   )r  r   r   rb   rC   Útupler(   r¡   Ú__file__r   r   rÞ   rß   r*   rZ   )	r÷   rø   rù   r  ÚcfgÚresultÚobject_fileÚ	dest_fileÚneeded_files	   `        r!   Úcustom_object_saver  r  sw  ø€ ð „~˜Ò#Ð#Ý�Šð¨sð ð ¸ð ð ð ñ	
ô 	
ð 	
ð
 	ˆð<ð <ð <ð <ð <õ@ �&�4¥˜-Ñ(Ô(ð (Øð 	)ð 	)ˆCØ#Ð# CÑ(Ô(Ð(Ð(ð	)à	Ð	ØÐ Ñ'Ô'Ð'à€Få”+˜cœnÔ-Ô6€KÝ�V‘”¥ [Ñ 1Ô 1Ô 6Ñ7€IÝ
„O�K Ñ+Ô+Ð+Ø
‡M‚M�)ÑÔÐõ 1°Ñ=Ô=ð !ð !ˆÝ˜‘L”L¥D¨Ñ$5Ô$5Ô$:Ñ;ˆ	ÝŒ˜ YÑ/Ô/Ð/Ø�Š�iÑ Ô Ð Ð à€Mr#   c                 ó    — t          d¦  «        ‚)Nz¿Loading this model requires you to execute custom code contained in the model repository on your local machine. Please set the option `trust_remote_code=True` to permit loading of this model.)r¹   )ÚsignumÚframes     r!   Ú_raise_timeout_errorr  ¾  s   € Ý
ð	cñô ð r#   é   c                 ó¸  — |€^|�d|› d|› d|› d�}nOt           j                             |¦  «        r'd|› dt           j                             |¦  «        › d�}n	d|› d|› d�}| �€[|rd} �nU|�r@t          d	k    �r4d}	 t          j        t
          j        t          ¦  «        }t          j        t          ¦  «         | €Ht          |› d
|› d�¦  «        }| 
                    ¦   «         dv rd} n| 
                    ¦   «         dv rd} | ®Ht          j        d	¦  «         n## t          $ r t          |› d
|› d�¦  «        ‚w xY w	 |�3t          j        t
          j        |¦  «         t          j        d	¦  «         nM# |�4t          j        t
          j        |¦  «         t          j        d	¦  «         w w xY w|rt          dd¦  «         |r|s| st          |› d
|› d�¦  «        ‚| S )a  
    Resolves the `trust_remote_code` argument. If there is remote code to be loaded, the user must opt-in to loading
    it.

    Args:
        trust_remote_code (`bool` or `None`):
            User-defined `trust_remote_code` value.
        model_name (`str`):
            The name of the model repository in huggingface.co.
        has_local_code (`bool`):
            Whether the model has local code.
        has_remote_code (`bool`):
            Whether the model has remote code.
        error_message (`str`, *optional*):
            Custom error message to display if there is remote code to load and the user didn't opt-in. If unset, the error
            message will be regarding loading a model with custom code.

    Returns:
        The resolved `trust_remote_code` value.
    NzThe repository z% references custom code contained in zm which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/z .
zt contains custom code which must be executed to correctly load the model. You can inspect the repository content at z‚ contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/Fr   z9 You can inspect the repository content at https://hf.co/zƒ.
You can avoid this prompt in future by passing the argument `trust_remote_code=True`.

Do you wish to run the custom code? [y/N] )ÚyesÚyÚ1T)ÚnoÚnÚ0r_   zS.
Please pass the argument `trust_remote_code=True` to allow custom code to be run.)r+   r)   rØ   ÚabspathÚTIME_OUT_REMOTE_CODEÚsignalÚSIGALRMr  ÚalarmÚinputÚlowerÚ	Exceptionr¹   )Útrust_remote_codeÚ
model_nameÚhas_local_codeÚhas_remote_codeÚerror_messageÚupstream_repoÚprev_sig_handlerÚanswers           r!   Úresolve_trust_remote_coder4  È  sÚ  € ð. ÐØÐ$ð@ *ð @ð @ÐS`ð @ð @à,9ð@ð @ð @ð ˆMõ
 ŒW�]Š]˜:Ñ&Ô&ð 	ð@ *ð @ð @å œgŸošo¨jÑ9Ô9ð@ð @ð @ð ˆMð= *ð =ð =à,6ð=ð =ð =ð ð Ñ Øð 	-Ø %ÐÑØñ 	-Õ!5¸Ò!9Ñ!9Ø#Ðð$Ý#)¤=µ´ÕAUÑ#VÔ#VÐ Ý”Õ1Ñ2Ô2Ð2Ø'Ð/Ý"Ø(ð Fð FÐcmð Fð Fð Fñô �Fð
 —|’|‘~”~Ð):Ð:Ð:Ø,0Ð)Ð)ØŸš™œÐ+?Ð?Ð?Ø,1Ð)ð (Ð/õ ”˜Q‘”��øÝð ð ð å Ø$ð ið iÐ_ið ið ið iñô ð ðøøøð  ð $Ð/Ý”M¥&¤.Ð2BÑCÔCÐCÝ”L ‘O”O�Oøøð $Ð/Ý”M¥&¤.Ð2BÑCÔCÐCÝ”L ‘O”O�O�Oð 0øøøð ð 	-å   tÑ,Ô,Ð,àð 
˜~ð 
Ð6Gð 
ÝØð að aÐWað að að añ
ô 
ð 	
ð
 Ðs   Á<BD ÄE2 Ä D8Ä8E2 Å28F*úrequirements.txtc                 ó^  — g }	 t          d| |dœ|¤Ž}t          |d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   |D �]}|                     ¦   «         }|r|                     d¦  «        rŒ/	 t          |¦  «        \  }}}	n# t          $ r
 |}d\  }}	Y nw xY w	 t          j         	                    |¦  «        }
n2# t          j        j
        $ r |                     |› d�¦  «         Y Œªw xY w|�O|	�Mt          j        |¦  «                             t          j        |
¦  «        t          j        |	¦  «        ¦  «        }nd}|s|                     |› d|
› d	�¦  «         �Œ n# t           $ r Y nw xY w|r)t#          d
| › d�d                     |¦  «        z   ¦  «        ‚dS )añ  
    Tries to locate `requirements_file` in a local folder or repo, and confirms that the environment has all the
    python dependencies installed.

    Args:
        path_or_repo_id (`str` or `os.PathLike`):
            This can be either:
            - a string, the *model id* of a model repo on huggingface.co.
            - a path to a *directory* potentially containing the file.
        kwargs (`dict[str, Any]`, *optional*):
            Additional arguments to pass to `cached_file`.
    )Úpath_or_repo_idr[   ÚrNú#©NNz (installed: None)Tz (installed: ú)z4Missing requirements in your local environment for `z`:
rÕ   rR   )r   r>   Ú	readlinesÚstriprl   r   r¹   r/   Úmetadatar   ÚPackageNotFoundErrorr*   r   Úfrom_stringÚvaluer‚   rÙ   rŠ   r‹   )r7  Úrequirements_fileró   ÚfailedÚrequirementsrE   ÚrequirementÚpackage_nameÚ	delimiterÚversion_numberÚlocal_package_versionÚis_satisfieds               r!   Úcheck_python_requirementsrK    sv  € ð €Fð"Ý"Ði°?ÐM^ÐiÐiÐbhÐiÐiˆÝ�, Ñ$Ô$ð 	)¨ØŸ;š;™=œ=ˆLð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð (ð 	Uñ 	UˆKØ%×+Ò+Ñ-Ô-ˆKØð  +×"8Ò"8¸Ñ"=Ô"=ð Øð7å:OÐP[Ñ:\Ô:\Ñ7�˜i¨¨øÝð 7ð 7ð 7Ø*�Ø,6Ñ)�	˜>˜>˜>ð7øøøðÝ(1Ô(:×(BÒ(BÀ<Ñ(PÔ(PÐ%Ð%øÝÔ%Ô:ð ð ð Ø—’ Ð@Ð@Ð@ÑAÔAÐAØ�ðøøøð Ð$¨Ð)CÝ0Ô<¸YÑGÔG×MÒMÝ”MÐ"7Ñ8Ô8½'¼-ÈÑ:WÔ:Wñ ô  ��ð  $�àð UØ—’ ÐSÐSÐ;PÐSÐSÐSÑTÔTÐTùð5	Uøõ8 ð ð ð Øˆðøøøð ð 
ÝØXÀ?ÐXÐXÐXÐ[_×[dÒ[dÐekÑ[lÔ[lÑlñ
ô 
ð 	
ð
ð 
s|   „E2 £A¸E2 ÁAÁE2 ÁAÁ4E2 ÂBÂE2 ÂB)Â&E2 Â(B)Â)E2 Â-CÃE2 Ã,C<Ã9E2 Ã;C<Ã<A5E2 Å2
E?Å>E?)NFNNNFNNr—   r:  )r5  )=Ú__doc__rc   rÛ   r§   r/   Úimportlib.metadataÚimportlib.utilr   r+   r@   rÞ   r&  r(   Ú	threadingÚpathlibr   Útypesr   Útypingr   Úhuggingface_hubr   r   Ú	packagingr   rn   r
   r   r   r   r   Úutils.import_utilsr   r   Ú
get_loggerr  r   rL   r"   ÚLockr    r2   ÚPathLiker6   rC   rH   rZ   r…   r�   ÚboolÚtyper±   rÉ   r  rà   rö   r  r  r%  r4  rK  rR   r#   r!   ú<module>r[     s�  ðð :Ð 9à 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð IÐ HÐ HÐ HÐ HÐ HÐ HÐ Hð 
ˆÔ	˜HÑ	%Ô	%€ð ð ¨ð ð ð ð ðB &�y”~Ñ'Ô'Ð ð&ð &ð &ð &  b¤kÑ 1ð &°dð &ð &ð &ð &ð,' c¨B¬KÑ&7ð '¸DÀ¼Ið 'ð 'ð 'ð 'ð* ¨3°´Ñ+<ð  ÀÀcÄð  ð  ð  ð  ð@4$˜# ¤Ñ+ð 4$°°S´	ð 4$ð 4$ð 4$ð 4$ðn *˜C "¤+Ñ-ð  *°$°s´)ð  *ð  *ð  *ð  *ðN ð	-+ð -+ð -+Øð-+à�r”{Ñ"ð-+ð ð	-+ð
 
ð-+ð -+ð -+ð -+ð`.Ø#&¨¬Ñ#4ð.à ¤Ñ+ð.ð 	ð.ð .ð .ð .ðF +/Ø Ø%)Ø#ØØ"Ø Ø#ðg5ð g5Ø#&¨¬Ñ#4ðg5àðg5ð �R”[Ñ  4Ñ'ðg5ð ð	g5ð
 �#�s�(Œ^˜dÑ"ðg5ð �#‰:˜Ñðg5ð �D‰jðg5ð ðg5ð �T‰zðg5ð ˜‘*ðg5ð 	ðg5ð g5ð g5ð g5ðZ +/Ø Ø%)Ø#ØØ"Ø Ø $ðkVð kVØðkVà#&¨¬Ñ#4ðkVð �R”[Ñ  4Ñ'ðkVð ð	kVð
 �#�s�(Œ^˜dÑ"ðkVð �#‰:˜ÑðkVð �D‰jðkVð ðkVð �T‰zðkVð ˜‘:ðkVð 
ðkVð kVð kVð kVð\Ið I˜Cð I¨¨r¬{Ñ):ð IÀDÈ4ÁKð IÐ[_Ð`cÔ[dð Ið Ið Ið IðXð ð ð Ð ð gkðRð Rð Rð Rðj5
ð 5
ð 5
ð 5
ð 5
ð 5
r#   