<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    Y-
                 @   s  d Z ddlmZ ddlZddlZddlZddlZy
ejZW n ek
rR   e	ZY nX G dd dej
Zdd Zdd	 Zd
d ZedZdddZedZd ddZG dd dejZG dd dejZG dd dejZG dd deejZG dd deejZdd Zee dS )!z
raven.utils.json
~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_importNc                   sD   e Zd Zejdd ejdd eeeee	dd iZ
 fddZ  ZS )BetterJSONEncoderc             C   s   | j S )N)hex)o r   A/opt/alt/python37/lib/python3.7/site-packages/raven/utils/json.py<lambda>       zBetterJSONEncoder.<lambda>c             C   s
   |  dS )Nz%Y-%m-%dT%H:%M:%SZ)strftime)r   r   r   r   r      r	   c             C   s   | j dddS )Nzutf-8replace)errors)decode)r   r   r   r   r      r	   c                sZ   y| j t| }W n> tk
rP   ytt| |S  tk
rJ   t|S X Y nX ||S )N)ENCODER_BY_TYPEtypeKeyErrorsuperr   default	TypeErrorrepr)selfobjencoder)	__class__r   r   r      s    zBetterJSONEncoder.default)__name__
__module____qualname__uuidUUIDdatetimesetlist	frozensetbytesr   r   __classcell__r   r   )r   r   r      s   

r   c             C   s   | S )Nr   )datar   r   r   better_decoder*   s    r%   c             K   sJ   yt j| fdti|S  tk
rD   d|d< t j| fdti|S X d S )Nclsz
safe-utf-8encoding)jsondumpsr   	Exception)valuekwargsr   r   r   r)   .   s
    r)   c             K   s   t j| tdS )N)object_hook)r(   loadsr%   )r+   r,   r   r   r   r.   6   s    r.   zutf-8backslashreplacec             C   s
   t | |S )N)_utf8_encoder)inputr   r   r   r   safe_encode=   s    r2   r   c             C   s
   t | |S )N)_utf8_decoder)r1   r   r   r   r   safe_decodeD   s    r4   c               @   s    e Zd ZdddZd	ddZdS )
Codecr/   c             C   s
   t ||S )N)r2   )r   r1   r   r   r   r   encodeJ   s    zCodec.encoder   c             C   s
   t ||S )N)r4   )r   r1   r   r   r   r   r   M   s    zCodec.decodeN)r/   )r   )r   r   r   r6   r   r   r   r   r   r5   H   s   
r5   c               @   s   e Zd ZdddZdS )IncrementalEncoderFc             C   s   t || jd S )Nr   )r2   r   )r   r1   finalr   r   r   r6   R   s    zIncrementalEncoder.encodeN)F)r   r   r   r6   r   r   r   r   r7   Q   s   r7   c               @   s   e Zd ZdddZdS )IncrementalDecoderFc             C   s   t || jd S )Nr   )r4   r   )r   r1   r8   r   r   r   r   W   s    zIncrementalDecoder.decodeN)F)r   r   r   r   r   r   r   r   r9   V   s   r9   c               @   s   e Zd ZdS )StreamWriterN)r   r   r   r   r   r   r   r:   [   s   r:   c               @   s   e Zd ZdS )StreamReaderN)r   r   r   r   r   r   r   r;   _   s   r;   c          	   C   s$   | dkrd S t jdttttttdS )Nz
safe-utf-8)namer6   r   incrementalencoderincrementaldecoderstreamreaderstreamwriter)codecs	CodecInfor2   r4   r7   r9   r;   r:   )r<   r   r   r   getregentryc   s    rC   )r/   )r   )__doc__
__future__r   rA   r   r   r(   JSONDecodeErrorAttributeError
ValueErrorJSONEncoderr   r%   r)   r.   
getencoderr0   r2   
getdecoderr3   r4   r5   r7   r9   r:   r;   rC   registerr   r   r   r   <module>   s0   





	