Ë
    lQêj»( ã                   óJ  — d dl mZmZmZmZmZmZmZmZm	Z	 d dl
Z
d dl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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# d dl$m%Z% d dl&m'Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl0m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZT d dlUZUd dlVmWZW d dlXmYZYmZZ[ d dl\m]Z] d dl^m_Z_ d dl`maZambZb d dlcmdZdmeZe d dlfmgZgmhZhmiZimjZj d d l`mkZl  eUjÚ                  en«      Zod!„ Zpd"ed#dfd$„Zqd%ed&eegef   d#efd'„Zrd%ed&eegef   d#efd(„Zsd%ed&eegef   d#efd)„Zt ed*e%d+¬,«      Zud-eeu   d.ed#eufd/„Zv G d0„ d1e
jî                  «      Zx G d2„ d3eH«      Zy)4é    )	ÚAnyÚCallableÚcastÚDictÚSequenceÚOptionalÚTypeÚTypeVarÚTupleN)Ú	to_threadÚCapacityLimiter)ÚFastAPIÚResponseÚRequest)Úget_openapi)ÚCORSMiddleware©ÚORJSONResponse)ÚAPIRoute)ÚHTTPExceptionÚstatus)Úwraps)Ú.load_update_collection_configuration_from_jsonÚ.load_create_collection_configuration_from_jsonÚ?create_collection_configuration_from_legacy_collection_metadataÚCreateCollectionConfiguration)Ú	BaseModel)Ú__version__)ÚDeleteResultÚ	EmbeddingÚ	GetResultÚQueryResultÚ
EmbeddingsÚconvert_list_embeddings_to_np)ÚUserIdentity)ÚAuthzActionÚAuthzResourceÚServerAuthenticationProviderÚServerAuthorizationProvider)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSettingsÚSystem)Ú	ServerAPI)ÚChromaErrorÚInvalidDimensionExceptionÚInvalidHTTPVersionÚRateLimitErrorÚ
QuotaError)ÚQuotaEnforcer)ÚAsyncRateLimitEnforcer)ÚServer)	ÚAddEmbeddingÚCreateDatabaseÚCreateTenantÚDeleteEmbeddingÚGetEmbeddingÚQueryEmbeddingÚCreateCollectionÚUpdateCollectionÚUpdateEmbedding)ÚHeaders)ÚServerStartEvent)Úfastapi_json_responseÚstring_to_uuid)Útrace)Úinstrument_fastapi)ÚDatabaseÚTenant)ÚServerContextÚProductTelemetryClient)ÚOpenTelemetryClientÚOpenTelemetryGranularityÚadd_attributes_to_current_spanÚtrace_method)Ú
Collectionc                 óT   ‡ — t        ‰ «      dt        dt        dt        fˆ fd„«       }|S )NÚargsÚkwargsÚreturnc               Ÿ   ól   •K  — | d   } |j                   j                  ‰«      | i |¤Žƒ d {  –—† S 7 Œ­w)Nr   )Ú_async_rate_limit_enforcerÚ
rate_limit)rP   rQ   ÚselfÚfuncs      €úe/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/server/fastapi/__init__.pyÚwrapperzrate_limit.<locals>.wrapper^   s9   øè ø€ à�A‰wˆØE�T×4Ñ4×?Ñ?ÀÓEÀtÐVÈvÑV×VÐVÐVús   ƒ*4­2®4)r   r   )rW   rY   s   ` rX   rU   rU   ]   s:   ø€ Ü
ˆ4ƒ[ðWœSð W¬Cð W´Cô Wó ðWð €Nó    ÚapprR   c                 ó�   — | j                   D ]7  }t        |t        «      sŒ|j                  d|j                  v rdndz   |_        Œ9 y)z›
    Simplify operation IDs so that generated API clients have simpler function
    names.
    Should be called only after all routes have been added.
    Úv2z-v2z-v1N)ÚroutesÚ
isinstancer   ÚnameÚpathÚoperation_id)r[   Úroutes     rX   Ú use_route_names_as_operation_idsrd   f   sB   € ð —‘ò WˆÜ�eœXÕ&Ø!&§¡¸ÀÇ
Á
Ñ8J©uÐPUÑ!VˆEÕñWrZ   ÚrequestÚ	call_nextc              ƒ   ó¼   K  — t        j                  «       j                  «       j                  } || «      ƒ d {  –—† }t	        |d«      |j
                  d<   |S 7 Œ­w)NÚxzChroma-Trace-Id)rD   Úget_current_spanÚget_span_contextÚtrace_idÚformatÚheaders)re   rf   rk   Úresponses       rX   Ú#add_trace_id_to_response_middlewarero   q   sT   è ø€ ô ×%Ñ%Ó'×8Ñ8Ó:×CÑC€HÙ˜wÓ'×'€HÜ*0°¸3Ó*?€H×ÑÐ&Ñ'Ø€Oð (ús   ‚8AºA» Ac              ƒ   ó–  K  — 	  || «      ƒ d {  –—† S 7 Œ# t         $ r}t        |«      cY d }~S d }~wt        $ r#}t        dt	        |«      dœd¬«      cY d }~S d }~wt
        $ r#}t        dt	        |«      dœd¬«      cY d }~S d }~wt        $ r7}t        j                  |«       t        dt        |«      id¬«      cY d }~S d }~ww xY w­w)NÚInvalidArgumentError)ÚerrorÚmessageé�  )ÚcontentÚstatus_coderr   éô  )
r/   rB   Ú
ValueErrorr   ÚstrÚ	TypeErrorÚ	ExceptionÚloggerÚ	exceptionÚrepr)re   rf   Úes      rX   Úcatch_exceptions_middlewarer€   z   s´   è ø€ ðKÙ˜wÓ'×'Ð'Ð'ùÜò (Ü$ QÓ'Õ'ûÜò 
ÜØ4ÄÀQÃÑHØô
õ 	
ûô ò 
ÜØ4ÄÀQÃÑHØô
õ 	
ûô ò KÜ×Ñ˜ÔÜ w´°Q³Ð&8ÀcÔJÕJûðKüs   ‚C	„ �� “C	” –	CŸ
/©CªC	¯C»AÁCÁC	ÁCÁ%BÁ=CÁ>C	ÂCÂ,CÂ;CÂ<C	ÃCÃC	c              ƒ   óŠ   K  — | j                   j                  d«      }|dvrt        d|› d�«      ‚ || «      ƒ d {  –—† S 7 Œ­w)NÚhttp_version)z1.1Ú2zHTTP version z is not supported)ÚscopeÚgetr1   )re   rf   r‚   s      rX   Úcheck_http_version_middlewarer†   �   sJ   è ø€ ð —=‘=×$Ñ$ ^Ó4€LØ˜<Ñ'Ü  =°°Ð>OÐ!PÓQÐQÙ˜7Ó#×#Ð#Ð#ús   ‚:A¼A½AÚDT)ÚboundÚcontravariantÚmodelÚdatac                 óf   — 	 | j                  |«      S # t        $ r | j                  |«      cY S w xY w)z1Used for backward compatibility with Pydantic 1.x)Úmodel_validateÚAttributeErrorÚ	parse_obj)rŠ   r‹   s     rX   Úvalidate_modelr�   œ   s6   € ð%Ø×#Ñ# DÓ)Ð)øÜò %Ø�‰˜tÓ$Ò$ð%ús   ‚ “0¯0c                   ó0   ‡ — e Zd Zdedededdfˆ fd„Zˆ xZS )ÚChromaAPIRouterra   rP   rQ   rR   Nc                 óô   •‡— d|v xr |d    Šdt         dt        fˆfd„} ||«      |d<   t        ‰| �  |g|¢­i |¤Ž |j	                  d«      r|d d }n|dz   } ||«      |d<   t        ‰| �  |g|¢­i |¤Ž y )NÚinclude_in_schemara   rR   c                 ó2   •— ‰ xr | j                  d«       S )Nú/)Úendswith)ra   Úexclude_from_schemas    €rX   r”   z8ChromaAPIRouter.add_api_route.<locals>.include_in_schema°   s   ø€ à*Ð*ÒE°4·=±=ÀÓ3EÐ/EÐErZ   r–   éÿÿÿÿ)ry   ÚboolÚsuperÚadd_api_router—   )rV   ra   rP   rQ   r”   r˜   Ú	__class__s        @€rX   rœ   zChromaAPIRouter.add_api_route¨   s¦   ù€ ð
   6Ð)ÒM°&Ð9LÑ2MÐ.Mð 	ð	F¤Cð 	F¬Dõ 	Fñ '8¸Ó&=ˆÐ"Ñ#Ü‰Ñ˜dÐ4 TÒ4¨VÒ4à�=‰=˜ÔØ˜˜�9‰Dà˜#‘:ˆDá&7¸Ó&=ˆÐ"Ñ#Ü‰Ñ˜dÐ4 TÒ4¨VÓ4rZ   )Ú__name__Ú
__module__Ú__qualname__ry   r   rœ   Ú__classcell__)r�   s   @rX   r’   r’   ¤   s)   ø„ ð5 #ð 5¨cð 5¸Sð 5ÀT÷ 5ñ 5rZ   r’   c                   óJ  — e Zd Zdefd„Zdeeef   fd„Zde	e
   deeef   fd„Zd{d„Zd{d	„Zdej                  fd
„Zdededefd„Zdeeef   fd„Zdededefd„Zdeeef   fd„Zdefd„Zdeddfd„Z edej<                  «      ede de!de"e   de"e   de"e   ddfd„«       «       Z# edej<                  «      de de!de"e   de"e   de"e   ddfd„«       Z$ edej<                  «      dede%fd„«       Z& edej<                  «      dededdfd„«       Z' ed ej<                  «      ded!edede(fd"„«       Z) ed#ej<                  «      ded!ededdfd$„«       Z* ed%ej<                  «      deddfd&„«       Z+ ed'ej<                  «      dedede,fd(„«       Z- ed)ej<                  «      	 	 d|deded*e"e   d+e"e   de.e(   f
d,„«       Z/ ed-ej<                  «      	 	 d|deded!ed*e"e   d+e"e   de.e0   fd.„«       Z1 ed/ej<                  «      deded!edefd0„«       Z2 ed1ej<                  «      deded!ede0fd2„«       Z3 ed3ej<                  «      deded!ed4ede0f
d5„«       Z4 ed6ej<                  «      deded!ed7ede0f
d8„«       Z5 ed9ej<                  «      ded!ed7ededdf
d:„«       Z6 ed;ej<                  «      ded4eded!eddf
d<„«       Z7 ed=ej<                  «      ededed!ed7edeeef   f
d>„«       «       Z8 ed?ej<                  «      ededed!ed7ed@edeeef   fdA„«       «       Z9 edBej<                  «      ededed!ed7ede:f
dC„«       «       Z; edDej<                  «      ededed!ed7eddf
dE„«       «       Z< edFej<                  «      ededed!ed7eddf
dG„«       «       Z= edHej<                  «      ed7eded!edede>f
dI„«       «       Z? edJej<                  «      ed7eded!edede@f
dK„«       «       ZA edLej<                  «      ededed!ed7edef
dM„«       «       ZB edNej<                  «      edede:fdO„«       «       ZC edPej<                  «      eded!ed7ededeDf
dQ„«       «       ZEdeeef   fdR„ZFd{dS„ZG edTej<                  «      ede de!de"e   de"e   de"e   deHe"e   e"e   f   fdU„«       «       ZIde de!de"e   de"e   de"e   deHe"e   e"e   f   fdV„ZJ edWej<                  «      eeKfdededdfdX„«       «       ZL edYej<                  «      eeKfdededede(fdZ„«       «       ZM ed[ej<                  «      ededdfd\„«       «       ZN ed]ej<                  «      ededede,fd^„«       «       ZO ed_ej<                  «      eddeKePfded*e"e   d+e"e   dedede.e0   fd`„«       «       ZQ edaej<                  «      eeKePfdedededefdb„«       «       ZR edcej<                  «      eeKePfdededede0fdd„«       «       ZS edeej<                  «      eeKePfded4ededede0f
df„«       «       ZT edgej<                  «      ed7ededdfdh„«       «       ZU ediej<                  «      eeKePfded4edededdf
dj„«       «       ZV edkej<                  «      eded7ede:fdl„«       «       ZW edmej<                  «      ded7eddfdn„«       ZX edoej<                  «      eded7eddfdp„«       «       ZY edqej<                  «      ed7edede>fdr„«       «       ZZ edsej<                  «      ed7edede@fdt„«       «       Z[ eduej<                  «      eded7edefdv„«       «       Z\ edwej<                  «      edede:fdx„«       «       Z] edyej<                  «      ed7ededeDfdz„«       «       Z^y)}r   Úsettingsc                 óä  — t         j                  t        _        t	        j
                  dt        ¬«      | _        t        |«      | _	        | j                  j                  t        «      | _        i | _        | j                  | j                  _        | j                  j!                  t"        «      | _        t'        |j(                  «      | _        | j                  j!                  t,        «      | _        | j                  j1                  «         | j                  j3                  d«      t4        «        | j                  j3                  d«      t6        «        | j                  j3                  d«      t8        «       | j                  j;                  t<        dg|j>                  dg¬«       | j                  jA                  tB        | jD                  «       | j                  jA                  tF        | jH                  «       | j                  j!                  tJ        «      | _&         | j                  jO                  d«      | jP                  «       d | _)        |jT                  r$| j                  j!                  tV        «      | _)        d | _,        |jZ                  r$| j                  j!                  t\        «      | _,        t_        «       | _0        | jc                  «        | je                  «        | j                  jg                  | j`                  «       ti        | j                  «       tk        | j                  «       | j                  j                  t        «      }|jm                  to        «       «       y )NT)ÚdebugÚdefault_response_classÚhttpÚ*)Úallow_headersÚallow_originsÚallow_methodsÚshutdown)8rH   ÚFASTAPIrI   ÚSERVER_CONTEXTÚfastapir   r   Ú_appr-   Ú_systemÚinstancer.   Ú_apiÚ_extra_openapi_schemasÚgenerate_openapiÚopenapiÚrequirerJ   Ú_opentelemetry_clientr   Úchroma_server_thread_pool_sizeÚ_capacity_limiterr4   Ú_quota_enforcerÚstartÚ
