£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    Y                 @   sx   d Z ddlmZ ddlZddlmZmZ ddlmZ G dd de	Z
G dd	 d	e
ZG d
d de
ZG dd de
ZdS )z
raven.core.processors
~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_importN)string_types	text_type)varmapc               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )	Processorc             C   s
   || _ d S )N)client)selfr    r	   A/opt/alt/python37/lib/python3.7/site-packages/raven/processors.py__init__   s    zProcessor.__init__c             K   s   d S )Nr	   )r   datakwargsr	   r	   r
   get_data   s    zProcessor.get_datac             K   s   | j |f|}|r|}d|krZd|d krZx.|d dg D ]}d|kr<| |d  q<W d|krp| |d  d|kr| |d |d< |S )N	exceptionvaluesZ
stacktraceZrequestextra)r   getfilter_stacktracefilter_httpfilter_extra)r   r   r   Zrespvaluer	   r	   r
   process   s    zProcessor.processc             C   s   d S )Nr	   )r   r   r	   r	   r
   r   *   s    zProcessor.filter_stacktracec             C   s   d S )Nr	   )r   r   r	   r	   r
   r   -   s    zProcessor.filter_httpc             C   s   |S )Nr	   )r   r   r	   r	   r
   r   0   s    zProcessor.filter_extraN)	__name__
__module____qualname__r   r   r   r   r   r   r	   r	   r	   r
   r      s   r   c               @   s   e Zd ZdZdd ZdS )RemovePostDataProcessorzRemoves HTTP post data.c             K   s   | dd  d S )Nr   )pop)r   r   r   r	   r	   r
   r   7   s    z#RemovePostDataProcessor.filter_httpN)r   r   r   __doc__r   r	   r	   r	   r
   r   4   s   r   c               @   s   e Zd ZdZdd ZdS )RemoveStackLocalsProcessorz1Removes local context variables from stacktraces.c             K   s&   x | dg D ]}|dd  qW d S )Nframesvars)r   r   )r   r   r   framer	   r	   r
   r   >   s    z,RemoveStackLocalsProcessor.filter_stacktraceN)r   r   r   r   r   r	   r	   r	   r
   r   ;   s   r   c            	   @   s^   e Zd ZdZdZeddddddd	d
gZedZ	dd Z
dd Zdd Zdd Zdd ZdS )SanitizePasswordsProcessorz
    Asterisk out things that look like passwords, credit card numbers,
    and API keys in frames, http, and basic extra data.
    z********passwordZsecretpasswdZauthorizationZapi_keyZapikeyZ
sentry_dsnZaccess_tokenz^(?:\d[ -]*?){13,16}$c             C   sz   |d krd S t |tr(| j|r(| jS |s0|S t |trH|dd}nt|}| }x| j	D ]}||kr`| jS q`W |S )Nzutf-8replace)

isinstancer   	VALUES_REmatchMASKbytesdecoder   lowerFIELDS)r   keyr   fieldr	   r	   r
   sanitizeV   s    

z#SanitizePasswordsProcessor.sanitizec             C   s8   x2| dg D ]"}d|krqt| j|d |d< qW d S )Nr   r    )r   r   r0   )r   r   r!   r	   r	   r
   r   n   s    z,SanitizePasswordsProcessor.filter_stacktracec             C   s   xdD ]}||krqt || trVd|| krV|dkr<d}nd}| || |||< qt| j|| ||< |dkrd|| kr| || d d|| d< qW d S )N)r   cookiesheadersenvZquery_string=r1   ;&r2   Cookie)r&   r   _sanitize_keyvalsr   r0   )r   r   n	delimiterr	   r	   r
   r   t   s    
z&SanitizePasswordsProcessor.filter_httpc             C   s   t | j|S )N)r   r0   )r   r   r	   r	   r
   r      s    z'SanitizePasswordsProcessor.filter_extrac             C   sf   g }xL| |D ]>}| d}t|dkrD||d | j| f q|| qW |dd |D S )Nr4      r   c             s   s   | ]}d  |V  qdS )r4   N)join).0keyvalr	   r	   r
   	<genexpr>   s    z?SanitizePasswordsProcessor._sanitize_keyvals.<locals>.<genexpr>)splitlenappendr0   r<   )r   Zkeyvalsr:   Zsanitized_keyvalsr>   r	   r	   r
   r8      s    
z,SanitizePasswordsProcessor._sanitize_keyvalsN)r   r   r   r   r)   	frozensetr-   recompiler'   r0   r   r   r   r8   r	   r	   r	   r
   r"   C   s"   
r"   )r   
__future__r   rD   Zraven.utils.compatr   r   Zraven.utilsr   objectr   r   r   r"   r	   r	   r	   r
   <module>   s   $