
    Ng?V                        d Z ddlmZ ddlZ ej        eeeeeeeeeeeee           	 ddlmZ n# e	$ r e
ZY nw xY w	 e n# e$ r eZY nw xY wddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZ d	Zd
j        Z ej        d          Zej         j!        Z"dez  Z#e#$                    d          Z% G d de          Z&d Z'g Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0dCdZ1d Z2d Z3d Z4d Z5e*d              Z6e*d!             Z7e*d"             Z8d# Z9e*d$             Z: ej        d%          j;        Z<e* e= ej>        d&d'e                    fd(            Z?d) Z@ ej        d*          jA        ZBdDd,ZCd- ZDdEd.ZE	 dEd/ZFd0 ZGd1 ZHd2 ZIe*d3             ZJe'dFd5            ZKd6 ZLd7 ZMdGd8ZNdd9ejO        dfd:ZP G d; d<e          ZQd= ZRd> ZSd? ZTd@ ZUdA ZVdB ZWdS )Hz@
Cython -- Things that don't belong anywhere else in particular
    )absolute_importN)
basestringossysreiocodecsglobshutiltempfilecython_version_function_caches_parse_file_version_match_file_encoding)r   wraps   )__version__)z__init__.pyz__init__.pycz__init__.pyxz__init__.pxdz__{0}_cachez^__(.+)_cache$z/* Generated by Cython %s */zus-asciic                   $    e Zd ZdZd Zd Zd ZdS )"_TryFinallyGeneratorContextManagerz_
    Fast, bare minimum @contextmanager, only for try-finally, not for exception handling.
    c                     || _         d S N)_gen)selfgens     H/var/www/html/ai-engine/env/lib/python3.11/site-packages/Cython/Utils.py__init__z+_TryFinallyGeneratorContextManager.__init__5   s    			    c                 *    t          | j                  S r   )nextr   r   s    r   	__enter__z,_TryFinallyGeneratorContextManager.__enter__8       DIr   c                 `    	 t          | j                   d S # t          t          f$ r Y d S w xY wr   )r    r   StopIterationGeneratorExit)r   exc_typeexc_valexc_tbs       r   __exit__z+_TryFinallyGeneratorContextManager.__exit__;   s?    	OOOOO}- 	 	 	DD	s    --N)__name__
__module____qualname____doc__r   r"   r*    r   r   r   r   1   sK                 r   r   c                 <     t                      fd            }|S )Nc                  .    t           | i |          S r   )r   )argskwargsgen_funcs     r   make_genz,try_finally_contextmanager.<locals>.make_genC   s     1((D2KF2K2KLLLr   r   )r4   r5   s   ` r   try_finally_contextmanagerr6   B   s6    
8__M M M M _MOr   c                  B    t           D ]} |                                  d S r   )r   clear)caches    r   clear_function_cachesr:   L   s*    !   r   c                      i t                                          t                      t                      fd            } |_        |S )Nc                  P                         |           }|u r
 |  x}| <   |S r   )get)r2   resr9   f