middlewarer†   r€   ro   Úadd_middlewarer   Ú chroma_server_cors_allow_originsÚadd_exception_handlerr3   Úquota_exception_handlerr2   Úrate_limit_exception_handlerr5   rT   Úon_eventr¬   Úauthn_providerÚchroma_server_authn_providerr(   Úauthz_providerÚchroma_server_authz_providerr)   r’   ÚrouterÚsetup_v1_routesÚsetup_v2_routesÚinclude_routerrd   rE   ÚcapturerA   )rV   r£   Útelemetry_clients      rX   Ú__init__zFastAPI.__init__Á   sk  € Ü0=×0EÑ0EÔÔ-ä—O‘O¨$Ä~ÔVˆŒ	Ü˜hÓ'ˆŒØ#Ÿ|™|×4Ñ4´YÓ?ˆŒ	à68ˆÔ#Ø ×1Ñ1ˆ�	‰	Ôà%)§Y¡Y×%6Ñ%6Ô7JÓ%KˆÔ"Ü!0Ø×3Ñ3ó"
ˆÔð  $Ÿ|™|×3Ñ3´MÓBˆÔØ�‰×ÑÔà$ˆ�	‰	×Ñ˜VÓ$Ô%BÔCØ$ˆ�	‰	×Ñ˜VÓ$Ô%@ÔAØ$ˆ�	‰	×Ñ˜VÓ$Ô%HÔIØ�	‰	× Ñ ÜØ˜%Ø"×CÑCØ˜%ð	 	!ô 	
ð 	�	‰	×'Ñ'¬
°D×4PÑ4PÔQØ�	‰	×'Ñ'Ü˜D×=Ñ=ô	
ð +/¯,©,×*>Ñ*>Ô?UÓ*VˆÔ'à&ˆ�	‰	×Ñ˜:Ó& t§}¡}Ô5à"ˆÔØ×0Ò0Ø"&§,¡,×"6Ñ"6Ô7SÓ"TˆDÔà"ˆÔØ×0Ò0Ø"&§,¡,×"6Ñ"6Ô7RÓ"SˆDÔä%Ó'ˆŒà×ÑÔØ×ÑÔà�	‰	× Ñ  §¡Ô-ä(¨¯©Ô3Ü˜4Ÿ9™9Ô%ØŸ<™<×0Ñ0Ô1GÓHÐØ× Ñ Ô!1Ó!3Õ4rZ   rR   c                 ó¬   — t        d| j                  j                  t        ¬«      }| j                  j                  «       D ]  \  }}||d   d   |<   Œ |S )z_Used instead of the default openapi() generation handler to include manually-populated schemas.ÚChroma)Útitler^   ÚversionÚ
componentsÚschemas)r   r°   r^   Úchromadb_versionr´   Úitems)rV   ÚschemaÚkeyÚvalues       rX   rµ   zFastAPI.generate_openapi÷   s^   € ä!,ØØ—9‘9×#Ñ#Ü$ô"
ˆð ×5Ñ5×;Ñ;Ó=ò 	9‰JˆC�Ø38ˆF�<Ñ  Ñ+¨CÒ0ð	9ð ˆrZ   Úrequest_modelc                 óœ   — |j                  d¬«      }d|v r*|d   j                  «       D ]  \  }}|| j                  |<   Œ ddd|iiddœi}|S )	Nz#/components/schemas/{model})Úref_templatez$defsÚrequestBodyzapplication/jsonr×   T)ru   Úrequired)Úmodel_json_schemarÖ   r´   )rV   rÚ   r×   rØ   rÙ   Úopenapi_extras         rX   Ú!get_openapi_extras_for_body_modelz)FastAPI.get_openapi_extras_for_body_model  s   € ð ×0Ñ0Ø7ð 1ó 
ˆð �fÑØ$ W™o×3Ñ3Ó5ò 9‘
��UØ38�×+Ñ+¨CÒ0ð9ð Ø.°¸6Ð0BÐCØ ñð
ˆð ÐrZ   Nc           
      óâ
  — | j                   j                  d| j                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d| j
                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d	| j                  dgd ¬
«       | j                   j                  d| j                  dgd | j                  t        «      ¬«       | j                   j                  d| j                  dgd ¬
«       | j                   j                  d| j                  dgd ¬
«       | j                   j                  d| j                  dgd | j                  t        «      ¬«       | j                   j                  d| j                  dgd ¬
«       | j                   j                  d| j                   dgd ¬
«       | j                   j                  d| j"                  dgd ¬
«       | j                   j                  d| j$                  dgd ¬
«       | j                   j                  d| j&                  dgd | j                  t(        «      ¬«       | j                   j                  d| j*                  dgt,        j.                  d | j                  t0        «      ¬«       | j                   j                  d| j2                  dgd | j                  t4        «      ¬«       | j                   j                  d| j6                  dgd | j                  t0        «      ¬«       | j                   j                  d| j8                  dgd | j                  t:        «      ¬«       | j                   j                  d| j<                  dgt>        | j                  t@        «      ¬«       | j                   j                  d| jB                  dgd ¬
«       | j                   j                  d| jD                  dgd | j                  tF        ¬«      ¬«       | j                   j                  d| jH                  dgd ¬
«       | j                   j                  d| jJ                  dgd | j                  tL        «      ¬«       | j                   j                  d| jN                  dgd ¬
«       | j                   j                  d| jP                  dgd ¬
«       | j                   j                  d | jR                  dgd ¬
«       | j                   j                  d!| jT                  dgd ¬
«       y )"Nz/api/v2ÚGET©Úmethodsz/api/v2/resetÚPOSTz/api/v2/versionz/api/v2/heartbeatz/api/v2/pre-flight-checksz/api/v2/auth/identity©rå   Úresponse_modelz"/api/v2/tenants/{tenant}/databases©rå   rè   rà   z2/api/v2/tenants/{tenant}/databases/{database_name}ÚDELETEz/api/v2/tenantsz/api/v2/tenants/{tenant}z>/api/v2/tenants/{tenant}/databases/{database_name}/collectionszD/api/v2/tenants/{tenant}/databases/{database_name}/collections_countzR/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/add©rå   rv   rè   rà   zU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/updatezU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/upsertzR/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/getzU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/deletezT/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/countzT/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/query)rÚ   zP/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_name}zN/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}ÚPUTz_/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/functions/attachzh/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/functions/{function_name}zT/api/v2/tenants/{tenant}/databases/{database_name}/collections/by-id/{collection_id})+rÈ   rœ   ÚrootÚresetrÒ   Ú	heartbeatÚpre_flight_checksÚget_user_identityÚcreate_databaserá   r8   Úget_databaseÚdelete_databaseÚcreate_tenantr9   Ú
get_tenantÚlist_databasesÚlist_collectionsÚcount_collectionsÚcreate_collectionr=   Úaddr   ÚHTTP_201_CREATEDr7   Úupdater?   Úupsertr…   r;   Údeleter   r:   ÚcountÚget_nearest_neighborsr<   Úget_collectionÚupdate_collectionr>   Údelete_collectionÚattach_functionÚget_attached_functionÚget_collection_by_id©rV   s    rX   rÊ   zFastAPI.setup_v2_routes  sD  € Ø�‰×!Ñ! )¨T¯Y©YÀÀÐ!ÔHØ�‰×!Ñ! /°4·:±:ÈÀxÐ!ÔPØ�‰×!Ñ!Ð"3°T·\±\ÈEÈ7Ð!ÔSØ�‰×!Ñ!Ð"5°t·~±~ÐPUÈwÐ!ÔWØ�‰×!Ñ!Ø'¨×)?Ñ)?È%Èð 	"ô 	
ð 	�‰×!Ñ!Ø#Ø×"Ñ"Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø0Ø× Ñ Ø�HØØ×@Ñ@ÄÓPð 	"ô 	
ð 	�‰×!Ñ!Ø@Ø×ÑØ�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø@Ø× Ñ Ø�JØð	 	"ô 	
ð 	�‰×!Ñ!ØØ×ÑØ�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø&Ø�O‰OØ�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø0Ø×ÑØ�GØð	 	"ô 	
ð 	�‰×!Ñ!ØLØ×!Ñ!Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!ØRØ×"Ñ"Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!ØLØ×"Ñ"Ø�HØØ×@Ñ@ÔAQÓRð 	"ô 	
ð 	�‰×!Ñ!Ø`Ø�H‰HØ�HÜ×/Ñ/ØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!ØcØ�K‰KØ�HØØ×@Ñ@ÄÓQð 	"ô 	
ð 	�‰×!Ñ!ØcØ�K‰KØ�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø`Ø�H‰HØ�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!ØcØ�K‰KØ�HÜ'Ø×@Ñ@ÄÓQð 	"ô 	
ð 	�‰×!Ñ!ØbØ�J‰JØ�GØð	 	"ô 	
ð 	�‰×!Ñ!ØbØ×&Ñ&Ø�HØØ×@Ñ@Ü,ð Aó ð 	"ô 	
ð 	�‰×!Ñ!Ø^Ø×ÑØ�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø\Ø×"Ñ"Ø�GØØ×@Ñ@ÔAQÓRð 	"ô 	
ð 	�‰×!Ñ!Ø^Ø×"Ñ"Ø�JØð	 	"ô 	
ð 	�‰×!Ñ!ØmØ× Ñ Ø�HØð	 	"ô 	
ð 	�‰×!Ñ!ØvØ×&Ñ&Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!ØbØ×%Ñ%Ø�GØð	 	"õ 	
rZ   c                 ó8   — | j                   j                  «        y ©N)r±   Ústopr  s    rX   r¬   zFastAPI.shutdownÂ  s   € Ø�‰×ÑÕrZ   c                 ó   — | j                   S r
  )r°   r  s    rX   r[   zFastAPI.appÅ  s   € Ø�y‰yÐrZ   re   Úexcc              ƒ   ó(   K  — t        dddi¬«      S ­w)Ni­  rs   zRate limit exceeded.©rv   ru   r   ©rV   re   r  s      rX   rÂ   z$FastAPI.rate_limit_exception_handlerÈ  s!   è ø€ ô ØØÐ 6Ð7ô
ð 	
ùs   ‚c                 ó:   — d| j                   j                  «       iS )Nznanosecond heartbeat)r³   rï   r  s    rX   rí   zFastAPI.rootÐ  s   € Ø&¨¯	©	×(;Ñ(;Ó(=Ð>Ð>rZ   c              ƒ   óD   K  — t        dd|j                  «       i¬«      S ­w)Nrt   rs   r  )r   rs   r  s      rX   rÁ   zFastAPI.quota_exception_handlerÓ  s&   è ø€ ô ØØ §¡£Ð.ô
ð 	
ùs   ‚ c              ƒ   ó*   K  — | j                  «       S ­wr
  )rí   r  s    rX   rï   zFastAPI.heartbeatÛ  s   è ø€ Ø�y‰y‹{Ðùs   ‚c              ƒ   ó>   K  — | j                   j                  «       S ­wr
  )r³   Úget_versionr  s    rX   rÒ   zFastAPI.versionÞ  s   è ø€ Ø�y‰y×$Ñ$Ó&Ð&ùs   ‚c                 ó@   — | j                   j                  d|i¬«       y)zU
        Set context about the request on any components that might need it.
        re   )ÚcontextN)r»   Úset_context©rV   re   s     rX   Ú_set_request_contextzFastAPI._set_request_contextá  s    € ð 	×Ñ×(Ñ(°)¸WÐ1EÐ(ÕFrZ   Úauth_requestrm   ÚactionÚtenantÚdatabaseÚ
collectionc              ƒ   óh   K  — t        j                  | j                  g|||||f¢­Ž ƒ d {  –—† S 7 Œ­wr
  )r   Úrun_syncÚsync_auth_request©rV   rm   r  r  r  r  s         rX   r  zFastAPI.auth_requestç  sC   è ø€ ô ×'Ñ'à×"Ñ"ð
ð �v˜v x°Ð<ò
÷ 
ð 	
ð 
ús   ‚)2«0¬2zFastAPI.sync_auth_requestc                 ó  — | j                   st        |||dœ«       y| j                   j                  t        |«      «      }| j                  syt        |||¬«      }| j                  j                  |||«       t        |||dœ«       y)zï
        Authenticates and authorizes the request based on the given headers
        and other parameters. If the request cannot be authenticated or cannot
        be authorized (with the configured providers), raises an HTTP 401.
        ©r  r  r  N)rÄ   rL   Úauthenticate_or_raiseÚdictrÆ   r'   Úauthorize_or_raise)rV   rm   r  r  r  r  Úuser_identityÚauthz_resources           rX   r"  zFastAPI.sync_auth_requestú  s–   € ð" ×"Ò"Ü*à$Ø (Ø",ñôð à×+Ñ+×AÑAÄ$ÀwÃ-ÓPˆà×"Ò"Øä&ØØØ!ô
