ÿØÿà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Áß_ÿÙ aNc@sdZddlmZddlZddlZddlmZddlmZddlm Z ddl Z e a dgZ defd YZdefd YZdS( s Middleware that displays everything that is printed inline in application pages. Anything printed during the request will get captured and included on the page. It will usually be included as a floating element in the top right hand corner of the page. If you want to override this you can include a tag in your template where it will be placed::


You might want to include ``style="white-space: normal"``, as all the
whitespace will be quoted, and this allows the text to wrap if
necessary.

i(tStringION(t
threadedprint(twsgilib(tresponsetPrintDebugMiddlewaretTeeFilecBseZdZdZRS(cCs
||_dS(N(tfiles(tselfR((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyt__init__"scCsCt|trt|}nx|jD]}|j|q(WdS(N(t
isinstancetunicodetstrRtwrite(Rtvtfile((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyR%s(t__name__t
__module__RR(((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyR s	cBsleZdZdZdeeedZdZe	j
de	jZe	j
de	je	j
ZdZRS(sL
    This middleware captures all the printed statements, and inlines
    them in HTML pages, so that you can see all the (debug-intended)
    print statements in the page itself.

    There are two keys added to the environment to control this:
    ``environ['paste.printdebug_listeners']`` is a list of functions
    that will be called everytime something is printed.

    ``environ['paste.remove_printdebug']`` is a function that, if
    called, will disable printing of output for that request.

    If you have ``replace_stdout=True`` then stdout is replaced, not
    captured.
    s
Log messages
%s
cCs_||_||_t|tr@ddlm}||}n||_||_d|_ dS(Ni(tasbool( tapptforce_content_typeR t basestringtpaste.deploy.convertersRtprint_wsgi_errorstreplace_stdouttNonet_threaded_print_stdout(RRt global_confRRRR((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyRDs    c s|jdr|j||St s8|jtjk ratatjd|j tj|_ngfd}||d]*>s']*id="paste-debug-prints".*?>cCs|s |Stj|}|jdd}|jdd}|jj|}|sw|j|}|jj|}n|s||S||j |||jSdS(Ns s
s s  (tcgitescapetreplacet _explicit_retsearcht log_templatet_body_retend(Rthtmltlogttexttmatch((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyR+s N(RRt__doc__R<RtFalseR#RR6tretcompiletIR=tSR:R+(((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyR,s 2 (RCt cStringIORRER7t paste.utilRtpasteRRR!RDR t__all__tobjectRR(((sC/opt/alt/python27/lib/python2.7/site-packages/paste/debug/prints.pyts