+
    QV-j:  ã                   óú  € R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHt ^ RIHt ^ RIHt ^R	IHtHtHtHtHtHt ^R
IHt ^RIHtHt ]'       d   ^RIH t  ]PB                  ! ]"4      t#]PH                  ! R4      t%Rt&RRRR/t'] ! R R4      4       t(]R,R R ll4       t) ! R R]4      t* ! R R]4      t+R-R R llt,R R lt-R R lt.R  R! lt/R" R# lt0R$ R% lt1R& R' lt2R( R) lt3R* R+ lt4R# ).z.Git LFS related type definitions and utilitiesN)ÚIterable)Ú	dataclass)Úceil)Úgetsize)ÚTYPE_CHECKINGÚBinaryIOÚ	TypedDict)Úunquote)Ú	constants)Úbuild_hf_headersÚfix_hf_endpoint_in_urlÚhf_raise_for_statusÚhttp_backoffÚloggingÚvalidate_hf_hub_args)ÚSliceFileObj)Úsha256Úsha_fileobj)ÚCommitOperationAddz^[0-9a-f]{40}$zlfs-multipart-uploadÚAcceptzapplication/vnd.git-lfs+jsonzContent-Typec                   ó„   a € ] tR t^6t o Rt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lt	R	t
V tR
# )Ú
UploadInfoa<  
Dataclass holding required information to determine whether a blob
should be uploaded to the hub using the LFS protocol or the regular protocol

Args:
    sha256 (`bytes`):
        SHA256 hash of the blob
    size (`int`):
        Size in bytes of the blob
    sample (`bytes`):
        First 512 bytes of the blob
c                ó    <€ V ^8„  d   QhRS[ /# )é   Úpath©Ústr)ÚformatÚ__classdict__s   "€Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/huggingface_hub/lfs.pyÚ__annotate__ÚUploadInfo.__annotate__J   s   ø€ ÷ 9ñ 9™Sñ 9ó    c                óÔ   € \        V4      p\        VR 4      ;_uu_ 4       pVP                  R4      R,          p\        V4      pRRR4       V ! VXXR7      #   + '       g   i     L; i)Úrbé   ºNi   NN©Úsizer   Úsample)r   ÚopenÚpeekr   )Úclsr   r(   Úfiler)   Úshas   &&    r   Ú	from_pathÚUploadInfo.from_pathI   sU   € ä�t‹}ˆÜ�$˜×Ô Ø—Y‘Y˜s“^ DÕ)ˆFÜ˜dÓ#ˆC÷ ñ ˜ S°Ô8Ð8÷ ×ús    $AÁA'	c                ó    <€ V ^8„  d   QhRS[ /# )r   Údata)Úbytes)r   r   s   "€r   r    r!   R   s   ø€ ÷ Bñ B™eñ Br"   c                ój   € \        V4      P                  4       pV ! \        V4      VR ,          VR7      # )r&   )r(   r)   r   )r   ÚdigestÚlen)r,   r2   r.   s   && r   Ú
from_bytesÚUploadInfo.from_bytesQ   s+   € ä�T‹l×!Ñ!Ó#ˆÙœ˜D›	¨$¨t­*¸SÔAÐAr"   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úfileobj)r   )r   r   s   "€r   r    r!   W   s   ø€ ÷ 9ñ 9¡8ñ 9r"   c                óî   € VP                  R 4      pVP                  ^ \        P                  4       \	        V4      pVP                  4       pVP                  ^ \        P                  4       V ! WCVR7      # )r%   r'   )ÚreadÚseekÚioÚSEEK_SETr   Útell)r,   r:   r)   r.   r(   s   &&   r   Úfrom_fileobjÚUploadInfo.from_fileobjV   sV   € à—‘˜cÓ"ˆØ�‰�QœŸ™Ô$Ü˜'Ó"ˆØ�|‰|‹~ˆØ�‰�QœŸ™Ô$Ù˜°Ô8Ð8r"   c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[ ;R&   # )r   r   r(   r)   )r3   Úint)r   r   s   "€r   r    r!   6   s)   ø‡ ‚ ñ �Mñ ñ  �Iñ! ñ" �Mò# r"   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úclassmethodr/   r7   rA   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   6   sP   ø‡ € ñð" ÷9ó ð9ð ÷Bó ðBð ÷9ó ð9÷C ƒ r"   r   c                ó~  € V ^8„  d   QhR\         \        ,          R\        R,          R\        R\        R\        R,          R\        R,          R\        \        \        3,          R,          R	\        \        ,          R,          R
\
        \        \        ,          \        \        ,          \        R,          3,          /	# )r   Úupload_infosÚtokenNÚ	repo_typeÚrepo_idÚrevisionÚendpointÚheadersÚ	transfersÚreturn)r   r   r   ÚdictÚlistÚtuple)r   s   "r   r    r    a   s¬   € ÷ Xñ XÜœ:Õ&ðXä��:ðXô ðXô ð	Xô
 �D�jðXô �D�jðXô ”#”s�(�^˜dÕ"ðXô ”C�y˜4ÕðXô Œ4”�:”tœD•z¤3¨¥:Ð-Õ.ñXr"   c                óT  € Ve   TM\         P                  pRpV\         P                  9   d   \         P                  V,          pV RV V R2p	RRRVe   TMRR	.R
V  U
u. uF+  p
RV
P                  P	                  4       RV
P
                  /NK-  	  up
RR/pVe   R\        V4      /VR&   / \        C\        VR7      CT;'       g    / Cp\        RW–VR7      p\        V4       VP                  4       pVP                  R
R4      p\        V\        4      '       g   \        R4      hVP                  R4      p\        V\         4      '       d   TMRpV Uu. uF  pRV9  g   K  \#        V4      NK  	  upV Uu. uF  pRV9   g   K  \%        V4      NK  	  upV3# u up
i u upi u upi )aa  
Requests the LFS batch endpoint to retrieve upload instructions