ˆð 	×Ñ×.Ñ.¨}¸fÀnÔUÜ&à Ø$Ø(ñô	
ð 	rZ   zFastAPI.get_user_identityc              ƒ   ó¶   ‡ ‡K  — ‰ j                   st        dt        t        g¬«      S t	        t        t        j                  ˆˆ fd„«      ƒ d {  –—† «      S 7 Œ­w)NÚ )Úuser_idr  Ú	databasesc                  ó|   •— t        t        ‰j                  «      j                  t	        ‰ j
                  «      «      S r
  )r   r(   rÄ   r&  r'  rm   )re   rV   s   €€rX   ú<lambda>z+FastAPI.get_user_identity.<locals>.<lambda>7  s.   ø€ œÜ0°$×2EÑ2Eóç'Ñ'¬¨W¯_©_Ó(=Ó>ð rZ   )rÄ   r%   r+   r*   r   r   r!  r  s   ``rX   rñ   zFastAPI.get_user_identity*  sY   ùè ø€ ð
 ×"Ò"ÜØ¤>Ô>NÐ=Oôð ô ÜÜ×$Ñ$ô?ó÷ ó
ð 	
ðús   „A
AÁA
Á	AzFastAPI.create_databasec              ƒ   óæ   ‡ ‡K  — dt         dt        dt        dd fˆˆ fd„}t        j                  ||‰j
                  ‰j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nr  rm   Úraw_bodyrR   c                 ó  •— t        t        t        j                  |«      «      }‰j	                  |t
        j                  | |j                  d «       ‰j                  ‰¬«       ‰j                  j                  |j                  | «      S )N©re   )r�   r8   ÚorjsonÚloadsr"  r&   ÚCREATE_DATABASEr`   r  r³   rò   )r  rm   r2  Údbre   rV   s       €€rX   Úprocess_create_databasez8FastAPI.create_database.<locals>.process_create_databaseC  sq   ø€ ô  ¤´·±¸XÓ0FÓGˆBð ×"Ñ"ØÜ×+Ñ+ØØ—‘Øôð ×%Ñ%¨gÐ%Ô6à—9‘9×,Ñ,¨R¯W©W°fÓ=Ð=rZ   ©Úlimiter©ry   r@   Úbytesr   r!  rm   Úbodyrº   ©rV   re   r  r9  s   ``  rX   rò   zFastAPI.create_database=  ss   ùè ø€ ð	>Üð	>Ü")ð	>Ü5:ð	>àö	>ô$ × Ñ Ø#ØØ�O‰OØ—,‘,“.× Ø×*Ñ*ô
÷ 	
ñ 	
ð !øð		
ús$   „AA1ÁA-ÁA1Á'A/Á(A1Á/A1zFastAPI.get_databaseÚdatabase_namec           	   ƒ   ó  K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—†  t	        t
        t        j                  | j                  j                  ||| j                  ¬«      ƒ d {  –—† «      S 7 ŒQ7 Œ
­w©Nr:  )r  rm   r&   ÚGET_DATABASEr   rF   r   r!  r³   ró   rº   ©rV   re   r@  r  s       rX   ró   zFastAPI.get_database]  s…   è ø€ ð ×ÑØ�O‰OÜ×$Ñ$ØØØó
÷ 	
ð 	
ô ÜÜ×$Ñ$Ø—	‘	×&Ñ&ØØØ×.Ñ.ô	÷ ó
ð 	
ð	
øðús"   ‚1B	³B´AB	Á<B
Á=	B	ÂB	zFastAPI.delete_databasec              ƒ   óü   K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—†  t	        j
                  | j                  j                  ||| j                  ¬«      ƒ d {  –—†  y 7 ŒD7 Œ­wrB  )	r  rm   r&   ÚDELETE_DATABASEr   r!  r³   rô   rº   rD  s       rX   rô   zFastAPI.delete_databasew  sz   è ø€ ð ×ÑØ�O‰OÜ×'Ñ'ØØØó
÷ 	
ð 	
ô × Ñ Ø�I‰I×%Ñ%ØØØ×*Ñ*ô	
÷ 	
ñ 	
ð	
øð	
ús!   ‚1A<³A8´>A<Á2A:Á3A<Á:A<zFastAPI.create_tenantc              ƒ   óÀ   ‡ K  — dt         dt        dd fˆ fd„}t        j                  |||j	                  «       ƒ d {  –—† ‰ j
                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c                 ó  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  |j                  d d «       ‰j                  j                  |j                  «      S r
  )r�   r9   r5  r6  r"  rm   r&   ÚCREATE_TENANTr`   r³   rõ   )re   r2  r  rV   s      €rX   Úprocess_create_tenantz4FastAPI.create_tenant.<locals>.process_create_tenant“  s`   ø€ Ü#¤L´&·,±,¸xÓ2HÓIˆFð ×"Ñ"Ø—‘Ü×)Ñ)Ø—‘ØØôð —9‘9×*Ñ*¨6¯;©;Ó7Ð7rZ   r:  ©r   r=  r   r!  r>  rº   ©rV   re   rJ  s   `  rX   rõ   zFastAPI.create_tenantŽ  sa   øè ø€ ð
	8¬7ð 	8¼eð 	8Èõ 	8ô × Ñ Ø!ØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úó!   ƒ9A¼A½AÁAÁAÁAzFastAPI.get_tenantc              ƒ   ó  K  — | j                  |j                  t        j                  |d d «      ƒ d {  –—†  t	        t
        t        j                  | j                  j                  || j                  ¬«      ƒ d {  –—† «      S 7 ŒP7 Œ
­wrB  )r  rm   r&   Ú
GET_TENANTr   rG   r   r!  r³   rö   rº   )rV   re   r  s      rX   rö   zFastAPI.get_tenant¨  s‚   è ø€ ð ×ÑØ�O‰OÜ×"Ñ"ØØØó
÷ 	
ð 	
ô ÜÜ×$Ñ$Ø—	‘	×$Ñ$ØØ×.Ñ.ô÷ ó
ð 	
ð	
øðús"   ‚1B³B´ABÁ;B
Á<	BÂBzFastAPI.list_databasesÚlimitÚoffsetc           
   ƒ   ó&  K  — | j                  |j                  t        j                  |d d «      ƒ d {  –—†  t	        t
        t           t        j                  | j                  j                  |||| j                  ¬«      ƒ d {  –—† «      S 7 ŒY7 Œ
­wrB  )r  rm   r&   ÚLIST_DATABASESr   r   rF   r   r!  r³   r÷   rº   )rV   re   r  rP  rQ  s        rX   r÷   zFastAPI.list_databasesÀ  s�   è ø€ ð ×ÑØ�O‰OÜ×&Ñ&ØØØó
÷ 	
ð 	
ô Ü”XÑÜ×$Ñ$Ø—	‘	×(Ñ(ØØØØ×.Ñ.ô÷ ó	
ð 		
ð	
øðúó"   ‚1B³B´ABÂB
Â	BÂBzFastAPI.list_collectionsc              ƒ   ó  ‡ ‡K  — dt         t           dt         t           dt        dt        dt        t           f
ˆˆ fd„}t        t        t           t        j                  |||||‰ j                  ¬«      ƒ d {  –—† «      }|S 7 Œ
­w)NrP  rQ  r  r@  rR   c                 óÚ   •— ‰j                  ‰j                  t        j                  ||d «       ‰j	                  ‰¬«       t        d|i«       ‰j                  j                  ||| |¬«      S )Nr4  r  )r  r  rP  rQ  )r"  rm   r&   ÚLIST_COLLECTIONSr  rL   r³   rø   )rP  rQ  r  r@  re   rV   s       €€rX   Úprocess_list_collectionsz:FastAPI.list_collections.<locals>.process_list_collectionså  sq   ø€ ð ×"Ñ"Ø—‘Ü×,Ñ,ØØØôð ×%Ñ%¨gÐ%Ô6ä*¨H°fÐ+=Ô>Ø—9‘9×-Ñ-Ø¨¸UÈ6ð .ó ð rZ   r:  )	r   Úintry   r   ÚCollectionModelr   r   r!  rº   )rV   re   r  r@  rP  rQ  rX  Úapi_collection_modelss   ``      rX   rø   zFastAPI.list_collectionsÜ  sŽ   ùè ø€ ð	ÜœC‘=ð	Ü*2´3©-ð	ÜADð	ÜUXð	ä”oÑ&ö	ô& !%Ü”_Ñ%Ü×$Ñ$Ø(ØØØØØ×.Ñ.ô÷ ó
!
Ðð %Ð$ðús   „A4BÁ8B
Á9BzFastAPI.count_collectionsc           	   ƒ   ó0  K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—†  t	        d|i«       t        t        t        j                  | j                  j                  ||| j                  ¬«      ƒ d {  –—† «      S 7 Œ^7 Œ
­w©Nr  r:  )r  rm   r&   ÚCOUNT_COLLECTIONSrL   r   rY  r   r!  r³   rù   rº   )rV   re   r  r@  s       rX   rù   zFastAPI.count_collections  s’   è ø€ ð ×ÑØ�O‰OÜ×)Ñ)ØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:äÜÜ×$Ñ$Ø—	‘	×+Ñ+ØØØ×.Ñ.ô	÷ ó
ð 	
ð	
øðús"   ‚1B³B´ABÂ	B
Â
	BÂBzFastAPI.create_collectionc              ƒ   ó  ‡ K  — dt         dt        dt        dt        dt        f
