Ë
    ¬ëiÁz  ã                  ó˜  — d dl mZ d dlZd dlmZmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZmZmZmZmZmZ ddlmZmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlm Z m!Z! ddl"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddgZ1 G d„ de«      Z2 G d„ de«      Z3 G d„ d«      Z4 G d„ d«      Z5 G d„ d«      Z6 G d„ d«      Z7y)é    )ÚannotationsN)ÚUnionÚIterableÚOptional)ÚLiteralé   )Ú_legacy_response)ÚBodyÚOmitÚQueryÚHeadersÚNotGivenÚomitÚ	not_given)Úpath_templateÚmaybe_transformÚasync_maybe_transform)Úcached_property)ÚSyncAPIResourceÚAsyncAPIResource)Úto_streamed_response_wrapperÚ"async_to_streamed_response_wrapper)ÚSyncCursorPageÚAsyncCursorPage)ÚAsyncPaginatorÚmake_request_options)Úmessage_list_paramsÚmessage_create_paramsÚmessage_update_params)ÚMessage)ÚMetadata)ÚMessageDeleted)ÚMessageContentPartParamÚMessagesÚAsyncMessagesc                  ó  — e Zd ZdZedd„«       Zedd„«       Z ej                  d«      e	e	ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„«       Z ej                  d«      e	ddde
d
œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      e	e	e	e	e	ddde
dœ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zy)r$   ú4Build Assistants that can call models and use tools.c                ó   — t        | «      S ©a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )ÚMessagesWithRawResponse©Úselfs    úf/var/www/html/chat/reports/venv/lib/python3.12/site-packages/openai/resources/beta/threads/messages.pyÚwith_raw_responsezMessages.with_raw_response"   s   € ô ' tÓ,Ð,ó    c                ó   — t        | «      S ©zÌ
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )ÚMessagesWithStreamingResponser+   s    r-   Úwith_streaming_responsez Messages.with_streaming_response,   s   € ô -¨TÓ2Ð2r/   ú>The Assistants API is deprecated in favor of the Responses APIN©ÚattachmentsÚmetadataÚextra_headersÚextra_queryÚ
extra_bodyÚtimeoutc          
     óÒ   — |st        d|›�«      ‚ddi|xs i ¥}| j                  t        d|¬«      t        ||||dœt        j
                  «      t        ||||	¬«      t        ¬«      S )	á/  
        Create a message.

        Args:
          content: The text contents of the message.

          role:
              The role of the entity that is creating the message. Allowed values include:

              - `user`: Indicates the message is sent by an actual user and should be used in
                most cases to represent user-generated messages.
              - `assistant`: Indicates the message is generated by the assistant. Use this
                value to insert messages from the assistant into the conversation.

          attachments: A list of files attached to the message, and the tools they should be added to.

          metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
              for storing additional information about the object in a structured format, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        ú8Expected a non-empty value for `thread_id` but received úOpenAI-Betaúassistants=v2ú/threads/{thread_id}/messages©Ú	thread_id©ÚcontentÚroler6   r7   ©r8   r9   r:   r;   ©ÚbodyÚoptionsÚcast_to)Ú
ValueErrorÚ_postr   r   r   ÚMessageCreateParamsr   r    ©
r,   rC   rE   rF   r6   r7   r8   r9   r:   r;   s
             r-   ÚcreatezMessages.create5   s�   € ñ^ ÜÐWÐXaÐWdÐeÓfÐfØ&¨ÐQ¸MÒ<OÈRÐQˆØ�z‰zÜÐ9ÀYÔOÜ à&Ø Ø#.Ø (ñ	ô &×9Ñ9óô )Ø+¸ÐQ[Ðelôô ð ó 
ð 	
r/   rG   c          	     ó¸   — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        ||||¬«      t        ¬«      S )	áG  
        Retrieve a message.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r>   ú9Expected a non-empty value for `message_id` but received r?   r@   ú*/threads/{thread_id}/messages/{message_id}©rC   Ú