Learn more: https://github.com/git-lfs/git-lfs/blob/main/docs/api/batch.md

Args:
    upload_infos (`Iterable` of `UploadInfo`):
        `UploadInfo` for the files that are being uploaded, typically obtained
        from `CommitOperationAdd.upload_info`
    token (`str` or `None`):
        An authentication token (see https://huggingface.co/settings/token).
        Pass `None` to fall back to the local cached token (or no token if unauthenticated).
    repo_type (`str`):
        Type of the repo to upload to: `"model"`, `"dataset"` or `"space"`.
    repo_id (`str`):
        A namespace (user or an organization) and a repo name separated
        by a `/`.
    revision (`str`, *optional*):
        The git revision to upload to.
    endpoint (`str`, *optional*):
        The Hub endpoint to send the request to. Defaults to the value of `HF_ENDPOINT`.
    headers (`dict`, *optional*):
        Additional headers to include in the request
    transfers (`list`, *optional*):
        List of transfer methods to use. Defaults to ["basic", "multipart"].

Returns:
    `LfsBatchInfo`: 3-tuple:
        - First element is the list of upload instructions from the server
        - Second element is a list of errors, if any
        - Third element is the chosen transfer adapter if provided by the server (e.g. "basic", "multipart", "xet")

Raises:
    [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
        If an argument is invalid or the server response is malformed.
    [`HfHubHTTPError`]
        If the server returned an error.
NÚ Ú/z.git/info/lfs/objects/batchÚ	operationÚuploadrX   ÚbasicÚ	multipartÚobjectsÚoidr(   Ú	hash_algor   ÚnameÚref)rR   ÚPOST©rW   ÚjsonzMalformed response from serverÚtransferÚerror)r
   ÚENDPOINTÚREPO_TYPES_URL_PREFIXESr   Úhexr(   r	   ÚLFS_HEADERSr   r   r   rk   ÚgetÚ
isinstancer[   Ú
ValueErrorr   Ú_validate_batch_actionsÚ_validate_batch_error)rQ   rR   rS   rT   rU   rV   rW   rX   Ú
url_prefixÚ	batch_urlra   ÚpayloadÚrespÚ
batch_inford   Úchosen_transferÚobjs   &&&&&&&&         r   Úpost_lfs_batch_infor~   `   sÊ  € ðb $Ò/‰x´Y×5GÑ5G€HØ€JØ”I×5Ñ5Ô5Ü×6Ñ6°yÕAˆ
Ø�*˜A˜j˜\¨'¨Ð2MÐN€Ià�XØ )Ò"7‘Y¸gÀ{Ð=SØñ
 'ó
ñ
 '�ð �v—}‘}×(Ñ(Ó*Ø˜Ÿ™óñ 'ñ
ð 	�Xð€Gð ÒØ ¤'¨(Ó"3Ð4ˆ�‰ðÜ
ðä
 Ô
'ðð �=ˆ=�bð€Gô
 ˜ 	ÀÔI€DÜ˜ÔØ—‘“€Jà�n‰n˜Y¨Ó-€GÜ�gœt×$Ò$ÜÐ9Ó:Ð:à —n‘n ZÓ0€OÜ)3°OÄS×)IÒ)I‘oÈt€Oñ 29ÓO±¨#¸GÈ3Ñ<NÔ	%Ô	  Ö	%±ÑOÙ/6ÓI©w¨¸'ÀS¹.Ô	#Ô	˜sÖ	#©wÑIØðð ùò9
ùò: 	PùÚIs   Á 1FÅ	F Å$F Å9	F%ÆF%c                   ó,   a € ] tR t^¼t o V 3R ltRtV tR# )ÚPayloadPartTc                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r   Ú
partNumberÚetag)rD   r   )r   r   s   "€r   r    ÚPayloadPartT.__annotate__¼   s   ø‡ ‚ Ù�Oñ á
�Iò r"   rE   N)rF   rG   rH   rI   rL   rM   rN   rO   s   @r   r€   r€   ¼   s   ø‡ ‡ „ r"   r€   c                   ó0   a € ] tR t^Át o RtV 3R ltRtV tR# )ÚCompletionPayloadTz?Payload that will be sent to the Hub when uploading multi-part.c                óB   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   # )r   re   Úparts)r   r[   r€   )r   r   s   "€r   r    ÚCompletionPayloadT.__annotate__Á   s#   ø‡ ‚ ñ 
�Hñ ñ ‘ÕÑò	 r"   rE   N)rF   rG   rH   rI   rJ   rL   rM   rN   rO   s   @r   r†   r†   Á   s   ø‡ € ÙI÷ ƒ r"   r†   c                óœ   € V ^8„  d   QhRRR\         R\        R,          R\         \        \        3,          R,          R\        R,          RR/# )	r   r`   r   Úlfs_batch_actionrR   NrW   rV   rY   )rZ   r   )r   s   "r   r    r    È   si   € ÷ JAñ JAØ#ðJAäðJAô ��:ðJAô ”#”s�(�^˜dÕ"ð	JAô
 �D�jðJAð 