ˆ fd„}t	        t        t        j                  |||||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|S 7 Œ"7 Œ­w)Nre   r  r  r2  rR   c                 ó   •— t        t        t        j                  |«      «      }|j                  s%|j
                  rt        |j
                  «      }nd }nt        |j                  «      }‰j                  | j                  t        j                  |||j                  «       ‰j                  | ¬«       t        d|i«       ‰j                  j!                  |j                  ||j
                  |j"                  ||¬«      S )Nr4  r  ©r`   ÚconfigurationÚmetadataÚget_or_creater  r  )r�   r=   r5  r6  rb  rc  r   r   r"  rm   r&   ÚCREATE_COLLECTIONr`   r  rL   r³   rú   rd  )re   r  r  r2  Úcreaterb  rV   s         €rX   Úprocess_create_collectionz<FastAPI.create_collection.<locals>.process_create_collection)  sâ   ø€ ô $Ô$4´f·l±lÀ8Ó6LÓMˆFØ×'Ò'Ø—?’?äWØ"ŸO™Oóñ "ð %)‘Mä NØ×(Ñ(ó!�ð
 ×"Ñ"Ø—‘Ü×-Ñ-ØØØ—‘ôð ×%Ñ%¨gÐ%Ô6ä*¨H°fÐ+=Ô>à—9‘9×.Ñ.Ø—[‘[Ø+ØŸ™Ø$×2Ñ2ØØ!ð /ó ð rZ   r:  ©	r   ry   r=  rZ  r   r   r!  r>  rº   )rV   re   r  r@  rg  Úapi_collection_models   `     rX   rú   zFastAPI.create_collection"  sŒ   øè ø€ ð&	Üð&	Ü&)ð&	Ü58ð&	ÜDIð&	äõ&	ôP  $ÜÜ×$Ñ$Ø)ØØØØ—l‘l“n×$Ø×.Ñ.ô÷ ó
 
Ðð $Ð#ð	 %øðúó$   ƒAA?ÁA;ÁA?Á0A=
Á1A?Á=A?zFastAPI.get_collectionÚcollection_namec           
   ƒ   ó6  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—†  t	        d|i«       t        t        t        j                  | j                  j                  |||| j                  ¬«      ƒ d {  –—† «      }|S 7 Œa7 Œ­wr]  )r  rm   r&   ÚGET_COLLECTIONrL   r   rZ  r   r!  r³   r  rº   )rV   re   r  r@  rk  ri  s         rX   r  zFastAPI.get_collection^  s›   è ø€ ð ×ÑØ�O‰OÜ×&Ñ&ØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:ä#ÜÜ×$Ñ$Ø—	‘	×(Ñ(ØØØØ×.Ñ.ô÷ ó	 
Ðð $Ð#ð)	
øðús"   ‚1B³B´ABÂ
B
ÂBÂBzFastAPI.get_collection_by_idÚcollection_idc           
   ƒ   óH  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—†  t	        d|i«       t        t        t        j                  | j                  j                  t        |«      ||| j                  ¬«      ƒ d {  –—† «      }|S 7 Œj7 Œ­wr]  )r  rm   r&   rm  rL   r   rZ  r   r!  r³   r  Ú_uuidrº   )rV   re   r  r@  rn  ri  s         rX   r  zFastAPI.get_collection_by_id}  s    è ø€ ð ×ÑØ�O‰OÜ×&Ñ&ØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:ä#ÜÜ×$Ñ$Ø—	‘	×.Ñ.Ü�mÓ$ØØØ×.Ñ.ô÷ ó	 
Ðð $Ð#ð)	
øðús"   ‚1B"³B´AB"ÂB 
ÂB"Â B"zFastAPI.update_collectionc              ƒ   óÖ   ‡ ‡‡K  — dt         dt        dt        dd fˆˆ ˆfd„}t        j                  ||||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   rn  r2  rR   c                 ó¤  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰|«       |j                  sd nt        |j                  «      }‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        |«      |j                  |j                   |‰‰¬«      S )Nr4  r  )ÚidÚnew_nameÚnew_metadataÚnew_configurationr  r  )r�   r>   r5  r6  r"  rm   r&   ÚUPDATE_COLLECTIONrv  r   r  rL   r³   Ú_modifyrp  rt  ru  )re   rn  r2  rý   rb  r@  rV   r  s        €€€rX   Úprocess_update_collectionz<FastAPI.update_collection.<locals>.process_update_collection¤  sÅ   ø€ ô $Ô$4´f·l±lÀ8Ó6LÓMˆFà×"Ñ"Ø—‘Ü×-Ñ-ØØØôð ×/Ò/ñ äCØ×,Ñ,óð ð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>Ø—9‘9×$Ñ$Ü˜Ó'ØŸ™Ø#×0Ñ0Ø"/ØØ&ð %ó ð rZ   r:  ©r   ry   r=  r   r!  r>  rº   )rV   r  r@  rn  re   ry  s   ```   rX   r  zFastAPI.update_collectionœ  so   úè ø€ ð	Üð	Ü-0ð	Ü<Að	à÷	ô< × Ñ Ø%ØØØ—,‘,“.× Ø×*Ñ*ô
÷ 	
ñ 	
ð !øð		
ús$   …AA)ÁA%ÁA)ÁA'Á A)Á'A)zFastAPI.delete_collectionc              ƒ   ó  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—†  t	        d|i«       t        j                  | j                  j                  |||| j                  ¬«      ƒ d {  –—†  y 7 ŒR7 Œ­wr]  )
r  rm   r&   ÚDELETE_COLLECTIONrL   r   r!  r³   r  rº   )rV   re   rk  r  r@  s        rX   r  zFastAPI.delete_collectionÊ  sŠ   è ø€ ð ×ÑØ�O‰OÜ×)Ñ)ØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:ä× Ñ Ø�I‰I×'Ñ'ØØØØ×*Ñ*ô
÷ 	
ñ 	
ð	
øð	
ús"   ‚1B
³B´AB
Â BÂB
ÂB
zFastAPI.attach_functionc              ƒ   ó  ‡ ‡‡‡K  — 	 dt         dt        dt        t        t        f   fˆˆˆ ˆfd„}|j                  «       ƒ d {  –—† }t        j                  |||‰ j                  ¬«      ƒ d {  –—† S 7 Œ/7 Œ# t        $ r ‚ w xY w­w)Nre   r2  rR   c           	      ó  •— t        j                  |«      }‰
j                  | j                  t        j
                  ‰‰	‰«       ‰
j                  | ¬«       |j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }‰
j                  j                  ||t        ‰«      ||‰‰	¬«      }dt        |j                  «      |j                  |j                  |j                  |j                   dœiS )	Nr4  r`   Úfunction_idÚoutput_collectionÚparams)r  r`   Úinput_collection_idr€  r�  r  r  Úattached_function©rs  r`   Úfunction_namer€  r�  )r5  r6  r"  rm   r&   rw  r  r…   r³   r  rp  ry   rs  r`   r…  r€  r�  )re   r2  r>  r`   r  r€  r�  Úattached_fnrn  r@  rV   r  s           €€€€rX   Úprocess_attach_functionz8FastAPI.attach_function.<locals>.process_attach_functionï  sþ   ø€ ô —|‘| HÓ-�à×&Ñ&Ø—O‘OÜ×1Ñ1ØØ!Ø!ôð ×)Ñ)°'Ð)Ô:à—x‘x Ó'�Ø"Ÿh™h }Ó5�Ø$(§H¡HÐ-@Ó$AÐ!ØŸ™ (Ó+�à"Ÿi™i×7Ñ7Ø +ØÜ(-¨mÓ(<Ø&7Ø!Ø!Ø*ð 8ó �ð (Ü! +§.¡.Ó1Ø +× 0Ñ 0Ø)4×)BÑ)BØ-8×-JÑ-JØ"-×"4Ñ"4ñ*ðð rZ   r:  )
r   r=  r   ry   r   r>  r   r!  rº   r{   )rV   re   r  r@  rn  r‡  r2  s   ` ```  rX   r  zFastAPI.attach_functionä  s�   ûè ø€ ð1	ð%Ü ð%Ü,1ð%ä”cœ3�h‘÷%ð %ðN %Ÿ\™\›^×+ˆHÜ"×+Ñ+Ø'ØØØ×.Ñ.ô	÷ ð ð ,øðùô ò 	Øð	üs@   †Bˆ;A7 ÁA3Á*A7 Á.A5Á/A7 Á2BÁ3A7 Á5A7 Á7BÂBzFastAPI.get_attached_functionr…  c              ƒ   ó´  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—†  t	        d|i«       t        j                  | j                  j                  |t        |«      ||| j                  ¬«      ƒ d {  –—† }dt        |j                  «      |j                  |j                  |j                  |j                   dœiS 7 Œ 7 ŒK­w)Nr  r:  rƒ  r„  )r  rm   r&   rm  rL   r   r!  r³   r  rp  rº   ry   rs  r`   r…  r€  r�  )rV   re   r  r@  rn  r…  r†  s          rX   r  zFastAPI.get_attached_function   sÓ   è ø€ ð ×ÑØ�O‰OÜ×&Ñ&ØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:ä%×.Ñ.Ø�I‰I×+Ñ+ØÜ�-Ó ØØØ×*Ñ*ô
÷ 
ˆð  Ü˜+Ÿ.™.Ó)Ø#×(Ñ(Ø!,×!:Ñ!:Ø%0×%BÑ%BØ%×,Ñ,ñ"ð
ð 	
ð%	
øð
ús#   ‚1C³C´ACÂ
CÂA
CÃCzFastAPI.addc           
   ƒ   ó>  ‡ ‡‡‡K  — 	 dt         dt        dt        fˆˆˆ ˆfd„}t        t        t	        j
                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      S 7 Œ 7 Œ
# t        $ r}t        dt        |«      ¬«      ‚d }~ww xY w­w)Nre   r2  rR   c           
      óè  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      |j                  t        t        |j                   rt#        |j                   «      nd «      |j$                  |j&                  |j(                  ‰‰¬«      S ©Nr4  r  )rn  ÚidsÚ
embeddingsÚ	metadatasÚ	documentsÚurisr  r  )r�   r7   r5  r6  r"  rm   r&   ÚADDr  rL   r³   Ú_addrp  rŒ  r   r#   r�  r$   rŽ  r�  r�  )re   r2  rû   rn  r@  rV   r  s      €€€€rX   Úprocess_addz FastAPI.add.<locals>.process_addR  sÆ   ø€ Ü$¤\´6·<±<ÀÓ3IÓJ�à×&Ñ&Ø—O‘OÜ—O‘OØØ!Ø!ôð ×)Ñ)°'Ð)Ô:Ü.°¸&Ð/AÔBØ—y‘y—~‘~Ü"'¨Ó"6ØŸ™Ü#Ü"àŸ>š>ô 6°c·n±nÔEà!ó	 ð "Ÿm™mØ!Ÿm™mØŸ™Ø!Ø*ð &ó ð rZ   r:  rw   ©rv   Údetail©r   r=  rš   r   r   r!  r>  rº   r0   r   ry   )rV   re   r  r@  rn  r“  r   s   ` ```  rX   rû   zFastAPI.addG  s›   ûè ø€ ð(	@ð¤Wð ¼ð Ä$÷ ð ô8 ÜÜ×(Ñ(ØØØ!Ÿ,™,›.×(Ø ×2Ñ2ô	÷ óð ð
 )øðùô )ò 	@Ü¨C¼¸A»Ô?Ð?ûð	@üsM   †BˆA	A6 ÁA2ÁA6 Á)A4
