+
    4O|jŠ&  ã                  ó6  € R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
HtHt ^ RIHt ^ RIHtHtHtHtHt ^ RIHt ]! . RO4      t  ! R	 R
4      t]! R. RO4      t ]! R. RO4      t ]! RR.4      t R R ltR R ltR R ltR R lt R R lt!R# )z6Constants and types shared across multiple auth types.)ÚannotationsN)Ústandard_b64encode)Ú
namedtuple)ÚAnyÚDictÚMappingÚOptional)ÚBinary)Ú_OIDCAzureCallbackÚ_OIDCGCPCallbackÚ_OIDCK8SCallbackÚ_OIDCPropertiesÚ_OIDCTestCallback)ÚConfigurationErrorc                  óZ   € ] tR t^2tR	t]! R 4      tR R ltR R ltR R lt	R R lt
R	tR
# )Ú_Cachec               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "ÚLC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/auth_shared.pyÚ__annotate__Ú_Cache.__annotate__7   s   € ÷ ñ ˜$ñ ó    c                	ó   € R V n         R # ©N©Údata©Úselfs   &r   Ú__init__Ú_Cache.__init__7   s	   € ØˆŽ	r   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚotherÚobjectr   Úboolr   )r   s   "r   r   r   :   s   € ÷ ñ ˜Fð  tñ r   c                	ó>   € \        V\        4      '       d   R # \        # )T©Ú
isinstancer   ÚNotImplemented©r!   r&   s   &&r   Ú__eq__Ú_Cache.__eq__:   s   € ä�eœV×$Ò$ÙÜÐr   c               ó    € V ^8„  d   QhRRRR/# r%   r   )r   s   "r   r   r   @   s   € ÷ ñ ˜Fð  tñ r   c                	ó>   € \        V\        4      '       d   R # \        # )Fr*   r-   s   &&r   Ú__ne__Ú_Cache.__ne__@   s   € Ü�eœV×$Ò$ÙÜÐr   c               ó   € V ^8„  d   QhRR/# )r   r   Úintr   )r   s   "r   r   r   E   s   € ÷ ñ ˜#ñ r   c                	ó   € V P                   # r   )Ú	_hash_valr    s   &r   Ú__hash__Ú_Cache.__hash__E   s   € Ø�~‰~Ðr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__Úhashr7   r"   r.   r2   r8   Ú__static_attributes__r   r   r   r   r   2   s)   † Ø€Iá�X“€Iõõõ÷
ñ r   r   ÚMongoCredentialÚGSSAPIPropertiesÚ_AWSPropertiesÚaws_session_tokenc               ó    € V ^8„  d   QhRRRR/# )r   Úvaluez
str | boolr   r   )r   s   "r   r   r   Z   s   € ÷ ñ ¨Jð ¸:ñ r   c                óT   € . ROpV R9   d   V R9   # W9  d   \        RV  RV 24      hV # )FzCANONICALIZE_HOST_NAME 'z' not in valid options: )FTÚnoneÚforwardÚforwardAndReverse)ÚtrueÚfalseTF)rK   T)Ú
ValueError)rF   Úvalid_namess   & r   Ú _validate_canonicalize_host_namerO   Z   sB   € ÚG€KØÐ.Ô.Ø˜Ñ&Ð&àÔÜÐ3°E°7Ð:RÐS^ÐR_Ð`ÓaÐaØ€Lr   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	RR
R/# )r   ÚmechÚstrÚsourcezOptional[str]ÚuserÚpasswdÚextrazMapping[str, Any]Údatabaser   rA   r   )r   s   "r   r   r   d   s`   € ÷ |Tñ |TØ
ð|Tàð|Tð ð|Tð ð	|Tð
 ð|Tð ð|Tð ñ|Tr   c           	     ó  € V R-9  d   Vf   \        V  R24      hV R8X  d™   Ve   VR8w  d   \        R4      hVP                  R	/ 4      pVP                  R
