ó
    ‡Ž¡jM  ã                   ó˜  • S SK r S SKrS SKrS SKrS SKrS SKJrJrJr  S SK	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJrJrJrJrJr  S SKr\" S	\5      r\" S
\5      rS rS\S\
\/\4   4S jrSS\ R@                  \ R@                  SS.S\\\   -  S-  S\S-  S\S\
/ \4   S\!S-  S\ RD                  4S jjr# " S S\5      r$g)é    N)ÚArgumentDefaultsHelpFormatterÚArgumentParserÚArgumentTypeError)ÚCallableÚIterable)Úcopy)ÚEnum)Úisclass)ÚPath)ÚAnyÚLiteralÚNewTypeÚUnionÚget_type_hintsÚ	DataClassÚDataClassTypec                 ó¢   • [        U [        5      (       a  U $ U R                  5       S;   a  gU R                  5       S;   a  g[        SU  S35      e)N)ÚyesÚtrueÚtÚyÚ1T)ÚnoÚfalseÚfÚnÚ0FzTruthy value expected: got zJ but expected one of yes/no, true/false, t/f, y/n, 1/0 (case insensitive).)Ú
isinstanceÚboolÚlowerr   )Úvs    Ú§C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\transformers/hf_argparser.pyÚstring_to_boolr#   $   sR   € Ü�!”T×ÑØˆØ‡w�wƒyÐ2Ó2ØØ	
�‰‹Ð4Ó	4ØäØ)¨!¨Ð,vÐwó
ð 	
ó    ÚchoicesÚreturnc                 óT   ^• U  Vs0 s H  n[        U5      U_M     snmU4S j$ s  snf )a2  
Creates a mapping function from each choices string representation to the actual value. Used to support multiple
value types for a single argument.

Args:
    choices (list): List of choices.

Returns:
    Callable[[str], Any]: Mapping function from string representation to actual value for each choice.
c                 ó&   >• TR                  X 5      $ ©N)Úget)ÚargÚstr_to_choices    €r"   Ú<lambda>Ú+make_choice_type_function.<locals>.<lambda>=   s   ø€ �}×(Ñ(¨Ô2r$   )Ústr)r%   Úchoicer,   s     @r"   Úmake_choice_type_functionr1   1   s.   ø€ ñ 8?Ó?²w¨V”S˜“[ &Ò(±wÑ?€MÜ2Ð2ùò @s   †%)ÚaliasesÚhelpÚdefaultÚdefault_factoryÚmetadatar2   r3   r4   r5   r6   c                 óZ   • Uc  0 nU b  XS'   Ub  XS'   [         R                  " SXBUS.UD6$ )a›  Argument helper enabling a concise syntax to create dataclass fields for parsing with `HfArgumentParser`.

Example comparing the use of `HfArg` and `dataclasses.field`:
```
@dataclass
class Args:
    regular_arg: str = dataclasses.field(default="Huggingface", metadata={"aliases": ["--example", "-e"], "help": "This syntax could be better!"})
    hf_arg: str = HfArg(default="Huggingface", aliases=["--example", "-e"], help="What a nice syntax!")
```

Args:
    aliases (Union[str, list[str]], optional):
        Single string or list of strings of aliases to pass on to argparse, e.g. `aliases=["--example", "-e"]`.
        Defaults to None.
    help (str, optional): Help string to pass on to argparse that can be displayed with --help. Defaults to None.
    default (Any, optional):
        Default value for the argument. If not default or default_factory is specified, the argument is required.
        Defaults to dataclasses.MISSING.
    default_factory (Callable[[], Any], optional):
        The default_factory is a 0-argument function called to initialize a field's value. It is useful to provide
        default values for mutable types, e.g. lists: `default_factory=list`. Mutually exclusive with `default=`.
        Defaults to dataclasses.MISSING.
    metadata (dict, optional): Further metadata to pass on to `dataclasses.field`. Defaults to None.

Returns:
    Field: A `dataclasses.Field` with the desired properties.
r2   r3   )r6   r4   r5   © )ÚdataclassesÚfield)r2   r3   r4   r5   r6   Úkwargss         r"   ÚHfArgr<   @   sI   € ðH ÑàˆØÑØ%�ÑØÑØ�Ñä×ÒÐk hÐQ`ÑkÐdjÑkÐkr$   c            	       ój  ^ • \ rS rSr% Sr\\   \S'   SS\\\   -  S-  4U 4S jjjr\	S\
S\R                  4S j5       rS	\4S
 jr     SS\\S4   4S jjrSS\\\4   S\S\\S4   4S jjrSS\\R0                  -  S\S\\S4   4S jjrSS\\R0                  -  S\S\\S4   4S jjrSrU =r$ )ÚHfArgumentParseréo   aà  