Á*A6 Á1BÁ2A6 Á4A6 Á6	BÁ?BÂBÂBzFastAPI.updatec              ƒ   óÔ   ‡ ‡‡‡K  — dt         dt        dt        fˆˆˆ ˆfd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c           
      óÌ  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      |j                  |j                  rt        |j                  «      nd |j                   |j"                  |j$                  ‰‰¬«      S r‹  )r�   r?   r5  r6  r"  rm   r&   ÚUPDATEr  rL   r³   Ú_updaterp  rŒ  r�  r$   rŽ  r�  r�  )re   r2  rý   rn  r@  rV   r  s      €€€€rX   Úprocess_updatez&FastAPI.update.<locals>.process_updateƒ  sÇ   ø€ Ü#¤O´V·\±\À(Ó5KÓLˆFð ×"Ñ"Ø—‘Ü×"Ñ"ØØØôð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>à—9‘9×$Ñ$Ü# MÓ2Ø—J‘Jà×$Ò$ô 9¸×9JÑ9JÔKàØ ×*Ñ*Ø ×*Ñ*Ø—[‘[ØØ&ð %ó ð rZ   r:  ©r   r=  rš   r   r!  r>  rº   )rV   re   r  r@  rn  r›  s   ` ``` rX   rý   zFastAPI.updatez  sf   ûè ø€ ð	¤Gð 	´uð 	Ä÷ 	ð 	ô6 × Ñ ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úó$   †A A(ÁA$ÁA(ÁA&ÁA(Á&A(zFastAPI.upsertc              ƒ   óÔ   ‡ ‡‡‡K  — dt         dt        dt        fˆˆˆ ˆfd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c           
      óè  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      |j                  t        t        |j                   rt#        |j                   «      nd «      |j$                  |j&                  |j(                  ‰‰¬«      S r‹  )r�   r7   r5  r6  r"  rm   r&   ÚUPSERTr  rL   r³   Ú_upsertrp  rŒ  r   r#   r�  r$   rŽ  r�  r�  )re   r2  rþ   rn  r@  rV   r  s      €€€€rX   Úprocess_upsertz&FastAPI.upsert.<locals>.process_upsert®  sÔ   ø€ Ü#¤L´&·,±,¸xÓ2HÓIˆFð ×"Ñ"Ø—‘Ü×"Ñ"ØØØôð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>à—9‘9×$Ñ$Ü# MÓ2Ø—J‘JÜÜà×(Ò(ô 2°&×2CÑ2CÔDàó	ð !×*Ñ*Ø ×*Ñ*Ø—[‘[ØØ&ð %ó ð rZ   r:  rœ  )rV   re   r  r@  rn  r¢  s   ` ``` rX   rþ   zFastAPI.upsert¥  sf   ûè ø€ ð	¤Gð 	´uð 	Ä÷ 	ð 	ô< × Ñ ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úr�  zFastAPI.getc           
   ƒ   ój  ‡ ‡‡‡K  — dt         dt        dt        fˆˆˆ ˆfd„}t        t        t	        j
                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|d   �2|d   D �cg c]   }t        t        |«      j                  «       ‘Œ" c}|d<   |S 7 ŒY7 ŒCc c}w ­w)Nre   r2  rR   c                 ó´  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      |j                  |j                  |j                  |j                   |j"                  |j$                  ‰‰¬«	      S )Nr4  r  )	rn  rŒ  ÚwhererP  rQ  Úwhere_documentÚincluder  r  )r�   r;   r5  r6  r"  rm   r&   rã   r  rL   r³   Ú_getrp  rŒ  r¥  rP  rQ  r¦  r§  )re   r2  r…   rn  r@  rV   r  s      €€€€rX   Úprocess_getz FastAPI.get.<locals>.process_getÜ  s±   ø€ Ü ¤¬v¯|©|¸HÓ/EÓFˆCà×"Ñ"Ø—‘Ü—‘ØØØôð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>Ø—9‘9—>‘>Ü# MÓ2Ø—G‘GØ—i‘iØ—i‘iØ—z‘zØ"×1Ñ1ØŸ™ØØ&ð "ó 
ð 
rZ   r:  r�  ©
r   r=  r!   r   r   r!  r>  rº   r    Útolist)rV   rn  r  r@  re   r©  Ú
get_resultÚ	embeddings   ````    rX   r…   zFastAPI.getÓ  s¼   ûè ø€ ð	¤ð 	´Eð 	¼i÷ 	ð 	ô0 ÜÜ×$Ñ$ØØØ—l‘l“n×$Ø×.Ñ.ô	÷ ó
ˆ
ð �lÑ#Ð/ð ",¨LÑ!9ö(àô ”Y 	Ó*×1Ñ1Õ3ò(ˆJ�|Ñ$ð
 Ðð %øðúò(ùs6   †A
B3ÁB*ÁB3Á(B,
Á)B3Á=%B.Â"	B3Â,B3Â.B3zFastAPI.deletec              ƒ   óÒ   ‡ ‡‡‡K  — dt         dt        dt        fˆˆˆ ˆfd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† S 7 Œ7 Œ­w)Nre   r2  rR   c           	      óˆ  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      |j                  |j                  |j                  |j                   ‰‰¬«      S )Nr4  r  )rn  rŒ  r¥  r¦  rP  r  r  )r�   r:   r5  r6  r"  rm   r&   rê   r  rL   r³   Ú_deleterp  rŒ  r¥  r¦  rP  )re   r2  rÿ   rn  r@  rV   r  s      €€€€rX   Úprocess_deletez&FastAPI.delete.<locals>.process_delete  s§   ø€ Ü#¤O´V·\±\À(Ó5KÓLˆFà×"Ñ"Ø—‘Ü×"Ñ"ØØØôð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>Ø—9‘9×$Ñ$Ü# MÓ2Ø—J‘JØ—l‘lØ%×4Ñ4Ø—l‘lØØ&ð %ó ð rZ   r:  ©r   r=  r   r   r!  r>  rº   )rV   rn  r  r@  re   r±  s   ````  rX   rÿ   zFastAPI.delete  sf   ûè ø€ ð	¤Gð 	´uð 	Ä÷ 	ð 	ô, ×'Ñ'ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 
ð 	
ð !øð
ús$   †A A'ÁA#ÁA'ÁA%ÁA'Á%A'zFastAPI.countc           
   ƒ   óD  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—†  t	        d|i«       t        t        t        j                  | j                  j                  t        |«      ||| j                  ¬«      ƒ d {  –—† «      S 7 Œh7 Œ
­wr]  )r  rm   r&   ÚCOUNTrL   r   rY  r   r!  r³   Ú_countrp  rº   )rV   re   r  r@  rn  s        rX   r   zFastAPI.count,  sš   è ø€ ð ×ÑØ�O‰OÜ×ÑØØØó
÷ 	
ð 	
ô 	'¨°&Ð'9Ô:äÜÜ×$Ñ$Ø—	‘	× Ñ Ü�mÓ$ØØØ×.Ñ.ô÷ ó	
ð 		
ð	
øðús"   ‚1B ³B´AB ÂB
Â	B ÂB zFastAPI.resetc              ƒ   ó  K  — | j                  |j                  t        j                  d d d «      ƒ d {  –—†  t	        t
        t        j                  | j                  j                  | j                  ¬«      ƒ d {  –—† «      S 7 ŒO7 Œ
­wrB  )r  rm   r&   ÚRESETr   rš   r   r!  r³   rî   rº   r  s     rX   rî   zFastAPI.resetJ  s}   è ø€ ð ×ÑØ�O‰OÜ×ÑØØØó
÷ 	
ð 	
ô ÜÜ×$Ñ$Ø—	‘	—‘Ø×.Ñ.ô÷ ó
ð 	
ð	
øðúó"   ‚1B³B´ABÁ:B
Á;	BÂBzFastAPI.get_nearest_neighborsc              ƒ   óÐ  ‡ ‡‡‡K  — t        dt        j                  «      dt        dt        dt
        fˆˆˆ ˆfd„«       }t        t
        t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|d   �B|d   D ��cg c].  }|D �cg c]   }t        t        |«      j                  «       ‘Œ" c}‘Œ0 c}}|d<   |S 7 Œi7 ŒSc c}w c c}}w ­w)Nzinternal.get_nearest_neighborsre   r2  rR   c           
      óè  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  ‰‰‰«       ‰j                  | ¬«       t        d‰i«       ‰j                  j                  t        ‰«      t        t        |j                  rt!        |j                  «      nd «      |j"                  |j$                  |j&                  |j(                  ‰‰¬«      S )Nr4  r  )rn  Úquery_embeddingsÚ	n_resultsr¥  r¦  r§  r  r  )r�   r<   r5  r6  r"  rm   r&   ÚQUERYr  rL   r³   Ú_queryrp  r   r#   r»  r$   r¼  r¥  r¦  r§  )re   r2  Úqueryrn  r@  rV   r  s      €€€€rX   Úprocess_queryz4FastAPI.get_nearest_neighbors.<locals>.process_queryj  sÔ   ø€ ô #¤>´6·<±<ÀÓ3IÓJˆEð ×"Ñ"Ø—‘Ü×!Ñ!ØØØôð ×%Ñ%¨gÐ%Ô6Ü*¨H°fÐ+=Ô>à—9‘9×#Ñ#Ü# MÓ2Ü!%Üà×-Ò-ô 2°%×2HÑ2HÔIàó	"ð  Ÿ/™/Ø—k‘kØ$×3Ñ3ØŸ™ØØ&ð $ó ð rZ   r:  r�  )rM   rK   Ú	OPERATIONr   r=  r"   r   r   r!  r>  rº   r    r«  )	rV   r  r@  rn  re   rÀ  ÚnnresultÚresultr­  s	   ````     rX   r  zFastAPI.get_nearest_neighborsa  sé   ûè ø€ ô 
Ø,Ô.F×.PÑ.Pó

ð	¤7ð 	´eð 	Ä÷ 	ó

ð	ô< ÜÜ×$Ñ$ØØØ—l‘l“n×$Ø×.Ñ.ô	÷ ó
ˆð �LÑ!Ð-ð ' |Ñ4÷&àð GMÖM¸””i Ó+×2Ñ2Õ4ÔMó&ˆH�\Ñ"ð
 ˆð %øðúò Nùó&ùsH   †A'C&Á-CÁ.C&ÂC
ÂC&Â	C Â$%CÃ	C Ã
C&ÃC&ÃC Ã C&c              ƒ   óÊ   ‡ K  — dt         t        t        f   fˆ fd„}t        t         t        t        f   t	        j
                  |‰ j                  ¬«      ƒ d {  –—† «      S 7 Œ­w)NrR   c                  ó<   •— d‰ j                   j                  «       iS )NÚmax_batch_size)r³   Úget_max_batch_sizer  s   €rX   Úprocess_pre_flight_checksz<FastAPI.pre_flight_checks.<locals>.process_pre_flight_checksž  s   ø€ à  $§)¡)×">Ñ">Ó"@ðð rZ   r:  )r   ry   r   r   r   r!  rº   )rV   rÈ  s   ` rX   rð   zFastAPI.pre_flight_checks�  sY   øè ø€ ð	¬4´´S°©>õ 	ô
 Ü””c�‰NÜ×$Ñ$Ø)Ø×.Ñ.ô÷ ó
ð 	
ðús   ƒAA#ÁA!
Á	A#c           
      óè  — | j                   j                  d| j                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d| j
                  dg¬«       | j                   j                  d| j                  dg¬«       | j                   j                  d	| j                  dgd | j                  t        «      ¬
