ÿØÿà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@@sdZddlmZddlZddlZddlZddlmZddlm Z m Z ddl m Z dejdeddZdS(s raven.utils.http ~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_importN(tdefaults(turllib2thttplib(tmatch_hostnamec @sdtjffdYdtjffdY}|rS|g}n9ytjdtjg}Wntk rg}nXtj|}tj dkrt j } t j |z|j ||SWdt j | Xn|j |||S( NtValidHTTPSConnectionc@s,eZejZdZfdZRS(c_@stjj|||dS(N(RtHTTPConnectiont__init__(tselftargstkwargs((sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyRsc@stjd|j|jfd|j}|jrF||_|jntj |ddtj |_dk rt |jj |jp|jndS(Ntaddressttimeouttca_certst cert_reqs(tsockettcreate_connectionthosttportR t _tunnel_hosttsockt_tunneltsslt wrap_sockett CERT_REQUIREDtNoneRt getpeercerttassert_hostname(RR(RR (sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pytconnects      (t__name__t __module__Rt HTTPS_PORTt default_portRR((RR (sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyRs  tValidHTTPSHandlerc@seZfdZRS(c@s|j|S(N(tdo_open(Rtreq(R(sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyt https_open-s(RRR$((R(sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyR!,stcontextii(ii(RRRt HTTPSHandlerRt_create_unverified_contexttAttributeErrort build_openertsyst version_infoRtgetdefaulttimeouttsetdefaulttimeouttopen( turltdataR R t verify_sslRR!thandlerstopenertdefault_timeout((RRR sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyturlopens""      (t__doc__t __future__RRRR*t raven.confRtraven.utils.compatRRtraven.utils.ssl_match_hostnameRRtTIMEOUTtFalseR5(((sA/opt/alt/python27/lib/python2.7/site-packages/raven/utils/http.pyts