uncomputeds     r   wrapperz cached_function.<locals>.wrapperV   s:    iij))* !4(C%+
r   )r   appendobjectr   uncached)r?   rA   r9   r@   s   ` @@r   cached_functionrE   Q   si    EE"""J
1XX      X GNr   c              #      K   t          |           D ]7}t                              |          }|||                    d          fV  8dS )zThe function iterates over the attributes of the object and,
    if it finds the name of the cache, it returns it and the corresponding method name.
    The method may not be present in the object.
    Nr   )dir_CACHE_NAME_PATTERNmatchgroup)obj	attr_namerI   s      r   _find_cache_attributesrM   a   s\      
 XX , ,	#)))44U[[^^++++, ,r   c                 p    t          |           D ]%\  }}t          | |          rt          | |           &dS )zbRemoves every cache found in the object,
    if a corresponding method exists for that cache.
    N)rM   hasattrdelattr)rK   
cache_namemethod_names      r   clear_method_cachesrS   l   sM     $:##>#> % %
K3$$ 	%C$$$% %r   c                 >     t           j                   fd}|S )Nc                     t          | d           }|i }t          | |           ||v r||         S  | g|R  x}||<   |S r   )getattrsetattr)r   r2   r9   r>   rQ   r?   s       r   rA   zcached_method.<locals>.wrapperz   sd    j$//=ED*e,,,5==;AdNTNNN*eDk
r   )_build_cache_namer+   )r?   rA   rQ   s   ` @r   cached_methodrY   w   s8    "1:..J      Nr   c                 P    t           j                            |           \  }}||z   S r   )r   pathsplitext)r[   newsufbase_s       r   replace_suffixr`      s%    gt$$GD!&=r   c                     t           j                            |           rt          j        |            t	          j        | dd          S )Nwz
ISO-8859-1)encoding)r   r[   existsunlinkr	   openr[   s    r   open_new_filerh      s@    	w~~d  		$ ;tS<8888r   c                    t          | dd          sd S 	 t          |           }|                    d           |                                 |r&t	          j        | |j        |j        dz
  f           d S d S # t          $ r Y d S w xY w)NTF)allow_failedif_not_foundzN#error Do not use this file, it is the result of a failed Cython compilation.
r   )	is_cython_generated_filerh   writecloser   utimest_atimest_mtimeEnvironmentError)r[   str?   s      r   castrate_filert      s    
 $Dt%PPP 	9$ 	
]	_ 	_ 	_				 	9HTBKQ788888	9 	9    s   A8 8
BBFTc                 V   d}d }t           j                            |           rc	 t          | d          5 }|                    t          |                    }d d d            n# 1 swxY w Y   n# t          t          f$ r Y nw xY w||S |                    d          p
|o||k    p| S )NsM   #error Do not use this file, it is the result of a failed Cython compilation.rbs   /* Generated by Cython )	r   r[   rd   rf   readlenOSErrorIOError
startswith)r[   rj   rk   failure_markerfile_contentr?   s         r   rl   rl      s   eNL	w~~d 	dD!! ;Q vvc.&9&9::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;! 	 	 	D	  	 :;; 			8,.8	 s4   A0 #A$A0 $A((A0 +A(,A0 0BBc                 L   d}t           j                            |           rh	 t          | d          5 }|                    t          t                              }d d d            n# 1 swxY w Y   n# t          t          f$ r Y nw xY w|o|	                    t                    S )Nr   rv   )
r   r[   rd   rf   rw   rx   GENERATED_BY_MARKER_BYTESry   rz   r{   )r[   r}   r?   s      r   file_generated_by_this_cythonr      s    L	w~~d 	dD!! FQ vvc*C&D&DEEF F F F F F F F F F F F F F F! 	 	 	D	NL334MNNNs4   A3 (A'A3 'A++A3 .A+/A3 3BBc                 ,    t          |           }||k    S r   )modification_time)r[   timeftimes      r   file_newer_thanr      s    d##E4<r   c                     	 t          j        |            d S # t          $ r$ t           j                            |           s Y d S w xY wr   )r   makedirsry   r[   isdirrg   s    r   safe_makedirsr      s`    
D   w}}T"" 		 	 	s    *AAc                 .   t           j                            |t           j                            |                     }	 t	          |          }t          | |          sdS n# t          $ r t          |           Y nw xY wt          j	        | |           dS )z
    Copy file sourcefile to directory destdir (creating it if needed),
    preserving metadata. If the destination file exists and is not
    older than the source file, the copying is skipped.
    N)
r   r[   joinbasenamer   r   ry   r   r   copy2)
sourcefiledestdirdestfiledesttimes       r   copy_file_to_dir_if_newerr      s     w||GRW%5%5j%A%ABBH$X.. z844 	F	    g LX&&&&&s   A! !A=<A=c                     t           j                            |           }| |k    r|S t          |          rt	          |          S |S r   )r   r[   dirnameis_package_dirfind_root_package_dir)	file_pathrG   s     r   r   r      sH    
'//)
$
$CC
			 $S)))