«       | j                   j                  d| j                  dgd ¬«       | j                   j                  d| j                  dgd | j                  t        «      ¬
«       | j                   j                  d| j                  dgd ¬«       | j                   j                  d| j                  dgd ¬«       | j                   j                  d| j                  dgd ¬«       | j                   j                  d| j                   dgd | j                  t"        «      ¬
«       | j                   j                  d| j$                  dgt&        j(                  d | j                  t*        «      ¬«       | j                   j                  d| j,                  dgd | j                  t.        «      ¬
«       | j                   j                  d| j0                  dgd | j                  t*        «      ¬
«       | j                   j                  d| j2                  dgd | j                  t4        «      ¬
«       | j                   j                  d| j6                  dgt8        | j                  t:        «      ¬
«       | j                   j                  d| j<                  dgd ¬«       | j                   j                  d| j>                  dgd | j                  t@        «      ¬
«       | j                   j                  d| jB                  dgd ¬«       | j                   j                  d| jD                  dgd | j                  tF        «      ¬
«       | j                   j                  d| jH                  dgd ¬«       y )Nz/api/v1rã   rä   z/api/v1/resetræ   z/api/v1/versionz/api/v1/heartbeatz/api/v1/pre-flight-checksz/api/v1/databasesré   z/api/v1/databases/{database}rç   z/api/v1/tenantsz/api/v1/tenants/{tenant}z/api/v1/collectionsz/api/v1/count_collectionsz'/api/v1/collections/{collection_id}/addrë   z*/api/v1/collections/{collection_id}/updatez*/api/v1/collections/{collection_id}/upsertz'/api/v1/collections/{collection_id}/getz*/api/v1/collections/{collection_id}/deletez)/api/v1/collections/{collection_id}/countz)/api/v1/collections/{collection_id}/queryz%/api/v1/collections/{collection_name}z#/api/v1/collections/{collection_id}rì   rê   )%rÈ   rœ   rí   rî   rÒ   rï   rð   Úcreate_database_v1rá   r8   Úget_database_v1Úcreate_tenant_v1r9   Úget_tenant_v1Úlist_collections_v1Úcount_collections_v1Úcreate_collection_v1r=   Úadd_v1r   rü   r7   Ú	update_v1r?   Ú	upsert_v1Úget_v1r;   Ú	delete_v1r   r:   Úcount_v1Úget_nearest_neighbors_v1r<   Úget_collection_v1Úupdate_collection_v1r>   Údelete_collection_v1r  s    rX   rÉ   zFastAPI.setup_v1_routes®  s/  € Ø�‰×!Ñ! )¨T¯Y©YÀÀÐ!ÔHØ�‰×!Ñ! /°4·:±:ÈÀxÐ!ÔPØ�‰×!Ñ!Ð"3°T·\±\ÈEÈ7Ð!ÔSØ�‰×!Ñ!Ð"5°t·~±~ÐPUÈwÐ!ÔWØ�‰×!Ñ!Ø'¨×)?Ñ)?È%Èð 	"ô 	
ð 	�‰×!Ñ!ØØ×#Ñ#Ø�HØØ×@Ñ@ÄÓPð 	"ô 	
ð 	�‰×!Ñ!Ø*Ø× Ñ Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!ØØ×!Ñ!Ø�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø&Ø×ÑØ�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø!Ø×$Ñ$Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø'Ø×%Ñ%Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø!Ø×%Ñ%Ø�HØØ×@Ñ@ÔAQÓRð 	"ô 	
ð 	�‰×!Ñ!Ø5Ø�K‰KØ�HÜ×/Ñ/ØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø8Ø�N‰NØ�HØØ×@Ñ@ÄÓQð 	"ô 	
ð 	�‰×!Ñ!Ø8Ø�N‰NØ�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø5Ø�K‰KØ�HØØ×@Ñ@ÄÓNð 	"ô 	
ð 	�‰×!Ñ!Ø8Ø�N‰NØ�HÜ'Ø×@Ñ@ÄÓQð 	"ô 	
ð 	�‰×!Ñ!Ø7Ø�M‰MØ�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø7Ø×)Ñ)Ø�HØØ×@Ñ@ÄÓPð 	"ô 	
ð 	�‰×!Ñ!Ø3Ø×"Ñ"Ø�GØð	 	"ô 	
ð 	�‰×!Ñ!Ø1Ø×%Ñ%Ø�GØØ×@Ñ@ÔAQÓRð 	"ô 	
ð 	�‰×!Ñ!Ø3Ø×%Ñ%Ø�JØð	 	"õ 	
rZ   Ú/auth_and_get_tenant_and_database_for_request_v1c              ƒ   óf   K  — t        j                  | j                  |||||«      ƒ d{  –—† S 7 Œ­w)aò  
        Authenticates and authorizes the request based on the given headers
        and other parameters. If the request cannot be authenticated or cannot
        be authorized (with the configured providers), raises an HTTP 401.

        If the request is authenticated and authorized, returns the tenant and
        database to be used for the request. These will differ from the passed
        tenant and database if and only if:
        - The request is authenticated
        - chroma_overwrite_singleton_tenant_database_access_from_auth = True
        - The passed tenant or database are None or default_{tenant, database}
            (can be overwritten separately)
        - The user has access to a single tenant and/or single database.
        N)r   r!  Ú1sync_auth_and_get_tenant_and_database_for_requestr#  s         rX   Ú,auth_and_get_tenant_and_database_for_requestz4FastAPI.auth_and_get_tenant_and_database_for_request.  s=   è ø€ ô6 ×'Ñ'à×BÑBØØØØØó
÷ 
ð 	
ð 
ús   ‚(1ª/«1c                 óœ  — | j                   st        |||dœ«       ||fS | j                   j                  t        |«      «      }| j                   j	                  |«      \  }}|r	|t
        k(  r|r|}|r	|t        k(  r|r|}| j                  s||fS t        |||¬«      }	| j                  j                  |||	«       t        |||dœ«       ||fS )Nr%  )
rÄ   rL   r&  r'  Ú'singleton_tenant_database_if_applicabler+   r*   rÆ   r'   r(  )
rV   rm   r  r  r  r  r)  Ú
new_tenantÚnew_databaser*  s
             rX   rÝ  z9FastAPI.sync_auth_and_get_tenant_and_database_for_requestT  sô   € ð ×"Ò"Ü*à$Ø (Ø",ñôð ˜HÐ%Ð%à×+Ñ+×AÑAÄ$ÀwÃ-ÓPˆð
 ×Ñ×GÑGÈÓVñ	
ØØñ ˜&¤NÒ2¹
ØˆFÙ˜HÔ(8Ò8¹lØ#ˆHà×"Ò"Ø˜HÐ%Ð%ä&ØØØ!ô
ˆð 	×Ñ×.Ñ.¨}¸fÀnÔUÜ&à Ø$Ø(ñô	
ð ˜Ð!Ð!rZ   zFastAPI.create_database_v1c              ƒ   óâ   ‡ K  — dt         dt        dt        dd fˆ fd„}t        j                  |||j
                  |j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nr  rm   r2  rR   c                 ó  •— t        t        t        j                  |«      «      }‰j	                  |t
        j                  | |j                  d «      \  }}|r|} |r||_        ‰j                  j                  |j                  | «      S r
  )
r�   r8   r5  r6  rÝ  r&   r7  r`   r³   rò   )r  rm   r2  r8  Úmaybe_tenantÚmaybe_databaserV   s         €rX   r9  z;FastAPI.create_database_v1.<locals>.process_create_databaseŒ  s}   ø€ ô  ¤´·±¸XÓ0FÓGˆBð ×FÑFØÜ×+Ñ+ØØ—‘Øóñ	ØØñ Ø%�ÙØ(�”à—9‘9×,Ñ,¨R¯W©W°fÓ=Ð=rZ   r:  r<  r?  s   `   rX   rÊ  zFastAPI.create_database_v1…  ss   øè ø€ ð	>Üð	>Ü")ð	>Ü5:ð	>àõ	>ô. × Ñ Ø#ØØ�O‰OØ—,‘,“.× Ø×*Ñ*ô
÷ 	
ñ 	
ð !øð		
ús$   ƒA
A/ÁA+ÁA/Á%A-Á&A/Á-A/zFastAPI.get_database_v1c           	   ƒ   ó,  K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—† \  }}|r|}|r|}t	        t
        t        j                  | j                  j                  ||| j                  ¬«      ƒ d {  –—† «      S 7 Œ\7 Œ
­wrB  )rÞ  rm   r&   rC  r   rF   r   r!  r³   ró   rº   )rV   re   r  r  rå  ræ  s         rX   rË  zFastAPI.get_database_v1«  s›   è ø€ ð ×CÑCØ�O‰OÜ×$Ñ$ØØØó
÷ 
ñ	
ØØñ Ø!ˆFÙØ%ˆHäÜÜ×$Ñ$Ø—	‘	×&Ñ&ØØØ×.Ñ.ô	÷ ó
ð 	
ð
øðúó"   ‚1B³B´ABÂB
Â	BÂBzFastAPI.create_tenant_v1c              ƒ   óÀ   ‡ K  — dt         dt        dd fˆ fd„}t        j                  |||j	                  «       ƒ d {  –—† ‰ j
                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c                 ó  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  |j                  d d «      \  }}|r||_        ‰j                  j                  |j                  «      S r
  )r�   r9   r5  r6  rÝ  rm   r&   rI  r`   r³   rõ   )re   r2  r  rå  Ú_rV   s        €rX   rJ  z7FastAPI.create_tenant_v1.<locals>.process_create_tenantÒ  sp   ø€ Ü#¤L´&·,±,¸xÓ2HÓIˆFð #×TÑTØ—‘Ü×)Ñ)Ø—‘ØØó‰OˆL˜!ñ Ø*�”à—9‘9×*Ñ*¨6¯;©;Ó7Ð7rZ   r:  rK  rL  s   `  rX   rÌ  zFastAPI.create_tenant_v1Ì  sa   øè ø€ ð	8¬7ð 	8¼eð 	8Èõ 	8ô  × Ñ Ø!ØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úrM  zFastAPI.get_tenant_v1c              ƒ   ó"  K  — | j                  |j                  t        j                  |d d «      ƒ d {  –—† \  }}|r|}t	        t
        t        j                  | j                  j                  || j                  ¬«      ƒ d {  –—† «      S 7 ŒW7 Œ
­wrB  )rÞ  rm   r&   rO  r   rG   r   r!  r³   rö   rº   )rV   re   r  rå  rë  s        rX   rÍ  zFastAPI.get_tenant_v1é  s‹   è ø€ ð !%× QÑ QØ�O‰OÜ×"Ñ"ØØØó!
÷ 
‰ˆ�añ Ø!ˆFäÜÜ×$Ñ$Ø—	‘	×$Ñ$ØØ×.Ñ.ô÷ ó
ð 	
ð
øðús"   ‚1B³B´ABÂB
Â	BÂBzFastAPI.list_collections_v1c              ƒ   óB  K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—† \  }}|r|}|r|}t	        t
        t           t        j                  | j                  j                  ||||| j                  ¬«      ƒ d {  –—† «      }|S 7 Œg7 Œ­wrB  )rÞ  rm   r&   rW  r   r   rZ  r   r!  r³   rø   rº   )	rV   re   rP  rQ  r  r  rå  ræ  r[  s	            rX   rÎ  zFastAPI.list_collections_v1  s¬   è ø€ ð ×CÑCØ�O‰OÜ×(Ñ(ØØØó
÷ 
ñ	
ØØñ Ø!ˆFÙØ%ˆHä $Ü”_Ñ%Ü×$Ñ$Ø—	‘	×*Ñ*ØØØØØ×.Ñ.ô÷ ó
!
Ðð %Ð$ð1
øðús"   ‚1B³B´ABÂB
ÂBÂBzFastAPI.count_collections_v1c           	   ƒ   ó,  K  — | j                  |j                  t        j                  ||d «      ƒ d {  –—† \  }}|r|}|r|}t	        t
        t        j                  | j                  j                  ||| j                  ¬«      ƒ d {  –—† «      S 7 Œ\7 Œ
­wrB  )rÞ  rm   r&   r^  r   rY  r   r!  r³   rù   rº   )rV   re   r  r  rå  ræ  s         rX   rÏ  zFastAPI.count_collections_v1*  s›   è ø€ ð ×CÑCØ�O‰OÜ×)Ñ)ØØØó
÷ 
ñ	
ØØñ Ø!ˆFÙØ%ˆHäÜÜ×$Ñ$Ø—	‘	×+Ñ+ØØØ×.Ñ.ô	÷ ó
ð 	
ð
øðúrè  zFastAPI.create_collection_v1c              ƒ   ó  ‡ K  — dt         dt        dt        dt        dt        f
ˆ fd„}t	        t        t        j                  |||||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|S 7 Œ"7 Œ­w)Nre   r  r  r2  rR   c                 ó¢  •— t        t        t        j                  |«      «      }|j                  s
t        «       nt        |j                  «      }‰j                  | j                  t        j                  |||j                  «      \  }}|r|}|r|}‰j                  j                  |j                  ||j                  |j                  ||¬«      S )Nra  )r�   r=   r5  r6  rb  r   r   rÝ  rm   r&   re  r`   r³   rú   rc  rd  )	re   r  r  r2  rf  rb  rå  ræ  rV   s	           €rX   rg  z?FastAPI.create_collection_v1.<locals>.process_create_collectionS  sÊ   ø€ ô $Ô$4´f·l±lÀ8Ó6LÓMˆFð ×+Ò+ô .Ô/äCØ×(Ñ(óð ð ×FÑFØ—‘Ü×-Ñ-ØØØ—‘óñ	ØØñ Ø%�ÙØ)�à—9‘9×.Ñ.Ø—[‘[Ø+ØŸ™Ø$×2Ñ2ØØ!ð /ó ð rZ   r:  rh  )rV   re   r  r  rg  ri  s   `     rX   rÐ  zFastAPI.create_collection_v1K  sŒ   øè ø€ ð#	Üð#	Ü&)ð#	Ü58ð#	ÜDIð#	äõ#	ôJ  $ÜÜ×$Ñ$Ø)ØØØØ—l‘l“n×$Ø×.Ñ.ô÷ ó
 
Ðð $Ð#ð	 %øðúrj  zFastAPI.get_collection_v1c              ƒ   óÈ   ‡ ‡‡‡K  — ‰ j                  |j                  t        j                  ‰‰‰«      ƒ d {  –—† \  }}|r|Š|r|Šˆˆˆ ˆfd„} |«       ƒ d {  –—† S 7 Œ&7 Œ­w)Nc            
   “   ó°   •K  — t        t        t        j                  ‰j                  j
                  ‰‰‰‰j                  ¬«      ƒ d {  –—† «      } | S 7 Œ
