ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<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ÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<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ÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<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ÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<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@@sLdZddlmZddlZddlZddlZejddkZejddkZere fZ e fZ e fZe ZeZn0efZ e efZ e ejfZeZe Zy eZWnek rdZnXeZy eZWnek rdZnXer#eZndefd YZerfd Zd Zd Zd Zn$dZdZdZdZerdZ dZ!ddl"Z"e"j#Z#e"j$Z$n+dZ dZ!ddl#Z#e#j#Z#Z$ere%e&ddZ'ddZ)ndddZ'e'dejd d%krQe'dn)ejd d&krqe'dn dZ*erddl+m,Z,ddl-m.Z/ddl0j1Z2dd l3m4Z4dd!l5m6Z7dd"l8m9Z:nTddl2m,Z,ddl/Z/ddl2Z2dd l4m4Z4dd!l8m6Z7ddl:Z:d#Z;d$Z<dS('s raven.utils.compat ~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2016 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. Utilities for writing code that runs on Python 2 and 3 i(tabsolute_importNiicC@s |jS(N(tnext(tit((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytadvance_iterator:scC@stdt|jDS(Ncs@s|]}d|jkVqdS(t__call__N(t__dict__(t.0tklass((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pys Cs(tanyttypet__mro__(tobj((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytcallableBstIteratorcB@seZdZRS(cC@st|j|S(N(R t__next__(tself((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyRJs(t__name__t __module__R(((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyR HscK@st|j|S(N(titertkeys(tdtkw((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytiterkeysOscK@st|j|S(N(Rtvalues(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt itervaluesRscK@st|j|S(N(Rtitems(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt iteritemsUscK@st|j|S(N(Rtlists(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt iterlistsXscK@s |j|S(N(R(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyR[scK@s |j|S(N(R(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyR^scK@s |j|S(N(R(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyRascK@s |j|S(N(R(RR((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyRdscC@s |jdS(Nslatin-1(tencode(ts((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytbiscC@s|S(N((R((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytulscC@s|S(N((R((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyRrscC@st|jdddS(Ns\\s\\\\tunicode_escape(tunicodetreplace(R((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyR vstbuiltinstexeccC@sWzC|dkr|}n|j|k r<|j|n|Wdd}d}XdS(N(tNonet __traceback__twith_traceback(ttptvaluettb((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytreraises   cB@sc|dkrBejd}|j}|dkr<|j}n~n|dkrW|}nddUdS(sExecute code in a namespace.isexec _code_ in _globs_, _locs_N(R&tsyst _getframet f_globalstf_locals(t_code_t_globs_t_locs_tframe((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytexec_s      sedef reraise(tp, value, tb=None): try: raise tp, value, tb finally: tb = None sdef raise_from(value, from_value): try: if from_value is None: raise value raise value from from_value finally: value = None srdef raise_from(value, from_value): try: raise value from from_value finally: value = None cC@s |dS(N((R*t from_value((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt raise_froms(t HTTPError(tclient(tQueue(tquote(tparsecC@sJt|dt|dd}|dkrFtdt|jn|S(Nt__code__t func_codesCould not get code from %r(tgetattrR&t TypeErrorR R(tfunctrv((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pytget_codes cC@syddlm}Wntk r(dSXd|kr9dSt|jddjd krdd lm}|td ndS( Ni(topttthreadssenable-threadst0tfalsetofftno(twarnsWe detected the use of uwsgi with disabled threads. This will cause issues with the transport you are trying to use. Please enable threading for uwsgi. (Enable the "enable-threads" flag).(RGRHRIRF( tuwsgiRDt ImportErrortstrtgettlowertwarningsRJtWarning(RDRJ((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt check_threadss  $(ii(ii(=t__doc__t __future__RtoperatorR-ttypest version_infotPY2tPY3RMt string_typestintt integer_typesR t class_typest text_typetbytest binary_typet basestringtlongt ClassTypeR"RRt NameErrorR tobjectR RRRRRR tiotStringIOtBytesIOR?t __import__R5R&R,R7t urllib.errorR8thttpR9thttplibturllib.requesttrequestturllib2tqueueR:t urllib.parseR;t urllib_quoteturllibR<turlparseRCRR(((sC/opt/alt/python27/lib/python2.7/site-packages/raven/utils/compat.pyt s