+
    8i               	      F   R t ^ RIHt ^ RIHtHt  ^ RItRt^ RIt]P                  ]P                  ]P                  ]P                  ]P                  ]P                  ]P                  ]P                   ]P"                  3	tR
R R lltR#   ] d    RtR
R R	 llt R# i ; i)z&An implementation of RFC4013 SASLprep.)annotations)AnyOptionalNTc               $    V ^8  d   QhRRRRRR/#    datar   prohibit_unassigned_code_pointszOptional[bool]return )formats   "N/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymongo/saslprep.py__annotate__r   9   s"     ; ;s ;^ ;WZ ;    c                  a \        V \        4      '       g   V # V'       d   . \        O\        P                  N5pM\        p\        P
                  p\        P                  pRP                  V  Uu. uF$  qT! V4      '       d   K  V! V4      '       d   RMTNK&  	  up4      p \        P                  P                  RV 4      p \        P                  pV! V ^ ,          4      '       d7   V! V R	,          4      '       g   \        R4      h. VO\        P                  N5pM. VOVN5pV  FN  o\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       g   KE  \        R4      h	  V # u upi )
a  An implementation of RFC4013 SASLprep.

:param data: The string to SASLprep. Unicode strings
    (:class:`str`) are supported. Byte strings
    (:class:`bytes`) are ignored.
:param prohibit_unassigned_code_points: True / False. RFC 3454
    and RFCs for various SASL mechanisms distinguish between
    `queries` (unassigned code points allowed) and
    `stored strings` (unassigned code points prohibited). Defaults
    to ``True`` (unassigned code points are prohibited).

:return: The SASLprep'ed version of `data`.
  NFKCz$SASLprep: failed bidirectional checkc              3  2   <"   T F  q! S4      x  K  	  R # 5i)Nr   ).0in_tablechars   & r   	<genexpr>saslprep.<locals>.<genexpr>q   s     =*h8D>>*s   TFz+SASLprep: failed prohibited character check)
isinstancestr_PROHIBITED
stringprepin_table_a1in_table_c12in_table_b1joinunicodedata	ucd_3_2_0	normalizein_table_d1
ValueErrorin_table_d2any)r   r	   
prohibitedr    r!   eltr&   r   s   &&     @r   saslprepr,   9   sE     $$$K*?;?
(>(>?J$J ".. ,,ww?C\t;WZK[3c**X3t\
 $$..vt< ,,tAwtBx(( !!GHH ?:>z'='=>J
 4:3{3J Ds=*=sss=*=== !NOO  9 ]s   1E:E:E:Fc               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r   r   r      s&     
 

)7
 

r   c                H    \        V \        4      '       d   \        R4      hV # )zSASLprep dummyz[The stringprep module is not available. Usernames and passwords must be instances of bytes.)r   r   	TypeError)r   r	   s   &&r   r,   r,      s*    
 dC  8  r   )T)__doc__
__future__r   typingr   r   r   HAVE_STRINGPREPr#   r    in_table_c21_c22in_table_c3in_table_c4in_table_c5in_table_c6in_table_c7in_table_c8in_table_c9r   r,   ImportErrorr   r   r   <module>r=      s    - "  `" O 	##K; ;G  O
 
s   B B B 