R4      pVP                  RR4      pVP                  RR4      p	\        V	4      p	VP                  R4      p
\	        VV	V
VR7      p\        V RW#VR4      # V R8X  d6   Ve   \        R4      hVe   VR8w  d   \        R4      h\        V RVRRR4      # V R8X  dh   Ve   Vf   \        R4      hVe   VR8w  d   \        R4      hVP                  R	/ 4      pVP                  R4      p\        VR7      p\        V RW#VR4      # V R8X  Ed·   VP                  R	/ 4      pVP                  R4      pVP                  R4      pVP                  R4      pVP                  RR4      p. R.OpVP                  RV4      pVP                  RR4      e   Vf   \        R4      hRpVe   Rp\        V4      hV'       g	   V'       d.   Ve   \        V4      hV'       d   V'       d   R p\        V4      hM¤Ve–   VR!8X  d   Ve   R"p\        V4      h\        4       pM}VR#8X  d"   RpV'       g   \        R$4      h\        V4      pMUVR%8X  d"   RpV'       g   \        R&4      h\        V4      pM-VR'8X  d   Rp\        4       pM\        R(V 24      h\        V4      h\        TTTTTT;'       g    RR)7      p\        V RW#V\        4       4      # V R*8X  d&   T;'       g    T;'       g    Rp\        V VW#RR4      # T;'       g    T;'       g    R+pVf   \        R,4      h\        V VW#R\        4       4      # )/z8Build and return a mechanism specific credentials tuple.úMONGODB-X509úMONGODB-AWSúMONGODB-OIDCNz requires a usernameÚGSSAPIz	$externalz:authentication source must be $external or None for GSSAPIÚauthmechanismpropertiesÚSERVICE_NAMEÚmongodbÚSERVICE_HOSTÚCANONICALIZE_HOST_NAMErL   ÚSERVICE_REALM©Úservice_nameÚcanonicalize_host_nameÚservice_realmÚservice_hostz+Passwords are not supported by MONGODB-X509z@authentication source must be $external or None for MONGODB-X509z;username without a password is not supported by MONGODB-AWSz?authentication source must be $external or None for MONGODB-AWSÚAWS_SESSION_TOKEN)rD   ÚOIDC_CALLBACKÚOIDC_HUMAN_CALLBACKÚENVIRONMENTÚTOKEN_RESOURCEÚ ÚALLOWED_HOSTSz4ALLOWED_HOSTS is only valid with OIDC_HUMAN_CALLBACKzVauthentication with MONGODB-OIDC requires providing either a callback or a environmentz)password is not supported by MONGODB-OIDCz5cannot set both OIDC_CALLBACK and OIDC_HUMAN_CALLBACKÚtestz;test environment for MONGODB-OIDC does not support usernameÚazurezTAzure environment for MONGODB-OIDC requires a TOKEN_RESOURCE auth mechanism propertyÚgcpzOGCP provider for MONGODB-OIDC requires a TOKEN_RESOURCE auth mechanism propertyÚk8sz+unrecognized ENVIRONMENT for MONGODB-OIDC: )ÚcallbackÚhuman_callbackÚenvironmentÚallowed_hostsÚtoken_resourceÚusernameÚPLAINÚadminzA password is required)rY   rZ   r[   )z*.mongodb.netz*.mongodb-dev.netz*.mongodb-qa.netz*.mongodbgov.netÚ	localhostz	127.0.0.1z::1z*.mongo.com)r   rM   ÚgetrO   rB   rA   rC   r   r
   r   r   r   r   )rQ   rS   rT   rU   rV   rW   Ú
