+
    :ii                     	   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
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 ^ RIHtHt ^ R	IHtHtHtHt ]P@                  PB                  t"]#! ]R
]",          4      t$]#! ]R]",          4      t%]P@                  PL                  t']P@                  PP                  t)]%! ]P@                  PT                  4      t+]PX                  PZ                  ^ 8X  d   ^M^=t.Rt/]/t0]Pb                  Pd                  t3]P@                  Ph                  t5]P@                  Pl                  t7R t8]! ]84      R 4       t9]! ]:4      R 4       t;]R 4       t<]! R]%R]%R]Pz                  R]P|                  R]P|                  R]%R]P|                  /R7      R 4       t?]R 4       t@]R 4       tA]! R]%R]%R]%R]%R]%R]%R]P                  R ]P                  /R7      R! 4       tC]! ]P                  R"4      ]! ]P                  R"4      R# 4       4       tF]! ]P                  R"4      R$ 4       tH]! ]P                  R"4      R% 4       tJ]%PZ                  ^,          ^8  d5   ]%! R&4      tK]%! R'4      tL]%! R(4      tM]! R]P                  /R7      R) 4       tOM3]%! R*4      tK]%! R+4      tL]%! R,4      tM]! R]P                  /R7      R- 4       tO]! R.]%R/]%R0]%R1]%R2]%/R7      R3 4       tP]! ]P                  R"4      R4 4       tR^ R5IHStSHTtTHUtUHVtVHWtWHXtX  ! R6 R7]W4      tY ! R8 R9]W4      tZ ! R: R;]W4      t[ ! R< R=]W4      t\ ! R> R?]X4      t]]! R@RARB.4      t^RC t_]_! 4       t`]7R^9   Ed7   ]7RF8X  d   RGta]P                  ! ]a4       ]! R]P                  RH]P                  /R7      RI 4       tc]! RJ]P                  RH]P                  RK]P                  RL]P                  RM]P                  RN]P                  /R7      RO 4       td]! RP]P                  RQ]P                  RR]P                  RS]P                  /R7      RT 4       te]! RP]P                  RQ]P                  RR]P                  RS]P                  /R7      RU 4       tfRV tg]g! RD4      th]g! RE4      ti]7RD8X  d   ]hM]itjMRW]7,          ta]k! ]a4      h]RX 4       tlRY tm]! ]m4      RZ 4       tn]! R[]%/R7      R\ 4       to]! ]P                  R"4      R] 4       tqR# )_z&
Hash implementations for Numba types
N)
namedtuple)ir)literal_unroll)overloadoverload_method	intrinsicregister_jitable)errors)types)	grab_bytegrab_uint64_t)	const_intget_next_intget_next_int32get_state_ptrzint%szuint%siCB c                     R # N )	hash_funcs   &S/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cpython/hashing.py_defer_hashr   /   s        c                     a R V  R2oV3R lpV# )zunhashable type: ''c                 0   < Vf   \        S4      hV! 4       # r   )	TypeError)objr   err_msgs   &&r   implol_defer_hash.<locals>.impl7   s    G$$;r   r   )r   r   r   r   s   && @r   ol_defer_hashr    3   s    "3%q)G
 Kr   c                     a R V  R2oV3R lpV# )z+No __hash__ is defined for object of type 'zn' and a generic hash() cannot be performed as there is no suitable object represention in Numba compiled code!c                 j   < \        V R 4      '       d   \        V \        V R 4      4      # \        S4      h)__hash__)hasattrr   getattrr   )r   attempt_generic_msgs   &r   r   hash_overload.<locals>.implG   s0    3
##sGC$<==/00r   r   )r   r   r&   s   & @r   hash_overloadr(   @   s(    "e $BB
1
 Kr   c                 R    \        V 4      pV\        R4      8X  d   \        R4      pV# )   )
