
    T@9iZ                        d dl Z d dlmZ d dlmZ d dlmZ  eede j                  j                  e j                  j                  e j                  j                  e      dd                  Z eedd	      Z eed
d      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z eedd      Z e eedd             Z eed!d       Z eed"d#      Z eed$d      Z  eed%d&      Z! eed'd(      Z" eed)d      Z# eed*d(      Z$ eed+d,      Z% eed-d(      Z&e&xr  ed.      Z'eekD  reecZZd/ Z(d4d0Z)d1 Z*d2 Z+d3 Z,y)5    N)check)settings)import_stringCAPTCHA_FONT_PATHz..zfonts/Vera.ttfCAPTCHA_FONT_SIZE   CAPTCHA_LETTER_ROTATION)i#   CAPTCHA_BACKGROUND_COLORz#ffffffCAPTCHA_FOREGROUND_COLORz#001100CAPTCHA_LETTER_COLOR_FUNCTCAPTCHA_CHALLENGE_FUNCTz%captcha.helpers.random_char_challengeCAPTCHA_NOISE_FUNCTIONS)zcaptcha.helpers.noise_arcszcaptcha.helpers.noise_dotsCAPTCHA_FILTER_FUNCTIONS)zcaptcha.helpers.post_smoothCAPTCHA_WORDS_DICTIONARYz/usr/share/dict/wordsCAPTCHA_PUNCTUATIONz_"',.;:-CAPTCHA_FLITE_PATHCAPTCHA_SOX_PATHCAPTCHA_TIMEOUT   CAPTCHA_LENGTH   CAPTCHA_DICTIONARY_MIN_LENGTHCAPTCHA_DICTIONARY_MAX_LENGTHc   CAPTCHA_IMAGE_SIZECAPTCHA_MATH_CHALLENGE_OPERATOR*CAPTCHA_GET_FROM_POOLFCAPTCHA_GET_FROM_POOL_TIMEOUTCAPTCHA_TEST_MODECAPTCHA_2X_IMAGETCAPTCHA_ANIMATEDavifc                 T    t        |       r| S t        | t              rt        |       S y N)callable
isinstancestrr   )string_or_callables    L/var/www/apihucms/venv/lib/python3.12/site-packages/captcha/conf/settings.py_callable_from_stringr,   =   s-    "#!!	&	,/00 
-    c                 (    t        | xs t              S r&   )r,   r   )	generators    r+   get_challenger0   D   s     !E.EFFr-   c                  :    t         rt        t        t               S g S r&   )r   mapr,    r-   r+   noise_functionsr4   H   s    (*ABBIr-   c                  :    t         rt        t        t               S g S r&   )r   r2   r,   r3   r-   r+   filter_functionsr6   N   s    (*BCCIr-   c                 F    t         r t        t               | |      S t        S r&   )r   r,   r   )index	challenges     r+   get_letter_colorr:   T   s!    !@$%?@	RR##r-   r&   )-osPIL.featuresr   check_pil_featuredjango.confr   django.utils.module_loadingr   getattrpathnormpathjoindirname__file__r   r   r	   r   r   r   r   r   r   r   r   r   r   r   intr   r   r   r   r   r   r    r!   r"   r#   CAPTCHA_ANIMATED_USE_AVIFr,   r0   r4   r6   r:   r3   r-   r+   <module>rH      s2   	 3   5 GGRWW\\"''//(";TCSTU 
 H&92> !(,EyQ "8-GS "8-GS $X/KTR !')P  "@ 
 #(*J  #(*A  h(=~N X';TB 8%7> ($5q9WX'7;< '2QST U  '2QSU V X';TB ")/#   *A5I  '2QST U H&95A 8%7> 8%7? ,J1B61J  !#@@%% A!#@1G$r-   