propertiesrd   rg   Úcanonicalizerf   ÚpropsrD   Ú	aws_propsrs   rt   Úenvironrw   Údefault_allowedrv   ÚmsgÚ
oidc_propsÚsource_databases   &&&&&&                 r   Ú_build_credentials_tupler†   d   sÆ  € ð ÐBÔBÀtÂ|Ü  D 6Ð)=Ð!>Ó?Ð?ØˆxÔØÒ &¨KÔ"7ÜÐYÓZÐZØ—Y‘YÐ8¸"Ó=ˆ
Ø!—~‘~ n°iÓ@ˆØ!—~‘~ n°dÓ;ˆØ!—~‘~Ð&>ÀÓHˆÜ7¸ÓEˆØ"Ÿ™ Ó7ˆÜ Ø%Ø#/Ø'Ø%ô	
ˆô ˜t [°$ÀÀtÓLÐLØ	�Ô	ØÒÜ$Ð%RÓSÐSØÒ &¨KÔ"7ÜÐ_Ó`Ð`ä˜t [°$¸¸dÀDÓIÐIØ	�Ô	ØÒ ¢Ü$Ð%bÓcÐcØÒ &¨KÔ"7Ü$ØQóð ð —Y‘YÐ8¸"Ó=ˆ
Ø&ŸN™NÐ+>Ó?ÐÜ"Ð5FÔGˆ	ä˜t [°$À	È4ÓPÐPØ	�Õ	Ø—Y‘YÐ8¸"Ó=ˆ
Ø—>‘> /Ó2ˆØ#Ÿ™Ð(=Ó>ˆØ—.‘. Ó/ˆØ#Ÿ™Ð(8¸"Ó=ˆò	
ˆð #Ÿ™ ¸ÓHˆØ�>‰>˜/¨4Ó0Ò<ÀÒAWÜ$Ð%[Ó\Ð\àdð 	ð ÒØ=ˆCÜ$ SÓ)Ð)ß—~ØÒ"Ü(¨Ó-Ð-ßŸNØM�Ü(¨Ó-Ð-øØÒ Ø˜&Ô ØÒ#ØW�CÜ,¨SÓ1Ð1Ü,Ó.‘Ø˜GÔ#Ø�ß%Ü,Ønóð ô .¨nÓ=‘Ø˜EÔ!Ø�ß%Ü,Øióð ô ,¨NÓ;‘Ø˜EÔ!Ø�Ü+Ó-‘ä(Ð+VÐW^ÐV_Ð)`ÓaÐaä$ SÓ)Ð)ä$ØØ)ØØ'Ø)Ø—Z�Z˜Rô
ˆ
ô ˜t [°$À
ÌFËHÓUÐUà	�ŒØ ×;Ð; H×;Ð;°ˆÜ˜t _°dÀDÈ$ÓOÐOà ×7Ð7 H×7Ð7°ˆØŠ>Ü$Ð%=Ó>Ð>Ü˜t _°dÀDÌ&Ë(ÓSÐSr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚfirÚbytesÚsecr   r   )r   s   "r   r   r   ã   s&   € ÷ @ñ @ˆeð @˜%ð @ Eñ @r   c           
     óŠ   € RP                  \        W4       UUu. uF  w  r#\        W#,          .4      NK  	  upp4      # u uppi )zXOR two byte strings together.r   )ÚjoinÚzipr‰   )rˆ   rŠ   ÚxÚys   &&  r   Ú_xorr�   ã   s1   € à�8‰8´°C´Ô>±©¨”U˜A�E˜7–^±Ò>Ó?Ð?ùÓ>s   š?
c               ó    € V ^8„  d   QhRRRR/# )r   Úresponser‰   r   zDict[bytes, bytes]r   )r   s   "r   r   r   è   s   € ÷ ñ  Eð Ð.@ñ r   c                óD   € \        R V P                  R4       4       4      # )z-Split a scram response into key, value pairs.c              3  ó®   "  € T FK  p\         P                  ! \         P                  \        \        3,          VP	                  R ^4      4      x € KM  	  R# 5i)ó   =N)ÚtypingÚcastÚTupler‰   Úsplit)Ú.0Úitems   & r   Ú	<genexpr>Ú(_parse_scram_response.<locals>.<genexpr>ê   s=   é € ð á(ˆDô 	�Š”F—L‘L¤¬ Õ.°·
±
¸4ÀÓ0C×DÐDÛ(ùs   ‚AAó   ,)Údictr™   )r’   s   &r   Ú_parse_scram_responser    è   s%   € äñ à—N‘N 4Ô(óó ð r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚcredentialsrA   Ú	mechanismrR   r   z4tuple[bytes, bytes, typing.MutableMapping[str, Any]]r   )r   s   "r   r   r   ð   s$   € ÷ "ñ "Ø ð"Ø-0ð"à9ñ"r   c                ó,  € V P                   pVP                  R 4      P                  RR4      P                  RR4      p\        \        P
                  ! ^ 4      4      pRV,           R,           V,           pR^RVR	\        R
V,           4      R^RRR//pWEV3# )zutf-8r•   s   =3Drž   s   =2Cs   n=s   ,r=Ú	saslStartr£   Úpayloads   n,,ÚautoAuthorizeÚoptionsÚskipEmptyExchangeT)rx   ÚencodeÚreplacer   ÚosÚurandomr	   )r¢   r£   rx   rT   ÚnonceÚ
first_bareÚcmds   &&     r   Ú_authenticate_scram_startr±   ð   s›   € ð ×#Ñ#€HØ�?‰?˜7Ó#×+Ñ+¨D°&Ó9×AÑAÀ$ÈÓO€DÜœrŸzšz¨"›~Ó.€EØ˜• Õ&¨Õ.€Jð 	�QØ�YØ”6˜& :Õ-Ó.Ø˜ØÐ'¨Ð.ð€Cð ˜cÐ!Ð!r   )r\   r[   rY   rZ   ry   zSCRAM-SHA-1zSCRAM-SHA-256ÚDEFAULT)r£   rS   rx   ÚpasswordÚmechanism_propertiesÚcacherc   )"Ú__doc__Ú
__future__r   r¬   r–   Úbase64r   Úcollectionsr   r   r   r   r   Úbsonr	   Úpymongo.auth_oidc_sharedr
   r   r   r   r   Úpymongo.errorsr   Ú	frozensetÚ
MECHANISMSr   rA   rB   rC   rO   r†   r�   r    r±   r   r   r   Ú<module>r¿      s±   ðñ  =Ý "ã 	Û Ý %Ý "ß /Ó /å ÷õ õ .áò	ó€
ð :÷ñ ñ. ØÚTó€ð ?ñ ØÒcóÐ ð 6ñ Ð,Ð/BÐ.CÓD€Ø :õõ|Tõ~@õ
÷"r   