message_idrG   ©rJ   rK   ©rL   Ú_getr   r   r    ©r,   rV   rC   r8   r9   r:   r;   s          r-   ÚretrievezMessages.retrievex   s…   € ñ2 ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ�y‰yÜÐFÐR[ÐhrÔsÜ(Ø+¸ÐQ[Ðelôô ð ó 
ð 	
r/   ©r7   r8   r9   r:   r;   c          
     óî   — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        d|it        j
                  «      t        ||||¬«      t        ¬	«      S )
áÙ  
        Modifies a message.

        Args:
          metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
              for storing additional information about the object in a structured format, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r>   rS   r?   r@   rT   rU   r7   rG   rH   )rL   rM   r   r   r   ÚMessageUpdateParamsr   r    ©r,   rV   rC   r7   r8   r9   r:   r;   s           r-   ÚupdatezMessages.updatež   sœ   € ñB ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ�z‰zÜÐFÐR[ÐhrÔsÜ  *¨hÐ!7Ô9N×9bÑ9bÓcÜ(Ø+¸ÐQ[Ðelôô ð ó 
ð 	
r/   ©	ÚafterÚbeforeÚlimitÚorderÚrun_idr8   r9   r:   r;   c       	        óì   — |st        d|›�«      ‚ddi|xs i ¥}| j                  t        d|¬«      t        t           t        |||	|
t        |||||dœt        j                  «      ¬«      t        ¬«      S ©	ah  
        Returns a list of messages for a given thread.

        Args:
          after: A cursor for use in pagination. `after` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              ending with obj_foo, your subsequent call can include after=obj_foo in order to
              fetch the next page of the list.

          before: A cursor for use in pagination. `before` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              starting with obj_foo, your subsequent call can include before=obj_foo in order
              to fetch the previous page of the list.

          limit: A limit on the number of objects to be returned. Limit can range between 1 and
              100, and the default is 20.

          order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending
              order and `desc` for descending order.

          run_id: Filter messages by the run ID that generated them.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r>   r?   r@   rA   rB   )rc   rd   re   rf   rg   )r8   r9   r:   r;   Úquery)ÚpagerJ   Úmodel)	rL   Ú_get_api_listr   r   r    r   r   r   ÚMessageListParams©r,   rC   rc   rd   re   rf   rg   r8   r9   r:   r;   s              r-   ÚlistzMessages.listÍ   sœ   € ñ^ ÜÐWÐXaÐWdÐeÓfÐfØ&¨ÐQ¸MÒ<OÈRÐQˆØ×!Ñ!ÜÐ9ÀYÔOÜ¤Ñ(Ü(Ø+Ø'Ø%ØÜ%à!&Ø"(Ø!&Ø!&Ø"(ñô (×9Ñ9ó	ôô  ð' "ó 
ð 	
r/   c          	     ó¸   — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        ||||¬«      t        ¬«      S )	áF  
        Deletes a message.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r>   rS   r?   r@   rT   rU   rG   rW   ©rL   Ú_deleter   r   r"   rZ   s          r-   ÚdeletezMessages.delete  s…   € ñ2 ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ�|‰|ÜÐFÐR[ÐhrÔsÜ(Ø+¸ÐQ[Ðelôô #ð ó 
ð 	
r/   )Úreturnr*   )rv   r2   ©rC   ÚstrrE   z-Union[str, Iterable[MessageContentPartParam]]rF   zLiteral['user', 'assistant']r6   z;Optional[Iterable[message_create_params.Attachment]] | Omitr7   úOptional[Metadata] | Omitr8   úHeaders | Noner9   úQuery | Noner:   úBody | Noner;   ú'float | httpx.Timeout | None | NotGivenrv   r    ©rV   rx   rC   rx   r8   rz   r9   r{   r:   r|   r;   r}   rv   r    ©rV   rx   rC   rx   r7   ry   r8   rz   r9   r{   r:   r|   r;   r}   rv   r    )rC   rx   rc   ú
str | Omitrd   r€   re   ú
int | Omitrf   úLiteral['asc', 'desc'] | Omitrg   r€   r8   rz   r9   r{   r:   r|   r;   r}   rv   zSyncCursorPage[Message]©rV   rx   rC   rx   r8   rz   r9   r{   r:   r|   r;   r}   rv   r"   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r.   r3   Útyping_extensionsÚ
deprecatedr   r   rP   r[   ra   rp   ru   © r/   r-   r$   r$      s  „ Ù>àò-ó ð-ð ò3ó ð3ð "Ð×!Ñ!Ð"bÓcð TXØ.2ð )-Ø$(Ø"&Ø;Dñ@
àð@
ð ?ð	@
ð
 +ð@
ð Qð@
ð ,ð@
ð &ð@
ð "ð@
ð  ð@
ð 9ð@
ð 
ò@
ó dð@
ðD "Ð×!Ñ!Ð"bÓcð )-Ø$(Ø"&Ø;Dñ#
àð#
ð ð	#
ð &ð#
ð "ð#
ð  ð#
ð 9ð#
ð 
ò#
ó dð#
ðJ "Ð×!Ñ!Ð"bÓcð /3ð )-Ø$(Ø"&Ø;Dñ,
àð,
ð ð	,
ð
 ,ð,
ð &ð,
ð "ð,
ð  ð,
ð 9ð,
ð 
ò,
ó dð,
ð\ "Ð×!Ñ!Ð"bÓcð
 !Ø!Ø Ø/3Ø!ð )-Ø$(Ø"&Ø;DñE
àðE
ð ð	E
ð
 ðE
ð ðE
ð -ðE
ð ðE
ð &ðE
ð "ðE
ð  ðE
ð 9ðE
ð 
!òE
ó dðE
ðN "Ð×!Ñ!Ð"bÓcð )-Ø$(Ø"&Ø;Dñ#
àð#
ð ð	#
ð &ð#
ð "ð#
ð  ð#
ð 9ð#
ð 
ò#
ó dñ#
r/   c                  ó  — e Zd ZdZedd„«       Zedd„«       Z ej                  d«      e	e	ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„«       Z ej                  d«      e	ddde
d
œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      e	e	e	e	e	ddde
dœ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ej                  d«      ddde
dœ	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zy)r%   r'   c                ó   — t        | «      S r)   )ÚAsyncMessagesWithRawResponser+   s    r-   r.   zAsyncMessages.with_raw_response?  s   € ô ,¨DÓ1Ð1r/   c                ó   — t        | «      S r1   )Ú"AsyncMessagesWithStreamingResponser+   s    r-   r3   z%AsyncMessages.with_streaming_responseI  s   € ô 2°$Ó7Ð7r/   r4   Nr5   c          
   ƒ  ó  K  — |st        d|›�«      ‚ddi|xs i ¥}| j                  t        d|¬«      t        ||||dœt        j
                  «      ƒ d{  –—† t        ||||	¬«      t        ¬	«      ƒ d{  –—† S 7 Œ$7 Œ­w)
r=   r>   r?   r@   rA   rB   rD   NrG   rH   )rL   rM   r   r   r   rN   r   r    rO   s
             r-   rP   zAsyncMessages.createR  s©   è ø€ ñ^ ÜÐWÐXaÐWdÐeÓfÐfØ&¨ÐQ¸MÒ<OÈRÐQˆØ—Z‘ZÜÐ9ÀYÔOÜ,à&Ø Ø#.Ø (ñ	ô &×9Ñ9ó÷ ô )Ø+¸ÐQ[Ðelôô ð  ó 