r   c                 ~    d}|D ]5}t           j                            | |          } t          |           }|rd}6| |fS )NTF)r   r[   r   contains_init)dir_pathpackage_names	namespacer   has_inits        r   check_package_dirr      sQ    I   7<<'22 ** 	IYr   c                 ~    t           D ]4}t          j                            | |          }t	          |          r dS 5d S Nr   )PACKAGE_FILESr   r[   r   path_exists)r   filenamer[   s      r   r   r     sL    !  w||Hh//t 	11	 r   c                 (    t          |           rdS d S r   )r   )r   s    r   r   r     s!    X q r   c                    t           j                            |           rdS 	 t          }t	          |dd           }|rwt           j                            |           }|                    |          rC|t          |          dz   d          }	 |                    |           dS # t          $ r Y dS w xY wn# t          $ r Y nw xY wdS )NTarchiver   F)r   r[   rd   
__loader__rV   normpathr{   rx   get_datarz   	NameError)r[   loaderarchive_pathr   arcnames        r   r   r     s     
w~~d t vy$77 	!w''--H""<00 !"3|#4#4Q#6#7#78!OOG,,,4 ! ! ! 55!   5s0   A(B5 B# #
B1-B5 0B11B5 5
CCz .*[.]cython-([0-9]+)[.][^./\\]+$z^([0-9]+)[.]([0-9]+).*z\1\2c                 
   |r|dd         dk    sJ t           j                            | |          }t          j        t          j        dk    rt          j        |          nd                    d |D                       dz   |z             }||z   }t           j                            |          sd}d|f}|D ]B}t          |          }|r/t          |d	                   }	|d	         |	cxk     r|k    rn >|	|f}C|d         S )
a?  
    Search a directory for versioned pxd files, e.g. "lib.cython-30.pxd" for a Cython 3.0+ version.

    @param directory: the directory to search
    @param filename: the filename without suffix
    @param suffix: the filename extension including the dot, e.g. ".pxd"
    @return: the file path if found, or None
    Nr   .)       c                 *    g | ]}|d v rd|z   dz   n|S )z[*?[]r/   ).0cs     r   
<listcomp>z'find_versioned_file.<locals>.<listcomp>A  s,    JJJ1::c!eCii1JJJr   z	.cython-*r   )
r   r[   r   r
   r   version_infoescaperd   r   int)
	directoryr   suffix_current_versionpath_prefixmatching_filesr[   
best_matchversionsint_versions
             r   find_versioned_filer   1  s4    *s****',,y(33KY%(%5%?%?[	!	!	!GGJJkJJJKK		 ! !N D7>>$ dJ 1 1&t,, 	1hqk**K!}{>>>>.>>>>>>)40
a=r   c                     t          | t                    rO	 t          j                    }|t          j                    }|                     |          } n# t          $ r Y nw xY w| S r   )
isinstancebytesr   getfilesystemencodinggetdefaultencodingdecodeUnicodeDecodeError)r   filename_encodings     r   decode_filenamer   T  sv    (E"" 	 # 9 ; ; ($'$:$<$<!'899HH! 	 	 	D	Os   =A 
A"!A"s   (\w*coding)[:=]\s*([-\w.]+)UTF-8c                    d}d}t          |          dk     rE|                     d          }||z  }|                    d          }|snt          |          dk     Et          |d                   }|rA|                    d          dk    r(|                    d	                              d
          S t          |          dk    r?t          |d                   }|r(|                    d	                              d
          S |S )Nr/   r   r   i     