_Py_hash_tint)valasints   & r   process_returnr1   O   s%    sOERBLr   xymesign_PyHASH_MODULUS_PyHASH_BITSlocalsc                    \         P                  ! V 4      '       gF   \         P                  ! V 4      '       d   V ^ 8  d   \        # \        ) # \	        4       p\        V4      # \        P                  ! V 4      w  r#^pV^ 8  d   RpV) p^ pV'       dw   V^,          \        ,          V\        ^,
          ,	          ,          pVR,          pV^,          p\        V4      pW%,          pW,          pV\        8  g   Ko  V\        ,          pK~  V^ 8  d   V\        ,          pM&\        ^,
          RV,
          \        ,          ,
          pW,          \        ,          V\        V,
          ,	          ,          pW,          p\        V4      # )    g      Ar+   )npisfiniteisinf_PyHASH_INF_prng_random_hashr1   mathfrexpr7   r8   r.   )vr2   r4   r5   r6   r3   s   &     r   _Py_HashDoublerE   ^   s(    ;;q>>HHQKKA""#|# "#A!!$$::a=DAD	AB 	
A2g(A,2C,DD	[	RF		 AAv1a< 78
&O	#q\A-='>>A	A!r   c                 V    R  p\         P                  ! \         P                  4      pW23# )c                 ^    V^ ,          pVP                  V\        P                  ! 4       4      # )r<   )fpextr   
DoubleType)cgctxbuilder	signatureargsr/   s   &&&& r   r   _fpext.<locals>.impl   s"    1g}}S"--/22r   )r
   float64float32)tyctxr/   r   sigs   &&  r   _fpextrS      s#    3 --
&C9r   c                 "    R  p\        4       pW!3# )c                     \        WR 4      p\        \        4      p\        ^ 8X  d   \        WV4      pV# \	        WWER4      pV# )internalF)r   r   _hash_widthr   r   )rJ   rK   rL   rM   	state_ptrbitsvalues   &&&&   r   r   _prng_random_hash.<locals>.impl   sJ    !%*=	% ""59=E  !%HEr   )r-   )rQ   r   rR   s   &  r   rA   rA      s    $ ,C9r   p1p2p3p4_PyLong_SHIFTc                    ^ \         ,
          p\        P                  ! ^ 4      ( V,	          p^@\         ,          ^,           p^ p\        \         ,
          p\	        V^,
          RR4       F|  pV\         ,          pV\
        ,          pWE,	          p	W,          pV\        P                  ! W\         ,          ,	          V,          4      ,          pV\
        8  g   Ko  V\
        ,          pK~  	  \        V4      # )    r+   )r`   r
   uint32r8   ranger7   r-   )
r/   
_tmp_shift
mask_shiftir2   r^   idxr\   r]   r_   s
   &         r   
_long_implri      s     m#J<<$$3J 
}	!A 	
A

