ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
Yc           @@  s   d  Z  d d l m Z d d l Z d d l m Z m Z d d l m Z d e	 f d     YZ
 d e
 f d	     YZ d
 e
 f d     YZ d e
 f d     YZ d S(   s   
raven.core.processors
~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_importN(   t   string_typest	   text_type(   t   varmapt	   Processorc           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s   | |  _  d  S(   N(   t   client(   t   selfR   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   __init__   s    c         K@  s   d  S(   N(    (   R   t   datat   kwargs(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   get_data   s    c         K@  s   |  j  | |  } | r! | } n  d | k r d | d k r xA | d j d g   D]& } d | k rT |  j | d  qT qT Wq n  d | k r |  j | d  n  d | k r |  j | d  | d <n  | S(   Nt	   exceptiont   valuest
   stacktracet   requestt   extra(   R
   t   gett   filter_stacktracet   filter_httpt   filter_extra(   R   R   R	   t   respt   value(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   process   s    	c         C@  s   d  S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   *   s    c         C@  s   d  S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   -   s    c         C@  s   | S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   0   s    (   t   __name__t
   __module__R   R
   R   R   R   R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR      s   					t   RemovePostDataProcessorc           B@  s   e  Z d  Z d   Z RS(   s   Removes HTTP post data.c         K@  s   | j  d d   d  S(   NR   (   t   popt   None(   R   R   R	   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   7   s    (   R   R   t   __doc__R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   4   s   t   RemoveStackLocalsProcessorc           B@  s   e  Z d  Z d   Z RS(   s1   Removes local context variables from stacktraces.c         K@  s1   x* | j  d g   D] } | j d d   q Wd  S(   Nt   framest   vars(   R   R   R   (   R   R   R	   t   frame(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   >   s    (   R   R   R   R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   ;   s   t   SanitizePasswordsProcessorc        	   B@  st   e  Z d  Z d Z e d d d d d d d	 d
 g  Z e j d  Z d   Z	 d   Z
 d   Z d   Z d   Z RS(   s   
    Asterisk out things that look like passwords, credit card numbers,
    and API keys in frames, http, and basic extra data.
    t   *i   t   passwordt   secrett   passwdt   authorizationt   api_keyt   apikeyt
   sentry_dsnt   access_tokens   ^(?:\d[ -]*?){13,16}$c         C@  s   | d  k r d  St | t  r8 |  j j |  r8 |  j S| sB | St | t  rf | j d d  } n t |  } | j	   } x$ |  j
 D] } | | k r |  j Sq W| S(   Ns   utf-8t   replace(   R   t
   isinstanceR   t	   VALUES_REt   matcht   MASKt   bytest   decodeR   t   lowert   FIELDS(   R   t   keyR   t   field(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   sanitizeV   s    !c         C@  sM   xF | j  d g   D]2 } d | k r+ q n  t |  j | d  | d <q Wd  S(   NR   R   (   R   R   R6   (   R   R   R    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   n   s    c         C@  s   x d
 D] } | | k r q n  t  | | t  rz d | | k rz | d k rW d } n d } |  j | | |  | | <q t |  j | |  | | <| d k r d	 | | k r |  j | | d	 d  | | d	 <q q Wd  S(   NR   t   cookiest   headerst   envt   query_stringt   =t   ;t   &t   Cookie(   R   R7   R8   R9   R:   (   R,   R   t   _sanitize_keyvalsR   R6   (   R   R   t   nt	   delimiter(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   t   s    #	c         C@  s   t  |  j |  S(   N(   R   R6   (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR      s    c         C@  s   g  } xh | j  |  D]W } | j  d  } t |  d k r` | j | d |  j |   f  q | j |  q W| j d   | D  S(   NR;   i   i    c         s@  s   |  ] } d  j  |  Vq d S(   R;   N(   t   join(   t   .0t   keyval(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pys	   <genexpr>   s    (   t   splitt   lent   appendR6   RB   (   R   t   keyvalsRA   t   sanitized_keyvalsRD   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR?      s    #s   ********(   R   R   R   R/   t	   frozensetR3   t   ret   compileR-   R6   R   R   R   R?   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR!   C   s"   				(   R   t
   __future__R    RK   t   raven.utils.compatR   R   t   raven.utilsR   t   objectR   R   R   R!   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   <module>   s   $