­wrB  )r   rZ  r   r!  r³   r  rº   )ri  rk  r  rV   r  s    €€€€rX   Úinnerz(FastAPI.get_collection_v1.<locals>.inner�  sT   øè ø€ Ü#'ÜÜ×(Ñ(Ø—I‘I×,Ñ,Ø#ØØØ ×2Ñ2ô÷ ó	$Ð ð (Ð'ðús   ƒAAÁ	A
Á
A)rÞ  rm   r&   rm  )rV   re   rk  r  r  rå  ræ  ró  s   ` ```   rX   rØ  zFastAPI.get_collection_v1…  sn   ûè ø€ ð ×CÑCØ�O‰OÜ×&Ñ&ØØØó
÷ 
ñ	
ØØñ Ø!ˆFÙØ%ˆH÷	(ñ “W�}Ðð3
øð2 ús!   †1A"·A¸!A"ÁA ÁA"Á A"zFastAPI.update_collection_v1c              ƒ   óÎ   ‡ K  — dt         dt        dt        dd fˆ fd„}t        j                  ||||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   rn  r2  rR   c                 ób  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d |«       |j                  sd nt        |j                  «      }‰j                  j                  t        |«      |j                  |j                  |¬«      S )N)rs  rt  ru  rv  )r�   r>   r5  r6  rÝ  rm   r&   rw  rv  r   r³   rx  rp  rt  ru  )re   rn  r2  rý   rb  rV   s        €rX   ry  z?FastAPI.update_collection_v1.<locals>.process_update_collection³  s¡   ø€ ô $Ô$4´f·l±lÀ8Ó6LÓMˆFà×BÑBØ—‘Ü×-Ñ-ØØØôð ×/Ò/ñ äCØ×,Ñ,óð ð —9‘9×$Ñ$Ü˜Ó'ØŸ™Ø#×0Ñ0Ø"/ð	 %ó ð rZ   r:  rz  )rV   rn  re   ry  s   `   rX   rÙ  zFastAPI.update_collection_v1¬  so   øè ø€ ð	Üð	Ü-0ð	Ü<Að	àõ	ô4 × Ñ Ø%ØØØ—,‘,“.× Ø×*Ñ*ô
÷ 	
ñ 	
ð !øð		
ús$   ƒA A%ÁA!ÁA%ÁA#ÁA%Á#A%zFastAPI.delete_collection_v1c              ƒ   ó  K  — | j                  |j                  t        j                  |||«      ƒ d {  –—† \  }}|r|}|r|}t	        j
                  | j                  j                  |||| j                  ¬«      ƒ d {  –—†  y 7 ŒP7 Œ­wrB  )	rÞ  rm   r&   r|  r   r!  r³   r  rº   )rV   re   rk  r  r  rå  ræ  s          rX   rÚ  zFastAPI.delete_collection_v1Õ  s“   è ø€ ð ×CÑCØ�O‰OÜ×)Ñ)ØØØó
÷ 
ñ	
ØØñ Ø!ˆFÙØ%ˆHä× Ñ Ø�I‰I×'Ñ'ØØØØ×*Ñ*ô
÷ 	
ñ 	
ð
øð	
ús"   ‚1B³B´A
BÁ>BÁ?BÂBzFastAPI.add_v1c           
   ƒ   ó6  ‡ ‡K  — 	 dt         dt        dt        fˆˆ fd„}t        t        t	        j
                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      S 7 Œ 7 Œ
# t        $ r}t        dt        |«      ¬«      ‚d }~ww xY w­w)Nre   r2  rR   c           
      ó¦  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      |j                  t        t        |j                  rt        |j                  «      nd «      |j                   |j"                  |j$                  ¬«      S ©N)rn  rŒ  r�  rŽ  r�  r�  )r�   r7   r5  r6  rÝ  rm   r&   r‘  r³   r’  rp  rŒ  r   r#   r�  r$   rŽ  r�  r�  )re   r2  rû   rn  rV   s      €€rX   r“  z#FastAPI.add_v1.<locals>.process_addþ  s¢   ø€ Ü$¤\´6·<±<ÀÓ3IÓJ�à×FÑFØ—O‘OÜ—O‘OØØØ!ôð —y‘y—~‘~Ü"'¨Ó"6ØŸ™Ü#Ü"àŸ>š>ô 6°c·n±nÔEà!ó	 ð "Ÿm™mØ!Ÿm™mØŸ™ð &ó ð rZ   r:  rw   r”  r–  )rV   re   rn  r“  r   s   ` `  rX   rÑ  zFastAPI.add_v1õ  s–   ùè ø€ ð$	@ð¤Wð ¼ð Ä$ö ô0 ÜÜ×(Ñ(ØØØ!Ÿ,™,›.×(Ø ×2Ñ2ô	÷ óð ð
 )øðùô )ò 	@Ü¨C¼¸A»Ô?Ð?ûð	@üsM   „B†AA2 ÁA.ÁA2 Á%A0
Á&A2 Á-BÁ.A2 Á0A2 Á2	BÁ;BÂBÂBzFastAPI.update_v1c              ƒ   óÌ   ‡ ‡K  — dt         dt        dt        fˆˆ fd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c                 óŠ  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      |j                  |j                  rt        |j                  «      nd |j                  |j                  |j                   ¬«      S rù  )r�   r?   r5  r6  rÝ  rm   r&   r™  r³   rš  rp  rŒ  r�  r$   rŽ  r�  r�  )re   r2  rý   rn  rV   s      €€rX   r›  z)FastAPI.update_v1.<locals>.process_update(  s£   ø€ Ü#¤O´V·\±\À(Ó5KÓLˆFð ×BÑBØ—‘Ü×"Ñ"ØØØôð —9‘9×$Ñ$Ü# MÓ2Ø—J‘Jà×$Ò$ô 9¸×9JÑ9JÔKàØ ×*Ñ*Ø ×*Ñ*Ø—[‘[ð %ó 	ð 	rZ   r:  rœ  )rV   re   rn  r›  s   ` ` rX   rÒ  zFastAPI.update_v1"  sa   ùè ø€ ð	¤Gð 	´uð 	Äö 	ô. × Ñ ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úó#   „>A$ÁA ÁA$ÁA"ÁA$Á"A$zFastAPI.upsert_v1c              ƒ   óÌ   ‡ ‡K  — dt         dt        dt        fˆˆ fd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nre   r2  rR   c           
      ó¦  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      |j                  t        t        |j                  rt        |j                  «      nd «      |j                   |j"                  |j$                  ¬«      S rù  )r�   r7   r5  r6  rÝ  rm   r&   r   r³   r¡  rp  rŒ  r   r#   r�  r$   rŽ  r�  r�  )re   r2  rþ   rn  rV   s      €€rX   r¢  z)FastAPI.upsert_v1.<locals>.process_upsertM  s°   ø€ Ü#¤L´&·,±,¸xÓ2HÓIˆFð ×BÑBØ—‘Ü×"Ñ"ØØØôð —9‘9×$Ñ$Ü# MÓ2Ø—J‘JÜÜà×(Ò(ô 2°&×2CÑ2CÔDàó	ð !×*Ñ*Ø ×*Ñ*Ø—[‘[ð %ó ð rZ   r:  rœ  )rV   re   rn  r¢  s   ` ` rX   rÓ  zFastAPI.upsert_v1F  sa   ùè ø€ ð	¤Gð 	´uð 	Äö 	ô4 × Ñ ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 	
ñ 	
ð !øð	
úrü  zFastAPI.get_v1c           
   ƒ   ób  ‡ ‡K  — dt         dt        dt        fˆˆ fd„}t        t        t	        j
                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|d   �2|d   D �cg c]   }t        t        |«      j                  «       ‘Œ" c}|d<   |S 7 ŒY7 ŒCc c}w ­w)Nre   r2  rR   c           	      ór  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      |j                  |j                  |j                  |j                  |j                  |j                   ¬«      S )N)rn  rŒ  r¥  rP  rQ  r¦  r§  )r�   r;   r5  r6  rÝ  rm   r&   rã   r³   r¨  rp  rŒ  r¥  rP  rQ  r¦  r§  )re   r2  r…   rn  rV   s      €€rX   r©  z#FastAPI.get_v1.<locals>.process_getu  s�   ø€ Ü ¤¬v¯|©|¸HÓ/EÓFˆCà×BÑBØ—‘Ü—‘ØØØôð —9‘9—>‘>Ü# MÓ2Ø—G‘GØ—i‘iØ—i‘iØ—z‘zØ"×1Ñ1ØŸ™ð "ó ð rZ   r:  r�  rª  )rV   rn  re   r©  r¬  r­  s   ``    rX   rÔ  zFastAPI.get_v1n  s·   ùè ø€ ð	¤ð 	´Eð 	¼iö 	ô( ÜÜ×$Ñ$ØØØ—l‘l“n×$Ø×.Ñ.ô	÷ ó
ˆ
ð �lÑ#Ð/ð ",¨LÑ!9ö(àô ”Y 	Ó*×1Ñ1Õ3ò(ˆJ�|Ñ$ð
 Ðð %øðúò(ùs6   „AB/ÁB&ÁB/Á$B(
Á%B/Á9%B*Â	B/Â(B/Â*B/zFastAPI.delete_v1c              ƒ   óÊ   ‡ ‡K  — dt         dt        dt        fˆˆ fd„}t        j                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† S 7 Œ7 Œ­w)Nre   r2  rR   c                 óF  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      |j                  |j                  |j                  |j                  ¬«      S )N)rn  rŒ  r¥  r¦  rP  )r�   r:   r5  r6  rÝ  rm   r&   rê   r³   r°  rp  rŒ  r¥  r¦  rP  )re   r2  rÿ   rn  rV   s      €€rX   r±  z)FastAPI.delete_v1.<locals>.process_delete¢  sƒ   ø€ Ü#¤O´V·\±\À(Ó5KÓLˆFà×BÑBØ—‘Ü×"Ñ"ØØØôð —9‘9×$Ñ$Ü# MÓ2Ø—J‘JØ—l‘lØ%×4Ñ4Ø—l‘lð %ó ð rZ   r:  r²  )rV   rn  re   r±  s   ``  rX   rÕ  zFastAPI.delete_v1›  sa   ùè ø€ ð	¤Gð 	´uð 	Äö 	ô$ ×'Ñ'ØØØ—,‘,“.× Ø×*Ñ*ô	
÷ 
ð 	
ð !øð
ús#   „>A#ÁAÁA#ÁA!ÁA#Á!A#zFastAPI.count_v1c           	   ƒ   ó&  K  — | j                  |j                  t        j                  d d |«      ƒ d {  –—†  t	        t
        t        j                  | j                  j                  t        |«      | j                  ¬«      ƒ d {  –—† «      S 7 ŒY7 Œ
­wrB  )rÞ  rm   r&   r´  r   rY  r   r!  r³   rµ  rp  rº   )rV   re   rn  s      rX   rÖ  zFastAPI.count_v1»  s‡   è ø€ ð ×?Ñ?Ø�O‰OÜ×ÑØØØó
÷ 	
ð 	
ô ÜÜ×$Ñ$Ø—	‘	× Ñ Ü�mÓ$Ø×.Ñ.ô÷ ó
ð 	
ð	
øðúrT  zFastAPI.reset_v1c              ƒ   ó  K  — | j                  |j                  t        j                  d d d «      ƒ d {  –—†  t	        t
        t        j                  | j                  j                  | j                  ¬«      ƒ d {  –—† «      S 7 ŒO7 Œ
­wrB  )rÞ  rm   r&   r·  r   rš   r   r!  r³   rî   rº   r  s     rX   Úreset_v1zFastAPI.reset_v1Ó  s}   è ø€ ð ×?Ñ?Ø�O‰OÜ×ÑØØØó
÷ 	
ð 	
ô ÜÜ×$Ñ$Ø—	‘	—‘Ø×.Ñ.ô÷ ó
ð 	
ð	
øðúr¸  z FastAPI.get_nearest_neighbors_v1c              ƒ   óŽ  ‡ ‡K  — dt         dt        dt        fˆˆ fd„}t        t        t	        j
                  |||j                  «       ƒ d {  –—† ‰ j                  ¬«      ƒ d {  –—† «      }|d   �B|d   D ��cg c].  }|D �cg c]   }t        t        |«      j                  «       ‘Œ" c}‘Œ0 c}}|d<   |S 7 Œi7 ŒSc c}w c c}}w ­w)Nre   r2  rR   c           	      ó¦  •— t        t        t        j                  |«      «      }‰j	                  | j
                  t        j                  d d ‰«       ‰j                  j                  t        ‰«      t        t        |j                  rt        |j                  «      nd «      |j                  |j                   |j"                  |j$                  ¬«      S )N)rn  r»  r¼  r¥  r¦  r§  )r�   r<   r5  r6  rÝ  rm   r&   r½  r³   r¾  rp  r   r#   r»  r$   r¼  r¥  r¦  r§  )re   r2  r¿  rn  rV   s      €€rX   rÀ  z7FastAPI.get_nearest_neighbors_v1.<locals>.process_queryò  s®   ø€ Ü"¤>´6·<±<ÀÓ3IÓJˆEð ×BÑBØ—‘Ü×!Ñ!ØØØôð —9‘9×#Ñ#Ü# MÓ2Ü!%Üà×-Ò-ô 2°%×2HÑ2HÔIàó	"ð  Ÿ/™/Ø—k‘kØ$×3Ñ3ØŸ™ð $ó ð rZ   r:  r�  )