&BQUB#-/!WG	U\\3"55CDD A $ a=r   r#   c                    aaa \         P                  R8:  d   RMRo\        P                  ! R4      o\	        V RR4      '       d   \        P                  M\        P
                  oVVV3R lpV# )   signedFc                    < S! V 4      p \        V 4      pV\        8  d*   V ^ 8X  d   ^ pMCV S8X  d   \        S4      pM0\        V 4      pM$RpV ^ 8  d   V ) p Rp\        V 4      pV'       d   V) p\	        V4      # )r<   FT)absr7   r-   ri   r1   )r/   magretneeds_negate_BIG_HASH_I64_MIN_SIGNED_MINs   &   r   r   int_hash.<locals>.impl   s|     3i#h ax# / o LQwd#S/Cdc""r   l        r,   l         )sysmaxsizer
   int64r%   uint64)r/   r   rr   rs   rt   s   & @@@r   int_hashr{      sQ     ++0BbM++12K "#x775;;U\\D#8 Kr   c                 8    V P                   ^@8X  d   R pV# R pV# )@   c                     \        V 4      pV# r   )rE   )r/   hasheds   & r   r   float_hash.<locals>.impl  s    #C(FMr   c                 Z    \         P                  ! \        V 4      4      p\        V4      pV# r   )r=   rO   rS   rE   )r/   
fpextendedr   s   &  r   r   r     s#    F3K0J#J/FMr   )bitwidthr/   r   s   & r   
float_hashr     s&    
||r	 K	
 Kr   c                     R  pV# )c                     \        V P                  4      p\        V P                  4      pV\        V,          ,           p\	        V4      # r   )hashrealimag_PyHASH_IMAGr1   )r/   hashrealhashimagcombineds   &   r   r   complex_hash.<locals>.impl#  s8    >> lX55h''r   r   r   s   & r   complex_hashr   !  s    	( Kr   l   Jfq	 l   OkO8 l   g,,> c                     V \         P                  ! ^4      ,          V \         P                  ! ^!4      ,	          ,          # )   r
   rz   r2   s   &r   _PyHASH_XXROTATEr   ;  +     ell2&&1R0@+@ABr   l   yn< l   wJ igVc                     V \         P                  ! ^4      ,          V \         P                  ! ^4      ,	          ,          #    r   r   s   &r   r   r   D  r   r   acclane_PyHASH_XXPRIME_5_PyHASH_XXPRIME_1tlc                 n   \        V 4      p\        p\        V 4       FM  p\        V4      pV\	        R4      8X  d   Ru # W$\
        ,          ,          p\        V4      pV\        ,          pKO  	  W!\        \	        R4      ,          ,          ,          pV\	        R4      8X  d   \        R4      # \        V4      # )r*   is5 iK*\r+   )	lenr   r   r   _Py_uhash_t_PyHASH_XXPRIME_2r   r   r1   )tupr   r   r2   r   s   &    r   _tuple_hashr   J  s    
 
SB
CC Aw;r?"I'''s#   ! "[%99::C
k"oj))#r   c                     R  pV# )c                     \        V 4      # r   )r   )r/   s   &r   r   tuple_hash.<locals>.implc  s    3r   r   r   s   & r   
tuple_hashr   a  s     Kr   )c_size_tc_ubytec_uint64	pythonapi	StructureUnionc                   &    ] tR tRtR]3R]3.tRtR# )FNVi  prefixsuffixr   N)__name__
__module____qualname____firstlineno__r   _fields___static_attributes__r   r   r   r   r     s    	8	8Hr   r   c                   &    ] tR tRtR]3R]3.tRtR# )SIPHASHi  k0k1r   N)r   r   r   r   r   r   r   r   r   r   r   r     s    	x	xHr   r   c                   4    ] tR tRtR]^,          3R]3.tRtR# )DJBX33Ai  paddingr   r   Nr   r   r   r   r   r   r   r   r   r   r   r   r     s    	GbL!	8Hr   r   c                   4    ] tR tRtR]^,          3R]3.tRtR# )EXPATi  r   hashsaltr   Nr   r   r   r   r   r     s    	GbL!	XHr   r   c                   F    ] tR tRtR]^,          3R]3R]3R]3R]3.t	Rt
R# )	_Py_HashSecret_ti  ucfnvsiphashdjbx33aexpatr   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s6     
w|		G	G	%
Hr   r   _hashsecret_entrysymbolrZ   c                    a \         P                  \        R4      p / oV3R lpV! RV P                  P                  4       V! RV P
                  P                  4       V! RV P
                  P                  4       S# )zRead hash secret from the Python process

Returns
-------
info : dict
    - keys are "djbx33a_suffix", "siphash_k0", siphash_k1".
    - values are the namedtuple[symbol:str, value:int]
_Py_HashSecretc                    < R P                  V 4      p\        P                  ! V4      p\        P                  ! V4      p\        P
                  ! W#4       \        W!R7      SV &   R# )z_numba_hashsecret_{})r   rZ   N)formatctypesr   	addressofll