÷ 
ð 	
ðøð
ús$   ‚AA?ÁA;
ÁA?Á6A=Á7A?Á=A?rG   c          	   ƒ  óÔ   K  — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        ||||¬«      t        ¬«      ƒ d	{  –—† S 7 Œ­w)
rR   r>   rS   r?   r@   rT   rU   rG   rW   NrX   rZ   s          r-   r[   zAsyncMessages.retrieve•  s“   è ø€ ñ2 ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ—Y‘YÜÐFÐR[ÐhrÔsÜ(Ø+¸ÐQ[Ðelôô ð ó 
÷ 
ð 	
ð 
úó   ‚AA(Á!A&Á"A(r\   c          
   ƒ  ó  K  — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        d|it        j
                  «      ƒ d{  –—† t        ||||¬	«      t        ¬
«      ƒ d{  –—† S 7 Œ$7 Œ­w)r^   r>   rS   r?   r@   rT   rU   r7   NrG   rH   )rL   rM   r   r   r   r_   r   r    r`   s           r-   ra   zAsyncMessages.update»  s±   è ø€ ñB ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ—Z‘ZÜÐFÐR[ÐhrÔsÜ,¨j¸(Ð-CÔEZ×EnÑEnÓo×oÜ(Ø+¸ÐQ[Ðelôô ð  ó 
÷ 
ð 	
àoøð
ús$   ‚A"BÁ$B	
Á%BÂBÂBÂBrb   c       	        óì   — |st        d|›�«      ‚ddi|xs i ¥}| j                  t        d|¬«      t        t           t        |||	|
t        |||||dœt        j                  «      ¬«      t        ¬«      S ri   )	rL   rm   r   r   r    r   r   r   rn   ro   s              r-   rp   zAsyncMessages.listê  sœ   € ñ^ ÜÐWÐXaÐWdÐeÓfÐfØ&¨ÐQ¸MÒ<OÈRÐQˆØ×!Ñ!ÜÐ9ÀYÔOÜ ¤Ñ)Ü(Ø+Ø'Ø%ØÜ%à!&Ø"(Ø!&Ø!&Ø"(ñô (×9Ñ9ó	ôô  ð' "ó 
ð 	
r/   c          	   ƒ  óÔ   K  — |st        d|›�«      ‚|st        d|›�«      ‚ddi|xs i ¥}| j                  t        d||¬«      t        ||||¬«      t        ¬«      ƒ d	{  –—† S 7 Œ­w)
rr   r>   rS   r?   r@   rT   rU   rG   rW   Nrs   rZ   s          r-   ru   zAsyncMessages.delete2  s“   è ø€ ñ2 ÜÐWÐXaÐWdÐeÓfÐfÙÜÐXÐYcÐXfÐgÓhÐhØ&¨ÐQ¸MÒ<OÈRÐQˆØ—\‘\ÜÐFÐR[ÐhrÔsÜ(Ø+¸ÐQ[Ðelôô #ð "ó 
÷ 
ð 	
ð 
úr“   )rv   rŽ   )rv   r�   rw   r~   r   )rC   rx   rc   r€   rd   r€   re   r�   rf   r‚   rg   r€   r8   rz   r9   r{   r:   r|   r;   r}   rv   z1AsyncPaginator[Message, AsyncCursorPage[Message]]rƒ   r„   r‹   r/   r-   r%   r%   <  s  „ Ù>àò2ó ð2ð ò8ó ð8ð "Ð×!Ñ!Ð"bÓcð TXØ.2ð )-Ø$(Ø"&Ø;Dñ@
àð@
ð ?ð	@
ð
 +ð@
ð Qð@
ð ,ð@
ð &ð@
ð "ð@
ð  ð@
ð 9ð@
ð 
ò@
ó dð@
ðD "Ð×!Ñ!Ð"bÓcð )-Ø$(Ø"&Ø;Dñ#
àð#
ð ð	#
ð &ð#
ð "ð#
ð  ð#
ð 9ð#
ð 
ò#
ó dð#
ðJ "Ð×!Ñ!Ð"bÓcð /3ð )-Ø$(Ø"&Ø;Dñ,
àð,
ð ð	,
ð
 ,ð,
ð &ð,
ð "ð,
ð  ð,
ð 9ð,
ð 
ò,
ó dð,
ð\ "Ð×!Ñ!Ð"bÓcð
 !Ø!Ø Ø/3Ø!ð )-Ø$(Ø"&Ø;DñE
àðE
ð ð	E
ð
 ðE
ð ðE
ð -ðE
ð ðE
ð &ðE
ð "ðE
ð  ðE
ð 9ðE
ð 
;òE
ó dðE
ðN "Ð×!Ñ!Ð"bÓcð )-Ø$(Ø"&Ø;Dñ#
àð#
ð ð	#
ð &ð#
ð "ð#
ð  ð#
ð 9ð#
ð 
ò#
ó dñ#
r/   c                  ó   — e Zd Zdd„Zy)r*   c                óz  — || _         t        j                  |j                  «      | _        t        j                  |j                  «      | _        t        j                  |j
                  «      | _        t        j                  |j                  «      | _        t        j                  |j                  «      | _        y ©N)Ú	_messagesr	   Úto_raw_response_wrapperrP   r[   ra   rp   ru   ©r,   Úmessagess     r-   Ú__init__z MessagesWithRawResponse.__init__Z  s¡   € Ø!ˆŒô ×4Ñ4Ø—‘óð 	Œô ×4Ñ4Ø×!Ñ!óð 	Œô ×4Ñ4Ø—‘óð 	Œô ×4Ñ4Ø—‘óð 	Œ	ô ×4Ñ4Ø—‘óð 	�r/   N©r�   r$   rv   ÚNone©r…   r†   r‡   rž   r‹   r/   r-   r*   r*   Y  ó   „ ô
r/   r*   c                  ó   — e Zd Zdd„Zy)rŽ   c                óz  — || _         t        j                  |j                  «      | _        t        j                  |j                  «      | _        t        j                  |j
                  «      | _        t        j                  |j                  «      | _        t        j                  |j                  «      | _        y r™   )rš   r	   Úasync_to_raw_response_wrapperrP   r[   ra   rp   ru   rœ   s     r-   rž   z%AsyncMessagesWithRawResponse.__init__y  s¡   € Ø!ˆŒô ×:Ñ:Ø—‘óð 	Œô ×:Ñ:Ø×!Ñ!óð 	Œô ×:Ñ:Ø—‘óð 	Œô ×:Ñ:Ø—‘óð 	Œ	ô ×:Ñ:Ø—‘óð 	�r/   N©r�   r%   rv   r    r¡   r‹   r/   r-   rŽ   rŽ   x  r¢   r/   rŽ   c                  ó   — e Zd Zdd„Zy)r2   c                ó  — || _         t        |j                  «      | _        t        |j                  «      | _        t        |j                  «      | _        t        |j
                  «      | _        t        |j                  «      | _        y r™   )rš   r   rP   r[   ra   rp   ru   rœ   s     r-   rž   z&MessagesWithStreamingResponse.__init__˜  sƒ   € Ø!ˆŒô )Ø—‘óð 	Œô )Ø×!Ñ!óð 	Œô )Ø—‘óð 	Œô )Ø—‘óð 	Œ	ô )Ø—‘óð 	�r/   NrŸ   r¡   r‹   r/   r-   r2   r2   —  r¢   r/   r2   c                  ó   — e Zd Zdd„Zy)r�   c                ó  — || _         t        |j                  «      | _        t        |j                  «      | _        t        |j                  «      | _        t        |j
                  «      | _        t        |j                  «      | _        y r™   )rš   r   rP   r[   ra   rp   ru   rœ   s     r-   rž   z+AsyncMessagesWithStreamingResponse.__init__·  sƒ   € Ø!ˆŒô /Ø—‘óð 	Œô /Ø×!Ñ!óð 	Œô /Ø—‘óð 	Œô /Ø—‘óð 	Œ	ô /Ø—‘óð 	�r/   Nr¦   r¡   r‹   r/   r-   r�   r�   ¶  r¢   r/   r�   )8Ú
__future__r   r‰   Útypingr   r   r   r   ÚhttpxÚ r	   Ú_typesr
   r   r   r   r   r   r   Ú_utilsr   r   r   Ú_compatr   Ú	_resourcer   r   Ú	_responser   r   Ú
paginationr   r   Ú_base_clientr   r   Útypes.beta.threadsr   r   r   Útypes.beta.threads.messager    Útypes.shared_params.metadatar!   Ú"types.beta.threads.message_deletedr"   Ú-types.beta.threads.message_content_part_paramr#   Ú__all__r$   r%   r*   rŽ   r2   r�   r‹   r/   r-   ú<module>r¼      s¢   ðõ #ã ß ,Ñ ,Ý %ã å !ß L× LÑ Lß LÑ LÝ 'ß ;ß Zß :÷÷ eÑ dÝ 2Ý 5Ý AÝ Uà�Ð
'€ôZ
ˆô Z
ôzZ
Ð$ô Z
÷z
ñ 
÷>
ñ 
÷>
ñ 
÷>
ò 
r/   