ñJAr"   c           	     ób  € \        V4       VP                  R4      pVf&   \        P                  RV P                   R24       R# VR,          R,          p\        V4       VR,          P                  R4      pVe   \        V4       VP                  R/ 4      pVP                  R4      p	\        VR	,          VR
7      p
V	e    \        V	4      p	\        YYšR7       M\        W
R7       Ve}   \        V4       \        VR	,          V4      p\        RV\        W#R7      RV P                  P                  P!                  4       RV P                  P"                  /R7      p\%        V4       \        P                  V P                   R24       R#   \        \        3 d    \        RT	 R24      hi ; i)ae  
Handles uploading a given object to the Hub with the LFS protocol.

Can be a No-op if the content of the file is already present on the hub large file storage.

Args:
    operation (`CommitOperationAdd`):
        The add operation triggering this upload.
    lfs_batch_action (`dict`):
        Upload instructions from the LFS batch endpoint for this object. See [`~utils.lfs.post_lfs_batch_info`] for
        more details.
    token (`str`, *optional*):
        An authentication token (see https://huggingface.co/settings/token). Used to call the
        optional LFS verify step at the end of the upload. If `None`, falls back to the local
        cached token.
    headers (`dict`, *optional*):
        Headers to include in the request, including authentication and user agent headers.
    endpoint (`str`, *optional*):
        The Hub endpoint to send the request to. Defaults to the value of `HF_ENDPOINT`.

Raises:
    [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
        If `lfs_batch_action` is improperly formatted
    [`HfHubHTTPError`]
        If the upload resulted in an error
ÚactionsNzContent of file z. is already present upstream - skipping uploadra   ÚverifyÚheaderÚ
chunk_sizeÚhref)rV   zTMalformed response from LFS batch endpoint: `chunk_size` should be an integer. Got 'z'.)r`   r�   r�   Ú
upload_url)r`   r’   ri   )rR   rW   re   r(   rj   z: Upload successful)ru   rr   ÚloggerÚdebugÚpath_in_repoÚ_validate_lfs_actionr   rD   rt   Ú	TypeErrorÚ_upload_multi_partÚ_upload_single_partr   r   Úupload_infor   rp   r(   r   )r`   r‹   rR   rW   rV   r�   Úupload_actionÚverify_actionr�   r�   r’   Ú
verify_urlÚverify_resps   &&&&&        r   Ú
lfs_uploadrŸ   È   s˜  € ôD Ð,Ô-Ø×"Ñ" 9Ó-€GØ‚ä�‰Ð'¨	×(>Ñ(>Ð'?Ð?mÐnÔoÙð % YÕ/°Õ9€MÜ˜Ô'Ø$ YÕ/×3Ñ3°HÓ=€MØÒ Ü˜]Ô+ð ×Ñ˜x¨Ó,€FØ—‘˜LÓ)€JÜ'¨°fÕ(=ÈÔQ€JØÒð	Ü˜Z›ˆJô
 	 YÈ*Ölä iÕGð Ò Ü˜]Ô+Ü+¨M¸&Õ,AÀ8ÓLˆ
Ü"ØØÜ$¨5ÔBØ˜×.Ñ.×5Ñ5×9Ñ9Ó;¸VÀY×EZÑEZ×E_ÑE_Ð`ô	
ˆô 	˜KÔ(Ü
‡L�L�I×*Ñ*Ð+Ð+>Ð?Ö@øô' œIÐ&ô 	ÜØfÐgqÐfrÐrtÐuóð ð	ús   ÃF Æ!F.c                ó$   € V ^8„  d   QhR\         /# )r   Ú
lfs_action©rZ   )r   s   "r   r    r      s   € ÷ ñ ¤Tñ r"   c                óÖ   € \        V P                  R4      \        4      '       d9   V P                  R4      e1   \        V P                  R4      \        4      '       g   \	        R4      hV # )ú.validates response from the LFS batch endpointr‘   r�   z"lfs_action is improperly formatted)rs   rr   r   rZ   rt   )r¡   s   &r   r–   r–     sQ   € ô 	�:—>‘> &Ó)¬3×/Ò/Ø�^‰^˜HÓ%Ò-´¸J¿N¹NÈ8Ó<TÔVZ×1[Ò1[äÐ=Ó>Ð>ØÐr"   c                ó$   € V ^8„  d   QhR\         /# )r   Úlfs_batch_actionsr¢   )r   s   "r   r    r      s   € ÷ ñ ¬tñ r"   c                óp  € \        V P                  R4      \        4      '       d&   \        V P                  R4      \        4      '       g   \	        R4      hV P                  R/ 4      P                  R4      pV P                  R/ 4      P                  R4      pVe   \        V4       Ve   \        V4       V # )r¤   re   r(   z)lfs_batch_actions is improperly formattedr�   ra   rŽ   )rs   rr   r   rD   rt   r–   )r¦   r›   rœ   s   &  r   ru   ru     s�   € äÐ(×,Ñ,¨UÓ3´S×9Ò9¼jÐIZ×I^ÑI^Ð_eÓIfÔhk×>lÒ>lÜÐDÓEÐEà%×)Ñ)¨)°RÓ8×<Ñ<¸XÓF€MØ%×)Ñ)¨)°RÓ8×<Ñ<¸XÓF€MØÒ Ü˜]Ô+ØÒ Ü˜]Ô+ØÐr"   c                ó$   € V ^8„  d   QhR\         /# )r   Úlfs_batch_errorr¢   )r   s   "r   r    r    -  s   € ÷ ñ ¬4ñ r"   c                ó¨  € \        V P                  R4      \        4      '       d&   \        V P                  R4      \        4      '       g   \	        R4      hV P                  R4      p\        V\
        4      '       dK   \        VP                  R4      \        4      '       d&   \        VP                  R4      \        4      '       g   \	        R4      hV # )r¤   re   r(   z'lfs_batch_error is improperly formattedrm   ÚmessageÚcode)rs   rr   r   rD   rt   rZ   )r©   Ú