r   r   s   c_string_encoding   z	iso8859-1)rx   rw   splitr   rJ   r   )r?   defaultlinesstartdatams         r   detect_opened_file_encodingr   e  s     EE
e**q..vvc{{E"" 	 e**q.. 	U1X&&A 2QWWQZZ///wwqzz  ---	Ua q** 	2771::$$[111Nr   c                 f    |                      d          dk    r|                     d           dS dS )z
    Read past a BOM at the beginning of a source file.
    This could be added to the scanner, but it's *substantially* easier
    to keep it at this level.
    r   u   ﻿r   N)rw   seek)r?   s    r   skip_bomr   |  s4     	vvayyI	q					 r   c                    d }	 |Qt          j        | d          }t          |          }|                    d           t          j        |||          }nt          j        | ||          }n|# t
          $ ro t          j                            |           r 	 t          }| 
                    |j                  rt          || ||          }n# t          t          f$ r Y nw xY wY nw xY w|t          |           t!          |           |S )Nrv   r   rc   errors)r   rf   r   r   TextIOWrapperry   r   r[   rd   r   r{   r   open_source_from_loaderr   AttributeErrorFileNotFoundErrorr   )source_filenamerc   error_handlingstreamr?   r   s         r   open_source_filer     s0   F..A2155HFF1III%a(>RRRFFW_xWWWF   7>>/** 		F))&.99 .0On. . >* 	 	 	D	 ~000VMs6   A*A/ /*C(3CC(C"C(!C""C('C(c                     t           j                            |          }|t          | j                  dz   d          }|                     |          }t          j        t          j        |          ||          S )Nr   r   )	r   r[   r   rx   r   r   r   r   BytesIO)r   r   rc   r   nrmpathr   r   s          r   r   r     su     g//Gc&.))!+,,-G??7##DBJt,,%-#13 3 3 3r   c                    d}| d d         dk    rd}| dd          } t          |           dk     rt          | d          } n| d         dk    r| d         }|dv r(t          |           } t          | dd          d	          } n[|d
v rt          | dd          d          } n>|dv rt          | dd          d          } n!t          | d          } nt          | d          } |r|  n| S )NFr   -Tr   r   0xX   oO   bB)rx   r   strip_py2_long_suffix)valueis_negliteral_types      r   str_to_numberr     s
    FRaRyCabb	
5zzA~~E1	qSQx4)%00Eabb	2&&EET!!abb	1%%EET!!abb	1%%EE qMMEEE1&E66&r   c                 .    | d         dv r
| dd         S | S )z~
    Python 2 likes to append 'L' to stringified numbers
    which in then can't process when converting them to numbers.
    r   lLNr/   )	value_strs    r   r   r     s'    
 }"~r   c                 l    t          | t                    rt          |           } d| cxk    odk     nc  S )Ni   l        )r   r   r   )r   s    r   long_literalr     sF    %$$ %e$$&&&&&&&&&&r   c                      dt           j        v rt           j        d         S d} t           j        dk    rOt          j        dk    r t           j                            d          } nt           j                            d          } | r?t           j                            |           r t           j        	                    | d          S t           j                            t           j        	                    dd	                    S )
z
    Return the base directory containing Cython's caches.

    Priority:

    1. CYTHON_CACHE_DIR
    2. (OS X): ~/Library/Caches/Cython
       (posix not OS X): XDG_CACHE_HOME/cython if XDG_CACHE_HOME defined
    3. ~/.cython

    CYTHON_CACHE_DIRNposixdarwinz~/Library/CachesXDG_CACHE_HOMEcython~z.cython)
