ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Yc@@sdZddlmZddlmZddlmZddlmZyBddl m Z m Z m Z m Z mZddlmZeZWnek reZnXdeefd YZd S( s raven.transport.twisted ~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_import(tBytesIO(tAsyncTransport(t HTTPTransport(tAgenttFileBodyProducertHTTPConnectionPooltResponseNeverReceivedtreadBody(tHeaderstTwistedHTTPTransportcB@s&eZddgZdZdZRS(s twisted+https twisted+httpscO@s]tstdntt|j||ddlm}t|dt||_ dS(Ns*TwistedHTTPTransport requires twisted.web.i(treactortpool( t has_twistedt ImportErrortsuperR t__init__ttwisted.internetR RRt_agent(tselftargstkwargsR ((sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyRs c @s|jjd|dtt|dttd|jD}fd}fd}|j|j|dS(NtPOSTt bodyProducertheaderscs@s$|]\}}||gfVqdS(N((t.0tktv((sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pys -sc@sO|jt}|r>g|jjD]}|j^q%n |jdS(N(tcheckRtvaluetreasons(tfailuretextf(t failure_cb(sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyt on_failure0s)c@sBjdkrn%fd}tj|SdS(s Success only means that the request succeeded, *not* that the actual submission was successful. ic@s tjj|dS(N(t Exceptiontcodetphrase(tbody(R"tresponse(sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyt on_error_body@sN(R%Rt addCallback(R(R)(R"t success_cb(R(sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyt on_success8s   ( RtrequestRRR tdicttitemsR*t addErrback( RturltdataRR+R"tdR#R,((R"R+sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyt async_send)s  % (t__name__t __module__tschemeRR4(((sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyR s  N(t__doc__t __future__Rtraven.utils.compatRtraven.transport.baseRtraven.transport.httpRttwisted.web.clientRRRRRttwisted.web.http_headersR tTrueR RtFalseR (((sH/opt/alt/python27/lib/python2.7/site-packages/raven/transport/twisted.pyts(