error_infos   & r   rv   rv   -  sš   € ä�×*Ñ*¨5Ó1´3×7Ò7¼JÀ×GZÑGZÐ[aÓGbÔdg×<hÒ<hÜÐBÓCÐCØ ×$Ñ$ WÓ-€Jä�:œt×$Ò$Ü�z—~‘~ iÓ0´#×6Ò6Ü�z—~‘~ fÓ-¬s×3Ò3äÐBÓCÐCØÐr"   c                ó,   € V ^8„  d   QhRRR\         RR/# )r   r`   r   r’   rY   Nr   )r   s   "r   r    r    ;  s"   € ÷ &ñ &Ð#7ð &ÄSð &ÈTñ &r"   c                ó¤   € V P                  RR7      ;_uu_ 4       p\        RWR7      p\        V4       RRR4       R#   + '       g   i     R# ; i)a#  
Uploads `fileobj` as a single PUT HTTP request (basic LFS transfer protocol)

Args:
    upload_url (`str`):
        The URL to PUT the file to.
    fileobj:
        The file-like object holding the data to upload.

Raises:
    [`HfHubHTTPError`]
        If the upload resulted in an error.
T©Ú	with_tqdmÚPUT©r2   N)Úas_filer   r   )r`   r’   r:   Úresponses   &&  r   r™   r™   ;  s=   € ð 
×	Ñ	 TÐ	×	*Ô	*¨gä  zÔ@ˆÜ˜HÔ%÷ 
+×	*×	*Ò	*ús	   ›>¾A	c          
      óD   € V ^8„  d   QhRRR\         R\        R\        RR/# )r   r`   r   r�   r�   r’   rY   N)rZ   rD   r   )r   s   "r   r    r    O  s3   € ÷ (ñ (Ð"6ð (Äð (ÔRUð (Ôcfð (Ðkoñ (r"   c           	     óà   € \        WP                  VR7      p\        WVR7      p\        RV\	        WPP                  P
                  P                  4       4      \        R7      p\        V4       R# )z8
Uploads file using HF multipart LFS transfer protocol.
)r�   rš   r�   )r`   Úsorted_parts_urlsr�   ri   )rk   rW   N)	Ú_get_sorted_parts_urlsrš   Ú_upload_parts_iterativelyr   Ú_get_completion_payloadr   rp   rq   r   )r`   r�   r�   r’   r¸   Úresponse_headersÚcompletion_ress   &&&&   r   r˜   r˜   O  sg   € ô
 /°f×J_ÑJ_ÐlvÔwÐô 1ØÈZôÐô "ØØÜ$Ð%5×7LÑ7L×7SÑ7S×7WÑ7WÓ7YÓZÜô	€Nô ˜Ö'r"   c          	      ó^   € V ^8„  d   QhR\         R\        R\        R\        \        ,          /# )r   r�   rš   r�   rY   )rZ   r   rD   r[   r   )r   s   "r   r    r    f  s/   € ÷ #ñ #¤4ð #´jð #Ìcð #ÔVZÔ[^ÕV_ñ #r"   c           
      ó~  € \        V P                  4        UUu. uF=  w  r4VP                  4       '       g   K  \        V4      ^ 8”  g   K/  \	        V^
4      V3NK?  	  uppR R7       UUu. uF  w  rTVNK	  	  ppp\        V4      pV\        VP                  V,          4      8w  d   \        R4      hV# u uppi u uppi )é    c                 ó   € V ^ ,          # )rÀ   rE   )Úts   &r   Ú<lambda>Ú(_get_sorted_parts_urls.<locals>.<lambda>o  s   € ˜!˜Až$r"   )Úkeyz0Invalid server response to upload large LFS file)ÚsortedÚitemsÚisdigitr6   rD   r   r(   rt   )r�   rš   r�   Úpart_numr’   Ú_Úsorted_part_upload_urlsÚ	num_partss   &&&     r   r¹   r¹   f  sÆ   € ô $ð -3¯L©L¬Nôá,:Ñ(�HØ×#Ñ#×%ô 0ä*-¨h«-¸!Ñ*;ô 0”�X˜rÓ" JÓ/Ù,:òñ
 õ
ô
ñ
‰MˆAó 	ñ
ð ñ 
ô Ð+Ó,€IØ”D˜×)Ñ)¨JÕ6Ó7Ô7ÜÐKÓLÐLØ"Ð"ùóùó
s   ™B3
¸B3
Á
B3
Á*B9c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r   r¼   re   rY   )r[   rZ   r   r†   )r   s   "r   r    r    x  s&   € ÷ (ñ (¬d´4­jð (¼sð (ÔGYñ (r"   c                 óÚ   € . p\        V 4       FU  w  r4VP                  R 4      pVe   VR8X  d   \        RV RV^,            24      hVP                  RV^,           R V/4       KW  	  RVRV/# )rƒ   r^   zInvalid etag (`z`) returned for part r‚   re   rˆ   )Ú	enumeraterr   rt   Úappend)r¼   re   rˆ   Úpart_numberr�   rƒ   s   &&    r   r»   r»   x  s‚   € Ø "€EÜ(Ð)9Ö:ÑˆØ�z‰z˜&Ó!ˆØŠ<˜4 2œ:Ü˜¨t¨fÐ4IÈ+ÐXYÍ/ÐIZÐ[Ó\Ð\Ø�‰à˜k¨A�oØ˜ðö	
ñ	  ;ð �3˜ Ð'Ð'r"   c          	      ól   € V ^8„  d   QhRRR\         \        ,          R\        R\         \        ,          /# )r   r`   r   r¸   r�   rY   )r[   r   rD   rZ   )r   s   "r   r    r    ‡  s4   € ÷ ñ Ø#ðÜ8<¼S½	ðÜORðä	Œ$…Zñr"   c                 óx  € . pV P                  R R7      ;_uu_ 4       p\        V4       F]  w  rV\        VW%,          VR7      ;_uu_ 4       p\        RWgR7      p\	        V4       VP                  VP                  4       RRR4       K_  	  RRR4       V#   + '       g   i     K|  ; i  + '       g   i     T# ; i)Tr°   )Ú	seek_fromÚ
read_limitr²   r³   N)r´   rÏ   r   r   r   rÐ   rW   )	r`   r¸   r�   rW   r:   Úpart_idxÚpart_upload_urlÚfileobj_sliceÚpart_upload_ress	   &&&      r   rº   rº   ‡  s­   € ð €GØ	×	Ñ	 TÐ	×	*Ô	*¨gÜ)2Ð3DÖ)EÑ%ˆHÜØØ$Õ/Ø%÷õ ð ä".¨u°oÔ"Z�Ü# OÔ4Ø—‘˜×6Ñ6Ô7÷ñ ñ *F÷ 
+ð €N÷÷ ð ú÷ 
+Ö	*ð €Nús#   �-B(Á
4BÁ>B(ÂB%Â	B(Â(B9	)NNNN)NNN)5rJ   r>   ÚreÚcollections.abcr   Údataclassesr   Úmathr   Úos.pathr   Útypingr   r   r   Úurllib.parser	   Úhuggingface_hubr
   Úutilsr   r   r   r   r   r   Ú
utils._lfsr   Ú	utils.shar   r   Ú_commit_apir   Ú
get_loggerrF   r“   ÚcompileÚ	OID_REGEXÚLFS_MULTIPART_UPLOAD_COMMANDrq   r   r~   r€   r†   rŸ   r–   ru   rv   r™   r˜   r¹   r»   rº   rE   r"   r   Ú<module>rê      sõ   ðñ 5ã 	Û 	Ý $Ý !Ý Ý ß 5Ñ 5Ý  å %÷÷ õ %ß *÷ Ý/à	×	Ò	˜HÓ	%€à�JŠJÐ(Ó)€	à5Ð ð Ð,ØÐ2ð€ð ÷&9ð &9ó ð&9ðR öXó ðXôv�9ô ô
˜ô ÷JAõZõõõ&õ((õ.#õ$(÷r"   