r   environnamer   platformr[   
expanduserr=   r   r   )parents    r   get_cython_cache_dirr	    s     RZ''z,--F	w'<8##W''(:;;FF Z^^$455F ."'--'' .w||FH--- 7bgll3	::;;;r   r   c              #     K   t          j        |           }	 t          j        d          5 dgffd	t          j                                        |            fd}|V  t          j        ||                          d d d            n# 1 swxY w Y   t          j        |           d S # t          j        |           w xY w)Nza+b)moder   c                 z    j         s,                    d                                           | d<   | d         S )Nr   )closedr   rw   )_output	temp_files    r   read_outputz captured_fd.<locals>.read_output  s=     ' 2NN1%%%!*!1!1GAJqz!r   c                  J                 } r|                                n| S r   )r   )resultrc   r  s    r   
get_outputzcaptured_fd.<locals>.get_output  s*    $2:Fv}}X...Fr   )r   dupr   TemporaryFiledup2filenorn   )r   rc   orig_streamr  r  r  s    `  @@r   captured_fdr    sA     &..K#/// 	9%(E " " " " " " GI$$&&///G G G G G G GK(((KMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	" 	s/   B6 AB	B6 BB6 BB6 6Cc                      t          j                    g} t           j        t           j        t           j        t           j        fD ].}t          |dd           }||| vr|                     |           /| S )Nrc   )r   r   stdoutstdin
__stdout__	__stdin__rV   rB   )
candidatesr   rc   s      r   get_encoding_candidatesr     so    (**+J:sy#.#-H ( (6:t44HJ$>$>h'''r   c                     |                                  }|sd S t                      D ])}	 |                    |          c S # t          $ r Y &w xY w|                    d          S )Nzlatin-1)stripr   r   r   )capturedcaptured_bytesrc   s      r   prepare_capturedr%    s    ^^%%N t+--  	!((22222! 	 	 	D	   +++s   A
AAc                     t          |           } | r.|r|                    |           |                    |            d S d S r   )r%  rm   )r#  outputheader_lines      r   print_capturedr)  +  sS    ))H  	&LL%%%X r   r   c                    |r|                     |           |                                 	 |j        }n# t          $ r |}Y nw xY w|                     |            |r|                     |           |r|                                 d S d S r   )rm   flushbufferr   )sheader_textendfiler+  outs         r   print_bytesr2  3  s      

;JJLLLk   IIaLLL
 		# 		 s   5 AAc                   2    e Zd ZddZd Zd Zd Zd ZeZdS )	
OrderedSetr/   c                 d    g | _         t                      | _        |                     |           d S r   )_listset_setupdate)r   elementss     r   r   zOrderedSet.__init__C  s,    
EE	Hr   c                 *    t          | j                  S r   )iterr6  r!   s    r   __iter__zOrderedSet.__iter__H  s    DJr   c                 :    |D ]}|                      |           d S r   )add)r   r:  es      r   r9  zOrderedSet.updateK  s,     	 	AHHQKKKK	 	r   c                     || j         vr6| j                            |           | j                             |           d S d S r   )r8  r6  rB   r?  )r   r@  s     r   r?  zOrderedSet.addO  sG    DIJa   IMM! r   c                 *    t          | j                  S r   )boolr8  r!   s    r   __bool__zOrderedSet.__bool__T  r#   r   N)r/   )	r+   r,   r-   r   r=  r9  r?  rD  __nonzero__r/   r   r   r4  r4  B  se           
         
   KKKr   r4  c                       fd}|S )z6Class decorator for creating a class with a metaclass.c                 N   | j                                         }|                    d          }|2t          |t                    r|g}|D ]}|                    |           |                    dd            |                    dd             | j        | j        |          S )N	__slots____dict____weakref__)rI  copyr=   r   strpopr+   	__bases__)cls	orig_varsslots	slots_var	metaclasss       r   rA   zadd_metaclass.<locals>.wrapper^  s    L%%''	k**%%%  " ) )	i((((j$'''mT***ys}i@@@r   r/   )rS  rA   s   ` r   add_metaclassrT  \  s(    
A 
A 
A 
A 
A Nr   c                 Z    | dk    s|                      d          rt          d          d S )Nr  zcython.z;cython is a special module, cannot be used as a module name)r{   
ValueError)full_module_names    r   $raise_error_if_module_name_forbiddenrX  l  s8    8##'7'B'B9'M'M#VWWW $#r   c                 @   g }d}t          j        d|           D ]P}|dv rdddd|         }|ddgz   dd	         }"|d
v r n)|dk    r"|                    t          |                     Q|dgd	z  z   dd         }|d	xx         |z  cc<   d}|D ]
}|dz  |z   }d|z  S )z
    Parse and translate public version identifier like '4.3a1' into the readable hex representation '0x040300A1' (like PY_VERSION_HEX).

    SEE: https://peps.python.org/pep-0440/#public-version-identifiers
       z(\D+))abrc         r   Nr   )z.devz.prez.postr   r   r   z0x%08X)r   r   rB   r   )version_stringdigitsrelease_statussegment
