
    g:                     2   d Z ddlZddlZddlZddlmZ d Zd Zej                  dk(  rO	 ddl	Z	ddl
mZmZmZmZ e	j                  j                   j"                  Zeeege_        ee_        d Z ee       eZd	 Zd
 Zd Z G d de      Zy# e$ r Y w xY w)z"Compiler helpers for the debugger.    N)CachingCompilerc                    d}t         j                  | d      D cg c]  }t        |       } }t        |       }||z  }|dz  }t	        d|d      D ]}  }t        | |         dz  t        | |dz            dz  dz  z  t        | |d	z            dz  d
z  z  t        | |dz            dz  z  }||z  dz  }||dz	  z  }||z  dz  }||z  dz  }||z  } |dz  }	d}|	dk(  rt        | |d	z            dz  d
z  }|	dv r|t        | |dz            dz  dz  z  }|	dv r!|t        | |         dz  z  }||z  }||z  dz  }||dz	  z  }||z  dz  }||dz	  z  }|S c c}w )zGet the murmur2 hash.i[utf8l    r                           l    )r
   r   )r   r
   r         )strencodechrlenrangeord)
dataseedmdlengthhrounded_endikvals
             2lib/python3.12/site-packages/ipykernel/compiler.pymurmur2_x86r!   	   s   AJJtV454qCF4D5YFvA:%K1k1%a\D DQK 4'A-/DQK 4'B.0 4A;2%' 	
 Uj 	Q"WUj Uj 	Q & 4-C	A
axkAo&'$.25
f}	c${Q'(4/A55
i	Sk"#d**	QUj bLA	
Q*AbLAHC 6s   Ec                     | S )N )filenames    r    <lambda>r%   0   s    H    win32)DWORDLPCWSTRLPWSTRMAX_PATHc                     t        j                  t              }t        | |t              }|dk7  r|t        k  r|j                  } | S )Nr   )ctypescreate_unicode_bufferr+   _GetLongPathNamevalue)r$   bufrvs      r    _convert_to_long_pathnamer3   ;   s;    ..x8C!(C:BQw2>99Or&   c                      t        t        j                               } t        j                         }| t        j
                  z   dz   t        |      z   S )zGet a temp directory.
ipykernel_)convert_to_long_pathnametempfile
gettempdirosgetpidsepr   )tmp_dirpids     r    get_tmp_directoryr>   J   s=    &x':':'<=G
))+CRVVl*SX55r&   c                       y)zGet a temp hash seed.l   i r#   r#   r&   r    get_tmp_hash_seedr@   Q   s    r&   c                     t         j                  j                  d      }|>t        | t	                     }t               t         j                  z   t        |      z   dz   }|S )zGet a file name.IPYKERNEL_CELL_NAMEz.py)r9   environgetr!   r@   r>   r;   r   )code	cell_namenames      r    get_file_namerH   V   sP    

45I4!2!45%'"&&03t9<uD	r&   c                   (     e Zd ZdZ fdZd Z xZS )XCachingCompilerzA custom caching compiler.c                 2    t        |   |i | d| _        y)zInitialize the compiler.N)super__init__log)selfargskwargs	__class__s      r    rM   zXCachingCompiler.__init__b   s    $)&)r&   c                     t        |      S )zGet the code name.)rH   )rO   raw_coderE   numbers       r    get_code_namezXCachingCompiler.get_code_nameg   s    X&&r&   )__name__
__module____qualname____doc__rM   rV   __classcell__)rR   s   @r    rJ   rJ   _   s    $
'r&   rJ   )rZ   r9   sysr7   IPython.core.compileropr   r!   r6   platformr-   ctypes.wintypesr(   r)   r*   r+   windllkernel32GetLongPathNameWr/   argtypesrestyper3   __file__	Exceptionr>   r@   rH   rJ   r#   r&   r    <module>rg      s    ( 	 
  3$N 5 <<7=DD!==11BB%,fe$<!#( 	 	"(+ $= 6

' 
'7  s   AB BB