add_symbolr   )namer/   symbol_nameaddrinfos   &&  r   inject!_build_hashsecret.<locals>.inject  sK    ,33D9ooc"$
k(&kET
r   djbx33a_suffix
siphash_k0
siphash_k1)r   in_dllr   r   r   r   r   r   )pyhashsecretr   r   s     @r   _build_hashsecretr     sm     $**96FGLDF \11889
<--001
<--001Kr   	siphash13	siphash24r   a  FNV hashing is not implemented in Numba. See PEP 456 https://www.python.org/dev/peps/pep-0456/ for rationale over not using FNV. Numba will continue to work, but hashes for built in types will be computed using siphash24. This will permit e.g. dictionaries to continue to behave as expected, however anything relying on the value of the hash opposed to hash as a derived property is likely to not work as expected.bc                     \         P                  ! W,          V \         P                  ! ^@4      V,
          ,	          ,          4      # )r}   r   )r2   r   s   &&r   _ROTATEr     s-     ||aZQELL4D4J,KLMMr   acdstc                     W,          p W#,          p\        W4      V ,          p\        W54      V,          p\        V ^ 4      p WW#3# )rb   )r   )r   r   r   r   r   r   s   &&&&&&r   _HALF_ROUNDr     sC     	
	AMAAMAArNQzr   v0v1v2v3c                 N    \        WW#^^4      w  rr#\        W!W^^4      w  r!rWW#3# r   )r   r   r   r   r   s   &&&&r   _SINGLE_ROUNDr     s6    
 %RRR<$RRR<r~r   c                 F    \        WW#4      w  rr#\        WW#4      w  rr#WW#3# r   )r   r   s   &&&&r   _DOUBLE_ROUNDr   (  s.    
 'rr6&rr6r~r   c                   aa V R 8X  d
   \         oRoMV R8X  d
   \        oRoMQ R4       h\        R\        P                  R\        P                  R\        P                  R\        P                  R	\        P                  R
\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /
R7      VV3R l4       pV# )r   Tr   Funreachabler   r   r   r   r   mir   maskjmpohexefefr9   c           	      \  < \         P                  ! V4      ^8,          pV \         P                  ! R4      ,          pV\         P                  ! R4      ,          pV \         P                  ! R4      ,          pV\         P                  ! R4      ,          p^ p	V^8  d<   \        W)4      p
V	^,          p	V^,          pW,          pS! WVWx4      w  rVrxWZ,          pKB  \         P                  ! ^ 4      pV	^,          p\         P                  ! ^4      pV^8  dZ   ^0p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,^,           4      4      V,          ,          pV^8  dZ   ^(p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,^,           4      4      V,          ,          pV^8  dZ   ^ p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,^,           4      4      V,          ,          pV^8  d   V\         P                  ! R4      ,          p\	        ^4       Fc  pV^,          p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,V,           4      4      V,          ,          pKe  	  V^8  dZ   ^p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,^,           4      4      V,          ,          pV^8  dZ   ^p\         P                  ! W,          4      ( pW,          \         P                  ! \        W,^,           4      4      V,          ,          pV^8  d7   V( pW,          \         P                  ! \        W,^ ,           4      4      ,          pWK,          pW,          pS! WVWx4      w  rVrxWT,          pW},          pS! WVWx4      w  rVrxS! WVWx4      w  rVrxS'       d   S! WVWx4      w  rVrxWV,          Wx,          ,          pV# )8   l   ue`5{ l   mo\I{# l   ar\c l   ser+# l        )r
   rz   r   r   rd   )r   r   srcsrc_szr   r   r   r   r   rh   r   r   boffsetr   r   r   rg   _EXTRA_ROUND_ROUNDERs   &&&&             r   _siphash_gen_siphash.<locals>._siphash;  sE    V$*Aell#566Bell#566Bell#566Bell#566BCQ;"3,q!!)""!9 S!AAgG||D)H{X_55X%,,yk/J"K%(#) *{X_55X%,,yk/J"K%(#) *{X_55X%,,yk/J"K%(#) *{U\\"455qAa%C!LL99Dell9SA+3N&O),'- .A "
 {X_55X%,,yk/J"K%(#) *{X_55X%,,yk/J"K%(#) *{!{X%,,yk/J"KLFAGB%bb5NBBGBNB%bb5NBB%bb5NBB!)""!9RW%AHr   )r   r   r   r
   rz   )algr  r  r  s   & @@r   _gen_siphashr  1  s    +$HLK$H L#m#1	$"&"&"&"%u||"&"%u||"(%,,"'",ell	"< 	
=C		
=C	J r   z'Unsupported hashing algorithm in use %sc                   a \        V\        P                  4      '       g   \        P                  ! R4      h\
        VP                  ,          P                  o\        P                  pV! V4      pV3R lpW43# )z&Emit code to load the hashsecret.
    zrequires literal stringc                    < VP                   p VP                  S4      pVP                  V4      pV#   \         d1    \        P                  ! T\        P
                  ! ^@4      SR7      p LMi ; i)r}   r   )module