hexversiondigits         r   build_hex_versionrg  r  s     FN8Hn55 ( (&&&#'d$??HN1vorr*FF111E^^MM#g,,'''sQw#F
1IIIIII J / / Ao.

j  r   c                    t           j                            |          }t          j                    }|                    t           j                  s|t           j        z  }g }|D ]}|                    |          rQ	 t           j                            ||          }nN# t          $ r" t           j        	                    |          }Y n#w xY wt           j        	                    |          }|
                    |           t           j                            | |          dz   }|d                    |          dz   z  }t          | dz   d          5 }	|	                    |           d d d            d S # 1 swxY w Y   d S )Nz: \
  z \
  
z.deprb   )r   r[   r   getcwdendswithsepr{   relpathrV  abspathrB   r   rf   rm   )
targetsourcedependenciessrc_base_dircwdpathsfnamenewpathdeplineoutfiles
             r   write_depfilery    s   7??6**L
)++C  (( E 	 	L)) 	-1'//%55 1 1 1'//%001 gooe,,GWgoofc**Z7Gy~~e$$t++G	fVmS	!	! Wg                 s$   = B)C
	C
E66E:=E:c                  N   t          dt          z             t          j                                        st          j        t          j        k    rd S t          j        d          t          j        d          k    rd S t          j                            dt          z             d S )NzCython version %sr   r   zCython version %s
)	printr   r   stderrisattyr  r   fstatrm   r/   r   r   print_versionr    s    	

./// z cjCJ66	x{{bhqkk!! 	J*^;<<<<<r   c                    |                                                      d          }d}d|v sd|v r.|                    d|v rdndd          \  }}t          |          }d|v r.|                    d          }|d|         ||dz   d         z   }nt          |          }||z  }|d|         d|t          |          z
  z  z   dz   d| z  z   ||d         z                       d          }|dk    r|ndS )	z
    Generate a 'normalised', simple digits string representation of a float value
    to allow string comparisons.  Examples: '.123', '123.456', '123.'
    r   r   Er@  r   r   Nz.0)lowerlstripr   r   indexrx   rstrip)	float_str	str_valueexpnum_int_digitsr  s        r   normalise_float_reprr    s6   
 !!((--I
C
i3)++"y0@0@c1MM	3#hh
i"--o~o.>A;M;N;N1OO		Y>C 	$3$
s9~~%
&	'
	 *	 CDD/		
 fSkk  s]]66,r   )FT)r   )NN)r   Nr   )Xr.   
__future__r   r  declarerC   list__builtin__r   ImportErrorrL  r   r   ry   r   r   r   r   r	   r
   r   r   	functoolsr   r   r   r   r   formatrX   compilerH   r[   getmtimer   GENERATED_BY_MARKERencoder   r   r6   r   r:   rE   rM   rS   rY   r`   rh   rt   rl   r   r   r   r   r   r   r   r   r   findallr   r   subr   r   searchr   r   r   r   r   r   r   r   r	  r  r   r%  r)  r  r2  r4  rT  rX  rg  ry  r  r  r/   r   r   <module>r     s7    ' & & & & &  6fVTZekvF	   &&&&&&&   JJJ         
			 



 				 				           + + + + + +O!(  bj!233 G$ 4~E /66zBB        "      
   , , ,% % %     
9 9 99 9 9(   0O O O  
  ' ' '&           
   0 !bj!DEEM  ),VRV4MwXf-g-g)h)h   D	 	 	 "rz"ABBI    .     B ;?3 3 3 3' ' ':  ' ' ' < < <<    .  
, 
, 
,     $SZt           4   X X X! ! !<  2
= 
= 
=- - - - -s   2 << A AA