r   r=  r"   r   r   r!  r>  rº   r    r«  )rV   rn  re   rÀ  rÂ  rÃ  r­  s   ``     rX   r×  z FastAPI.get_nearest_neighbors_v1é  sÉ   ùè ø€ ð	¤7ð 	´eð 	Äö 	ô4 ÜÜ×$Ñ$ØØØ—l‘l“n×$Ø×.Ñ.ô	÷ ó
ˆð �LÑ!Ð-ð ' |Ñ4÷&àð GMÖM¸””i Ó+×2Ñ2Õ4ÔMó&ˆH�\Ñ"ð
 ˆð %øðúò Nùó&ùsH   „ACÁB6ÁCÁ$B8
Á%CÁ:	B?Â%B:Â(B?Â-
CÂ8CÂ:B?Â?C)rR   N)NN)_rž   rŸ   r    r,   rÎ   r   ry   r   rµ   r	   r‡   rá   rÊ   r¬   r¯   r   r[   r   r2   r   rÂ   rY  rí   r3   rÁ   rï   rÒ   r  rM   rK   rÁ  rU   r@   r&   r   r  r"  r%   rñ   rò   rF   ró   rô   rõ   rG   rö   r   r÷   rZ  rø   rù   rú   r  r  r  r  r  r  rš   rû   rý   rþ   r!   r…   r   rÿ   r   rî   r"   r  rð   rÉ   r   rÞ  rÝ  r+   rÊ  rË  rÌ  rÍ  r*   rÎ  rÏ  rÐ  rØ  rÙ  rÚ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r  r×  © rZ   rX   r   r   À   sV  „ ð45 ó 45ðl $ s¨C x¡.ó ðØ! !™Wðà	ˆc�3ˆh‰óó$j
óXð�W—_‘_ó ð
Øð
Ø%3ð
à	ó
ð?�d˜3 ˜8‘nó ?ð
Øð
Ø%/ð
à	ó
ð  c¨3 h¡ó ð'˜só 'ðG¨Gð G¸ó Gñ ØØ ×*Ñ*óð ð
àð
ð ð
ð ˜‘ð	
ð
 ˜3‘-ð
ð ˜S‘Mð
ð 
ò
ó ó	ð

ñ Ø#Ø ×*Ñ*óð*àð*ð ð*ð ˜‘ð	*ð
 ˜3‘-ð*ð ˜S‘Mð*ð 
ò*ó	ð*ñX Ð-Ð/G×/QÑ/QÓRð
àð
ð 
ò
ó Sð
ñ$ Ð+Ð-E×-OÑ-OÓPð
àð
ð ð
ð 
ò	
ó Qð
ñ> Ð(Ð*B×*LÑ*LÓMð
àð
ð ð
ð ð	
ð
 
ò
ó Nð
ñ2 Ð+Ð-E×-OÑ-OÓPð
àð
ð ð
ð ð	
ð
 
ò
ó Qð
ñ, Ð)Ð+C×+MÑ+MÓNð
àð
ð 
ò
ó Oð
ñ2 Ð&Ð(@×(JÑ(JÓKð
àð
ð ð
ð 
ò	
ó Lð
ñ. Ð*Ð,D×,NÑ,NÓOð
  $Ø $ñ
àð
ð ð
ð ˜‰}ð	
ð
 ˜‘ð
ð 
�(Ñ	ò
ó Pð
ñ6 Ð,Ð.F×.PÑ.PÓQð  $Ø $ñ'%àð'%ð ð'%ð ð	'%ð
 ˜‰}ð'%ð ˜‘ð'%ð 
�/Ñ	"ò'%ó Rð'%ñR Ð-Ð/G×/QÑ/QÓRð
àð
ð ð
ð ð	
ð
 
ò
ó Sð
ñ6 Ð-Ð/G×/QÑ/QÓRð9$àð9$ð ð9$ð ð	9$ð
 
ò9$ó Sð9$ñv Ð*Ð,D×,NÑ,NÓOð$àð$ð ð$ð ð	$ð
 ð$ð 
ò$ó Pð$ñ< Ð0Ð2J×2TÑ2TÓUð$àð$ð ð$ð ð	$ð
 ð$ð 
ò$ó Vð$ñ< Ð-Ð/G×/QÑ/QÓRð+
àð+
ð ð+
ð ð	+
ð
 ð+
ð 
ò+
ó Sð+
ñZ Ð-Ð/G×/QÑ/QÓRð
àð
ð ð
ð ð	
ð
 ð
ð 
ò
ó Sð
ñ2 Ð+Ð-E×-OÑ-OÓPØð8àð8ð ð8ð ð	8ð
 ð8ð 
ˆc�3ˆh‰ò8ó ó Qð8ñt Ð1Ð3K×3UÑ3UÓVØð#
àð#
ð ð#
ð ð	#
ð
 ð#
ð ð#
ð 
ˆc�3ˆh‰ò#
ó ó Wð#
ñJ �-Ð!9×!CÑ!CÓDØð/@àð/@ð ð/@ð ð	/@ð
 ð/@ð 
ò/@ó ó Eð/@ñb Ð"Ð$<×$FÑ$FÓGØð'
àð'
ð ð'
ð ð	'
ð
 ð'
ð 
ò'
ó ó Hð'
ñR Ð"Ð$<×$FÑ$FÓGØð*
àð*
ð ð*
ð ð	*
ð
 ð*
ð 
ò*
ó ó Hð*
ñX �-Ð!9×!CÑ!CÓDØð/àð/ð ð/ð ð	/ð
 ð/ð 
ò/ó ó Eð/ñb Ð"Ð$<×$FÑ$FÓGØð"
àð"
ð ð"
ð ð	"
ð
 ð"
ð 
ò"
ó ó Hð"
ñH �/Ð#;×#EÑ#EÓFØð
àð
ð ð
ð ð	
ð
 ð
ð 
ò
ó ó Gð
ñ8 �/Ð#;×#EÑ#EÓFØð
àð
ð 
ò
ó ó Gð
ñ* Ð1Ð3K×3UÑ3UÓVØð8àð8ð ð8ð ð	8ð
 ð8ð 
ò8ó ó Wð8ðt
¨¨c°3¨h©ó 
ó"~
ñ@ Ø9Ø ×*Ñ*óð ð
àð
ð ð
ð ˜‘ð	
ð
 ˜3‘-ð
ð ˜S‘Mð
ð 
ˆx˜‰}˜h s™mÐ+Ñ	,ò
ó ó	ð

ðB/"àð/"ð ð/"ð ˜‘ð	/"ð
 ˜3‘-ð/"ð ˜S‘Mð/"ð 
ˆx˜‰}˜h s™mÐ+Ñ	,ó/"ñb Ð.Ð0H×0RÑ0RÓSØð %ñ"
àð"
ð ð"
ð 
ò	"
ó ó Tð"
ñH Ð+Ð-E×-OÑ-OÓPØð
 %ñ	
àð
ð ð
ð ð	
ð
 
ò
ó ó Qð
ñ> Ð,Ð.F×.PÑ.PÓQØð
àð
ð 
ò
ó ó Rð
ñ6 Ð)Ð+C×+MÑ+MÓNØð
àð
ð ð
ð 
ò	
ó ó Oð
ñ0 Ð/Ð1I×1SÑ1SÓTØð  $Ø $Ø$Ø(ñ#%àð#%ð ˜‰}ð#%ð ˜‘ð	#%ð
 ð#%ð ð#%ð 
�/Ñ	"ò#%ó ó Uð#%ñJ Ð0Ð2J×2TÑ2TÓUØð %Ø(ñ	
àð
ð ð
ð ð	
ð
 
ò
ó ó Vð
ñ> Ð0Ð2J×2TÑ2TÓUØð %Ø(ñ	6$àð6$ð ð6$ð ð	6$ð
 
ò6$ó ó Vð6$ñp Ð-Ð/G×/QÑ/QÓRØð
 %Ø(ñ#àð#ð ð#ð ð	#ð
 ð#ð 
ò#ó ó Sð#ñJ Ð0Ð2J×2TÑ2TÓUØð%
àð%
ð ð%
ð 
ò	%
ó ó Vð%
ñN Ð0Ð2J×2TÑ2TÓUØð
 %Ø(ñ
àð
ð ð
ð ð	
ð
 ð
ð 
ò
ó ó Vð
ñ< Ð"Ð$<×$FÑ$FÓGØð)@àð)@ð ð)@ð 
ò	)@ó ó Hð)@ñV Ð%Ð'?×'IÑ'IÓJð!
àð!
ð ð!
ð 
ò	!
ó Kð!
ñF Ð%Ð'?×'IÑ'IÓJØð$
àð$
ð ð$
ð 
ò	$
ó ó Kð$
ñL Ð"Ð$<×$FÑ$FÓGØð)àð)ð ð)ð 
ò	)ó ó Hð)ñV Ð%Ð'?×'IÑ'IÓJØð
àð
ð ð
ð 
ò	
ó ó Kð
ñ< Ð$Ð&>×&HÑ&HÓIØð
àð
ð ð
ð 
ò	
ó ó Jð
ñ, Ð$Ð&>×&HÑ&HÓIØð
àð
ð 
ò
ó ó Jð
ñ( Ø*Ð,D×,NÑ,Nóð ð/àð/ð ð/ð 
ò	/ó óñ/rZ   r   )yÚtypingr   r   r   r   r   r   r	   r
   r   r¯   r5  Úanyior   r   r   Ú_FastAPIr   r   Úfastapi.openapi.utilsr   Úfastapi.middleware.corsr   Úfastapi.responsesr   Úfastapi.routingr   r   r   Ú	functoolsr   Ú%chromadb.api.collection_configurationr   r   r   r   Úpydanticr   Úchromadbr   rÕ   Úchromadb.api.typesr   r    r!   r"   r#   r$   Úchromadb.authr%   r&   r'   r(   r)   Úchromadb.configr*   r+   r,   r-   Úchromadb.apir.   Úchromadb.errorsr/   r0   r1   r2   r3   Úchromadb.quotar4   Úchromadb.rate_limitr5   Úchromadb.serverr6   Úchromadb.server.fastapi.typesr7   r8   r9   r:   r;   r<   r=   r>   r?   Ústarlette.datastructuresr@   ÚloggingÚ!chromadb.telemetry.product.eventsrA   Úchromadb.utils.fastapirB   rC   rp  ÚopentelemetryrD   Ú(chromadb.telemetry.opentelemetry.fastapirE   Úchromadb.typesrF   rG   Úchromadb.telemetry.productrH   rI   Ú chromadb.telemetry.opentelemetryrJ   rK   rL   rM   rN   rZ  Ú	getLoggerrž   r|   rU   rd   ro   r€   r†   r‡   r�   Ú	APIRouterr’   r  rZ   rX   ú<module>r(     s¶  ð÷
÷ 
õ 
ó Û ÷÷ ;Ñ :Ý -Ý 2Ý ,Ý $ß )Ý ÷ó õ Ý 4÷÷ õ '÷ó ÷ OÓ NÝ "÷õ õ )Ý 6Ý "÷
÷ 
õ 
õ -Û å >ß QÝ å Gß +ß L÷ó õ 9à	ˆ×	Ñ	˜8Ó	$€òðW¨(ð W°tó WðØðØ!)¨7¨)°S¨.Ñ!9ðàóðKØðKØ!)¨7¨)°S¨.Ñ!9ðKàóKð,$Øð$Ø!)¨7¨)°S¨.Ñ!9ð$àó$ñ ˆC�y°Ô5€ð%˜$˜q™'ð %¨ð %°ó %ô5�g×'Ñ'ô 5ô8\!ˆfõ \!rZ   