ÿØÿà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Áß_ÿÙ bNc@sddlZddlZddlZddlZdddddgZdZddZejd Z ej d Z dd Z d Z d ZejdZejdZdZejZejZedkrddlZejndS(iNt html_quotet html_unquotet url_quotet url_unquotet strip_htmlsUTF-8cCs|p t}|dkrdSt|tr;tj|dSt|trctj|j|dStjt|j|dSdS(s Quote the value (turned to a string) as HTML. This quotes <, >, and quotes: >>> html_quote(1) '1' >>> html_quote(None) '' >>> html_quote('') '<hey!>' >>> html_quote(u'\u1029') '\xe1\x80\xa9' tiN(tdefault_encodingtNonet isinstancetstrtcgitescapetunicodetencode(tvtencoding((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyRs  s &([a-zA-Z]+);cCs9|j|jd}|r(t|S|jdSdS(Nii(tgettgrouptunichr(tmatchtname2ctcode((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyt_entity_subber's cCsGt|tr7|dkrdS|j|p.t}ntjt|S(s Decode the value. >>> html_unquote('<hey you>') u'' >>> html_unquote('') u'' >>> html_unquote('&blahblah;') u'&blahblah;' >>> html_unquote('\xe1\x80\xa9') u'\u1029' Ru(RR tdecodeRt _unquote_retsubR(tsR((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyR.s  cCs%tjdd|}t|}|S(Ns<.*?>R(treRR(R((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyRCs cCs|S(s* Quoting that doesn't do anything ((R((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pytno_quoteIss\-\s*\>s [- - -]cCs"t|}tjd|}|S(s; Quote that makes sure text can't escape a comment s->(R t_comment_quote_reR(Rtcomment((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyt comment_quoteRs t__main__(R thtmlentitydefsturllibRt__all__RRRtcompileRtname2codepointRRRRRt _bad_chars_reRtquoteRtunquoteRt__name__tdoctestttestmod(((sC/opt/alt/python27/lib/python2.7/site-packages/paste/util/quoting.pyts(