This subclass of `argparse.ArgumentParser` uses type hints on dataclasses to generate arguments.

The class is designed to play well with the native argparse. In particular, you can add more (non-dataclass backed)
arguments to the parser after initialization and you'll get the output back after parsing as an additional
namespace. Optional: To create sub argument groups use the `_argument_group_name` attribute in the dataclass.

Args:
    dataclass_types (`DataClassType` or `Iterable[DataClassType]`, *optional*):
        Dataclass type, or list of dataclass types for which we will "fill" instances with the parsed args.
    kwargs (`dict[str, Any]`, *optional*):
        Passed to `argparse.ArgumentParser()` in the regular way.
Údataclass_typesNc                 ó$  >• Uc  / nO[        U[        5      (       d  U/nSU;  a	  [        US'   [        TU ]  " S0 UD6  [
        R                  " U5      (       a  U/n[        U5      U l        U R                   H  nU R                  U5        M     g )NÚformatter_classr8   )
r   r   r   ÚsuperÚ__init__r9   Úis_dataclassÚlistr@   Ú_add_dataclass_arguments)Úselfr@   r;   ÚdtypeÚ	__class__s       €r"   rD   ÚHfArgumentParser.__init__€   sŒ   ø€ àÑ"Ø ‰OÜ˜O¬X×6Ñ6Ø.Ð/ˆOð  FÓ*Ü(EˆFÐ$Ñ%Ü‰ÒÑ"˜6Ò"Ü×#Ò# O×4Ñ4Ø.Ð/ˆOÜ# OÓ4ˆÔØ×)Ô)ˆEØ×)Ñ)¨%Ö0ò *r$   Úparserr:   c                 ó2  • SUR                    3/nSUR                   ;   a.  UR                  SUR                   R                  SS5       35        UR                  R	                  5       n[        UR                  [        5      (       a  [        S5      eUR                  S/ 5      n[        U[        5      (       a  U/n[        UR                  SUR                  5      nU[        L d6  [        [        S5      (       Ga×  [        U[        R                  5      (       Ga·  [        UR                  R                  ;  a_  [!        UR                  R                  5      S:w  d#  [        S 5      UR                  R                  ;  a  [#        S	UR                    S
35      e[        S 5      UR                  R                  ;  ay  UR                  R                  S   [        L a  UR                  R                  S   OUR                  R                  S   Ul        [        UR                  SUR                  5      nOž[$        UR                  R                  ;  a€  [        S UR                  R                  S   5      (       a  UR                  R                  S   OUR                  R                  S   Ul        [        UR                  SUR                  5      n0 nU[&        L d>  [        UR                  [        5      (       a±  [)        UR                  [*        5      (       a’  U[&        L a  UR                  R                  US'   O)UR                   Vs/ s H  owR,                  PM     snUS'   [/        US   5      US'   UR0                  [2        R4                  La  UR0                  US'   GOÉSUS'   GOÂUR                  [$        L d  UR                  [$        S -  :X  aŒ  [	        U5      n[6        US'   UR                  [$        L d*  UR0                  bV  UR0                  [2        R4                  La9  UR0                  [2        R4                  L a  SOUR0                  nXƒS'   SUS'   SUS'   GO[9        U5      (       aŠ  [)        U[:        5      (       au  UR                  R                  S   US'   SUS'   UR<                  [2        R4                  La  UR=                  5       US'   O•UR0                  [2        R4                  L a  SUS'   OrUR                  US'   UR0                  [2        R4                  La  UR0                  US'   O6UR<                  [2        R4                  La  UR=                  5       US'   OSUS'   U R>                  " / UQUQ70 UD6  UR0                  SL a|  UR                  [$        L d  UR                  [$        S -  :X  aQ  SUS'   U R>                  " SUR                    3SUR                   R                  SS5       34SUR                   S.UD6  g g g s  snf )Nz--Ú_Ú-zpUnresolved type detected, which should have been done with the help of `typing.get_type_hints` method by defaultr2   Ú
__origin__Ú	UnionTypeé   z¦Only `Union[X, NoneType]` (i.e., `Optional[X]`) is allowed for `Union` because the argument parser only supports one type per argument. Problem encountered in field 'z'.é   r   r%   Útyper4   TÚrequiredFÚ?ÚnargsÚconstÚ+z--no_z--no-Ústore_false)ÚactionÚdest) ÚnameÚappendÚreplacer6   r   r   rT   r/   ÚRuntimeErrorÚpopÚgetattrr   ÚhasattrÚtypesrQ   Ú__args__ÚlenÚ
ValueErrorr   r   Ú
issubclassr	   Úvaluer1   r4   r9   ÚMISSINGr#   r
   rF   r5   Úadd_argument)	rL   r:   Úlong_optionsr;   r2   Úorigin_typeÚbool_kwargsÚxr4   s	            r"   Ú_parse_dataclass_fieldÚ'HfArgumentParser._parse_dataclass_field‘   sð  € ð ˜UŸZ™Z˜LÐ)Ð*ˆØ�%—*‘*ÓØ×Ñ " U§Z¡Z×%7Ñ%7¸¸SÓ%AÐ$BÐ CÔDà—‘×$Ñ$Ó&ˆô �e—j‘j¤#×&Ñ&Üð<óð ð
 —*‘*˜Y¨Ó+ˆÜ�gœs×#Ñ#Ø�iˆGä˜eŸj™j¨,¸¿
¹
ÓCˆØœ%Ò¤G¬E°;×$?Ò$?ÄJÈ{Ô\a×\kÑ\k×DlÒDlÜ˜%Ÿ*™*×-Ñ-Ó-Ü�E—J‘J×'Ñ'Ó(¨AÓ-´°d³À5Ç:Á:×CVÑCVÓ1Vä ð6à6;·j±j°\ÀðEóð ô
 �D‹z §¡×!4Ñ!4Ó4à7<·z±z×7JÑ7JÈ1Ñ7MÔQTÒ7T˜UŸZ™Z×0Ñ0°Ò3ÐZ_×ZdÑZd×ZmÑZmÐnoÑZp�”
Ü% e§j¡j°,ÀÇ
Á
ÓK‘Ü˜UŸZ™Z×0Ñ0Ó0ô /9¸¸u¿z¹z×?RÑ?RÐSTÑ?U×.VÑ.V�E—J‘J×'Ñ'¨Ò*Ð\a×\fÑ\f×\oÑ\oÐpqÑ\rð ”
ô & e§j¡j°,ÀÇ
Á
ÓK�ð ˆØœ'Ò!¤j°·±¼T×&BÑ&BÄzÐRW×R\ÑR\Ô^b×GcÑGcØœgÒ%Ø$)§J¡J×$7Ñ$7��yÒ!à6;·j²jÓ$A²j°§W¤W±jÑ$A��yÑ!ä6°v¸iÑ7HÓIˆF�6‰Nà�}‰}¤K×$7Ñ$7Ò7Ø$)§M¡M��yÓ!à%)��zÓ"Ø�Z‰Zœ4Ò 5§:¡:´¸±Ó#<ô ˜v›,ˆKô ,ˆF�6‰NØ�z‰zœTÒ! e§m¡mÑ&?ÀEÇMÁMÔYd×YlÑYlÒDlà#(§=¡=´K×4GÑ4GÒ#G™%ÈUÏ]É]�à$+�yÑ!à"%��w‘à"&��w‘ùÜ�[×!Ñ!¤j°¼d×&CÑ&CØ"ŸZ™Z×0Ñ0°Ñ3ˆF�6‰NØ!ˆF�7‰OØ×$Ñ$¬K×,?Ñ,?Ò?Ø$)×$9Ñ$9Ó$;��yÒ!Ø—‘¤+×"5Ñ"5Ò5Ø%)��zÑ"øà"ŸZ™ZˆF�6‰NØ�}‰}¤K×$7Ñ$7Ò7Ø$)§M¡M��yÒ!Ø×&Ñ&¬k×.AÑ.AÒAØ$)×$9Ñ$9Ó$;��yÒ!à%)��zÑ"Ø×ÒÐ>˜\Ð>¨GÒ>°vÒ>ð �=‰=˜DÒ  e§j¡j´DÒ&8¸E¿J¹JÌ$ÐQUÉ+Ó<UØ%*ˆK˜	Ñ"Ø×ÒØ˜Ÿ
™
�|Ð$Ø˜Ÿ
™
×*Ñ*¨3°Ó4Ð5Ð6ðð %Ø—Z‘Zñ	ð
 óð =VÐ ùò[ %Bs   ÍXrI   c                 ó\  • [        US5      (       a  U R                  UR                  5      nOU n [        U5      n[        R                  " U5       H:  nUR                  (       d  M  X4R                     Ul
        U R                  X$5        M<     g ! [         a    [        SU S35      ef = f)NÚ_argument_group_namezType resolution failed for zž. Try declaring the class in global scope or removing line of `from __future__ import annotations` which opts in Postponed Evaluation of Annotations (PEP 563))rc   Úadd_argument_grouprs   r   Ú	NameErrorr`   r9   ÚfieldsÚinitr]   rT   rp   )rH   rI   rL   Ú
type_hintsr:   s        r"   rG   Ú)HfArgumentParser._add_dataclass_argumentsû   s¦   € Ü�5Ð0×1Ñ1Ø×,Ñ,¨U×-GÑ-GÓH‰FàˆFð	Ü*8¸Ó*?ˆJô !×'Ò'¨Ö.ˆEØ—:—:ÙØ#§J¡JÑ/ˆEŒJØ×'Ñ'¨Ö6ò	 /øô ó 	ÜØ-¨e¨Wð 56ð 6óð ð	ús   ±B ÂB+r&   .c                 ó¶  • U(       d.  U(       d'  U(       Ga”  [        [        R                  5      (       Gau  / nU(       a  UR                  [	        U5      5        O_U(       aX  [        [        R                  5      (       a:  UR                  [	        [        R                  S   5      R                  S5      5        U(       aŒ  [        5       nUR                  U[        SS9  UR                  US9u  p�[        U5      R                  UR                  S5      S5      n	U	(       a+  UR                  U	 V
s/ s H  n
[	        U
5      PM     sn
5        / nU H:  nUR                  5       (       d  M  X¼R                  5       R!                  5       -  nM<     Ub  X±-   OU[        R                  SS -   nU R                  US9u  pÞ/ nU R"                   H«  n[$        R&                  " U5       Vs1 s H"  nUR(                  (       d  M  UR*                  iM$     nn[        U5      R-                  5        VVs0 s H  u  nnUU;   d  M  UU_M     nnnU H  n[/        UU5        M     U" S
0 UD6nUR                  U5        M­     [        UR0                  5      S:”  a  UR                  U5        U(       a  / UQUP7$ U(       a  [3        S	U 35      e/ UQ7$ s  sn
f s  snf s  snnf )af  
Parse command-line args into instances of the specified dataclass types.

This relies on argparse's `ArgumentParser.parse_known_args`. See the doc at:
docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

Args:
    args:
        List of strings to parse. The default is taken from sys.argv. (same as argparse.ArgumentParser)
    return_remaining_strings:
        If true, also return a list of remaining argument strings.
    look_for_args_file:
        If true, will look for a ".args" file with the same base name as the entry point script for this
        process, and will append its potential content to the command line args.
    args_filename:
        If not None, will uses this file instead of the ".args" file specified in the previous argument.
    args_file_flag:
        If not None, will look for a file in the command-line args specified with this flag. The flag can be
        specified multiple times and precedence is determined by the order (last one wins).

Returns:
    Tuple consisting of:

        - the dataclass instances in the same order as they were passed to the initializer.
        - if applicable, an additional namespace for more (non-dataclass backed) arguments added to the parser
          after initialization.
        - The potential list of remaining argument strings. (same as argparse.ArgumentParser.parse_known_args)
r   z.argsr^   )rT   r[   )ÚargsrO   NrS   z?Some specified arguments are not used by the HfArgumentParser: r8   )rf   ÚsysÚargvr^   r   Úwith_suffixr   rk   r/   Úparse_known_argsÚvarsr*   ÚlstripÚextendÚexistsÚ	read_textÚsplitr@   r9   rv   rw   r]   ÚitemsÚdelattrÚ__dict__rg   )rH   r{   Úreturn_remaining_stringsÚlook_for_args_fileÚargs_filenameÚargs_file_flagÚ
args_filesÚargs_file_parserÚcfgÚcmd_args_file_pathsÚpÚ	file_argsÚ	args_fileÚ	namespaceÚremaining_argsÚoutputsrI   r   ÚkeysÚkr!   ÚinputsÚobjs                          r"   Úparse_args_into_dataclassesÚ,HfArgumentParser.parse_args_into_dataclasses  s`  € öJ ž]×/AÄcÌ#Ï(É(ÇmÂmØˆJæØ×!Ñ!¤$ }Ó"5Õ6Þ#¬¬C¯H©H¯©Ø×!Ñ!¤$¤s§x¡x°¡{Ó"3×"?Ñ"?ÀÓ"HÔIö ä#1Ó#3Ð Ø ×-Ñ-¨nÄ3ÈxÐ-ÑXð -×=Ñ=À4Ð=ÐH‘	�Ü&*¨3£i§m¡m°N×4IÑ4IÈ#Ó4NÐPTÓ&UÐ#æ&Ø×%Ñ%Ñ8KÓ&LÒ8K°1¤t¨A¦wÑ8KÑ&LÔMàˆIÛ'�	Ø×#Ñ#×%Ó%Ø×!4Ñ!4Ó!6×!<Ñ!<Ó!>Ñ>’Iñ (ð (,Ñ'7�9Ò#¸YÌÏÉÐRSÐRTÈÑ=UˆDØ$(×$9Ñ$9¸tÐ$9Ð$DÑ!ˆ	ØˆØ×)Ô)ˆEÜ$/×$6Ò$6°uÔ$=ÓHÒ$=˜qÀÇÅ“F�A—F”FÑ$=ˆDÐHÜ'+¨I£×'<Ñ'<Ô'>ÔLÒ'>™t˜q !À!ÀtÁ)“d�a˜’dÑ'>ˆFÑLÛ�Ü˜	 1Ö%ñ á‘/˜&‘/ˆCØ�N‰N˜3Öñ *ô ˆy×!Ñ!Ó" QÓ&à�N‰N˜9Ô%Þ#Ø-�WÐ-˜nÑ-Ð-æÜ Ð#bÐcqÐbrÐ!sÓtÐtà�W‘;Ðùò9 'Mùò IùÛLs   Ä0KÇ%KÇ>KÈ,KÈ=Kr{   Úallow_extra_keysc                 ó  • [        UR                  5       5      n/ nU R                   H¨  n[        R                  " U5       Vs1 s H!  ofR
                  (       d  M  UR                  iM#     nnUR                  5        VV	s0 s H  u  p‰X‡;   d  M  X‰_M     n
nn	UR                  U
R                  5       5        U" S0 U
D6nUR                  U5        Mª     U(       d  U(       a  [        S[        U5       35      e[        U5      $ s  snf s  sn	nf )aä  
Alternative helper method that does not use `argparse` at all, instead uses a dict and populating the dataclass
types.

Args:
    args (`dict`):
        dict containing config values
    allow_extra_keys (`bool`, *optional*, defaults to `False`):
        Defaults to False. If False, will raise an exception if the dict contains keys that are not parsed.

Returns:
    Tuple consisting of:

        - the dataclass instances in the same order as they were passed to the initializer.
z0Some keys are not used by the HfArgumentParser: r8   )Úsetr—   r@   r9   rv   rw   r]   r†   Údifference_updater^   rg   ÚsortedÚtuple)rH   r{   r�   Úunused_keysr–   rI   r   r—   r˜   r!   r™   rš   s               r"   Ú
parse_dictÚHfArgumentParser.parse_dictf  sØ   € ô  ˜$Ÿ)™)›+Ó&ˆØˆØ×)Ô)ˆEÜ$/×$6Ò$6°uÔ$=ÓHÒ$=˜qÇÅ“F�A—F”FÑ$=ˆDÐHØ'+§z¡z¤|ÔA¢|™t˜q°q±y“d�a’d¡|ˆFÑAØ×)Ñ)¨&¯+©+«-Ô8Ù‘/˜&‘/ˆCØ�N‰N˜3Öñ *ö  ¦KÜÐOÔPVÐWbÓPcÐOdÐeÓfÐfÜ�W‹~Ðùò IùÛAs   ÁDÁDÂ D	ÂD	Ú	json_filec                 óÚ   • [        [        U5      SS9 n[        R                  " UR	                  5       5      nSSS5        U R                  WUS9n[        U5      $ ! , (       d  f       N)= f)a  
Alternative helper method that does not use `argparse` at all, instead loading a json file and populating the
dataclass types.

Args:
    json_file (`str` or `os.PathLike`):
        File name of the json file to parse
    allow_extra_keys (`bool`, *optional*, defaults to `False`):
        Defaults to False. If False, will raise an exception if the json file contains keys that are not
        parsed.

Returns:
    Tuple consisting of:

        - the dataclass instances in the same order as they were passed to the initializer.
zutf-8)ÚencodingN©r�   )Úopenr   ÚjsonÚloadsÚreadr¤   r¢   )rH   r¦   r�   Úopen_json_fileÚdatar–   s         r"   Úparse_json_fileÚ HfArgumentParser.parse_json_file‚  sV   € ô" ”$�y“/¨GÒ4¸Ü—:’:˜n×1Ñ1Ó3Ó4ˆD÷ 5à—/‘/ $Ð9I�/ÐJˆÜ�W‹~Ð÷ 5Õ4ús   ”%AÁ
A*Ú	yaml_filec                 óŽ   • U R                  [        R                  " [        U5      R	                  5       5      US9n[        U5      $ )a  
Alternative helper method that does not use `argparse` at all, instead loading a yaml file and populating the
dataclass types.

Args:
    yaml_file (`str` or `os.PathLike`):
        File name of the yaml file to parse
    allow_extra_keys (`bool`, *optional*, defaults to `False`):
        Defaults to False. If False, will raise an exception if the json file contains keys that are not
        parsed.

Returns:
    Tuple consisting of:

        - the dataclass instances in the same order as they were passed to the initializer.
r©   )r¤   ÚyamlÚ	safe_loadr   r„   r¢   )rH   r²   r�   r–   s       r"   Úparse_yaml_fileÚ HfArgumentParser.parse_yaml_file˜  s7   € ð" —/‘/¤$§.¢.´°i³×1JÑ1JÓ1LÓ"MÐ`p�/ÐqˆÜ�W‹~Ðr$   )r@   r)   )NFTNN)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__annotations__rD   Ústaticmethodr   r9   ÚFieldrp   rG   r¢   r   r›   Údictr/   r   r   r¤   ÚosÚPathLiker°   r¶   Ú__static_attributes__Ú__classcell__)rJ   s   @r"   r>   r>   o   s/  ø‡ ñð ˜mÑ,Ó,ñ1¨¸ÀÑ8OÑ(OÐRVÑ(V÷ 1ð 1ð" ðg ~ð g¸k×>OÑ>Oó gó ðgðR7¨mô 7ð. Ø!&ØØØñTð 
ˆy˜#ˆ~Ñ	õTñl˜t C¨ H™~ð Àð ÐRWÐXaÐcfÐXfÑRgõ ñ8¨¨r¯{©{Ñ):ð Èdð Ð_dÐenÐpsÐesÑ_tõ ñ,¨¨r¯{©{Ñ):ð Èdð Ð_dÐenÐpsÐesÑ_t÷ ó r$   r>   )%r9   r«   rÁ   r|   rd   Úargparser   r   r   Úcollections.abcr   r   r   Úenumr	   Úinspectr
   Úpathlibr   Útypingr   r   r   r   r   r´   r   r   r#   rF   r/   r1   rj   rÀ   r¿   r<   r>   r8   r$   r"   Ú<module>rË      s  ðó Û Û 	Û 
Û ß UÑ Uß .Ý Ý Ý Ý ß ?Õ ?ã ñ �K Ó%€	Ù˜¨Ó-€ò

ð3 tð 3°¸#¸À¸Ñ0Dô 3ð" '+ØØ×&Ñ&Ø)4×)<Ñ)<Ø ò,là�4˜‘9‰_˜tÑ#ð,lð �‰*ð,lð ð	,lð
 ˜b #˜gÑ&ð,lð �T‰kð,lð ×Ñõ,lô^{�~õ {r$   