get_globalKeyErrorr   GlobalVariableIntTypeload)rJ   rK   rR   rM   modgvrD   syms   &&&&   r   r   %_inject_hashsecret_read.<locals>.impl  sd    nn	B$B LL	  	B""3

2SAB	Bs   3 8A.-A.)	
isinstancer
   StringLiteralr	   TypingError_hashsecretliteral_valuer   rz   )rQ   r   restyrR   r   r  s   &&   @r   _inject_hashsecret_readr    sa     dE//00  !:;;
d((
)
0
0CLLE
+C	 9r   c                 0    \         V ,          P                  # r   )r  rZ   r	  s   &r   _load_hashsecretr    s    t"""r   c                     R  pV# )c                     \        V 4      # r   )r  r	  s   &r   imp"_impl_load_hashsecret.<locals>.imp  s    &t,,r   r   )r   r  s   & r   _impl_load_hashsecretr!    s    -Jr   _hashc                    V^ 8X  d   \        ^ 4      # V\        8  dm   \        R4      p\        V4       F7  pV^,          V,           \        P
                  ! \        W4      4      ,           pK9  	  W!,          pV\        R4      ,          pMR\        \        P                  ! \        R4      4      \        P                  ! \        R4      4      W4      p\        V4      p\        V4      # )r<   i  r   r   r   )r1   _Py_HASH_CUTOFFr   rd   r=   uint8r   r  
_siphasherr
   rz   )r/   _lenr"  rh   tmps   &&   r   _Py_HashBytesr)    s    	a   D!;CqjE)RXXi6I-JJE  	!"233&6|&DE&6|&DE$ s#%  r   c                     a ^ RI Ho V3R lpV# )r<   )_kind_to_byte_widthc                    < S! V P                   4      p\        V 4      pV P                  pVR8w  d   V# \        V P                  W,          4      # )r*   r+   )_kindr   r"  r)  _data)r/   	kindwidthr'  current_hashr+  s   &   r   r   unicode_hash.<locals>.impl  sG    '		2	3xyy2 !I,<==r   )numba.cpython.unicoder+  )r/   r   r+  s   & @r   unicode_hashr3    s    9
> Kr   )r   r   r   )r__doc__rB   numpyr=   rw   r   warningscollectionsr   llvmlite.bindingbindingr   llvmliter   numbar   numba.core.extendingr   r   r   r   
numba.corer	   r
   numba.core.unsafe.bytesr   r   numba.cpython.randomimplr   r   r   r   	hash_infowidthrW   r%   r-   r   infr@   nan_PyHASH_NANmodulusr7   intpr   r8   _PyHASH_MULTIPLIERr   int_infobits_per_digitr`   cutoffr$  	algorithm_Py_hashfunc_namer   r    r   r(   r1   doubleintcrE   rS   rA   int32ri   IntegerBooleanr{   Floatr   Complexr   r   r   r   rz   r   r   	BaseTupler   r   r   r   r   r   r   r   r   r   r   r   r   r   r  msgwarnr   r   r   r   r  
_siphash13
_siphash24r&  
ValueErrorr  r  r!  r)  UnicodeTyper3  r   r   r   <module>r[     s     
   "    < <   <5 5
 mm!!UGk12
eX34 mmmmcmm334ZZ((B.rB !++--&&MM++ 	 
+  
$    #{{u||uzz %**+[(%**6 7+7+\    > #{+[(%++)5;;9 ::: 
+
+& , ,&X j) *" 
+ ,( 1q #$89#$89#$78c5<<01C 2C $J/#J/#I.c5<<01C 2C
 %fk-{-{- .	.& *- .( ) i i I u  2Xw4GH 6  ! 99
 E!' 	c^ c5<<!5<<3 4N4N c5<<!5<<!5<<!5<<!5<<!5<<3 44 dELL"ELL"ELL"ELL4 5	5
 dELL"ELL"ELL"ELL4 5	5
Yv k*Jk*J0K?ZJ 46G
GC
S/  0# 

  ';/0! 1!0 ""J/ 0r   