ÿØÿà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Áß_ÿÙ \[c@sddgZyddlmZWn#ek rEZddlmZnXddlmZddlmZddl m Z ddl m Z m Z mZmZmZddlmZmZmZmZmZmZmZdd lmZd Zdefd YZdeefd YZd S(tLXMLTreeBuilderForXMLtLXMLTreeBuilderi(tCallable(tBytesIO(tStringIO(tetree(tCommenttDoctypetNamespacedAttributetProcessingInstructiontXMLProcessingInstruction(tFASTtHTMLtHTMLTreeBuildert PERMISSIVEtParserRejectedMarkupt TreeBuildertXML(tEncodingDetectortlxmlcBseZejZeZeZdZ dgZ e e e e egZdZidd6ZdZdZdddZdZddddZd Zd Zid Zd Zd ZdZdZdZdZ dZ!RS(slxml-xmltxmlis$http://www.w3.org/XML/1998/namespacec Cs8|jdk r|jStjd|dtdtd|S(Nttargett strip_cdatatrecovertencoding(t_default_parsertNoneRt XMLParsertFalsetTrue(tselfR((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytdefault_parser5s cCs@|j|}t|tr<|d|dtd|}n|S(NRRR(Rt isinstanceRR(RRtparser((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt parser_for=scCsC||_|dk r't||_nd|_|jg|_dS(N(RRtsettempty_element_tagstsouptDEFAULT_NSMAPStnsmaps(RR!R$((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt__init__Fs    cCs8|ddkr*t|djddSd|fSdS(Nit{it}(ttupletsplitR(Rttag((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt _getNsTagPsc cs|j }|rt|_n t|_t|trH|d|tfVnt|trt|jdd|tfVn||g}t ||||}x%|j D]}|j ||tfVqWdS(s :yield: A series of 4-tuples. (markup, encoding, declared encoding, has undergone character replacement) Each 4-tuple represents a strategy for parsing the document. tutf8N( tis_xmlR tprocessing_instruction_classR R tunicodeRRtencodeRt encodingstmarkup( RR5tuser_specified_encodingtexclude_encodingstdocument_declared_encodingtis_htmlt try_encodingstdetectorR((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytprepare_markupXs    cCst|trt|}nt|tr<t|}n|j|j}y|j|jj |_ |j j |xMt |dkr|j|j}t |dkr||j j |q|q|W|j j Wn1tttjfk r }tt|nXdS(Ni(R tbytesRR2Rtreadt CHUNK_SIZER"R%toriginal_encodingR!tfeedtlentclosetUnicodeDecodeErrort LookupErrorRt ParserErrorRtstr(RR5tdatate((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRA}scCs|jg|_dS(N(R&R'(R((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRCsc Cst|}d}t|dkrLt|jdkrL|jjdnt|dkrtd|jD}|jj||j}x9|jD](\}}td|d}|||stxmlnsshttp://www.w3.org/2000/xmlns/( tdictRRBR'tappendtitemstcopyRR.t_prefix_for_namespaceR%thandle_starttag( Rtnametattrstnsmaptnsprefixtinverted_nsmaptprefixt namespacet attributet new_attrstattrRL((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytstarts0 '   cCsN|dkrdSx7t|jD]&}|dk r ||kr ||Sq WdS(s9Find the currently active prefix for the given namespace.N(RtreversedR'(RRZRX((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRRs   cCs|jj|jjd}|j|\}}d}|dk rx@t|jD],}|dk rT||krT||}PqTqTWn|jj||t|jdkr|jj ndS(Nii( R%tendDatattagStackR.RR_R't handle_endtagRBtpop(RRTt completed_tagRZRWRX((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytends    cCs<|jj|jj|d||jj|jdS(Nt (R%R`t handle_dataR1(RRRH((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytpis cCs|jj|dS(N(R%Rg(Rtcontent((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRHscCs6|jjtj|||}|jj|dS(N(R%R`Rtfor_name_and_idstobject_was_parsed(RRTtpubidtsystemtdoctype((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRns cCs1|jj|jj||jjtdS(s#Handle comments as Comment objects.N(R%R`RgR(RRi((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pytcomments cCsd|S(sSee `TreeBuilder`.u) %s((Rtfragment((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyttest_fragment_to_documentsN("t__name__t __module__RRtDEFAULT_PARSER_CLASSRR0R R1tNAMEtALTERNATE_NAMEStLXMLRR RtfeaturesR?R&RR"RR(R.R<RARCR^RRReRhRHRnRoRq(((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyR#s2       #   (     cBsTeZeZdgZeeeeegZe Z e Z dZ dZdZRS(s lxml-htmlcCstjS(N(Rt HTMLParser(RR((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRscCsw|jj}y3|j||_|jj||jjWn1tttj fk rr}t t |nXdS(N( R%R@R"R!RARCRDRERRFRRG(RR5RRI((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRAs cCsd|S(sSee `TreeBuilder`.u%s((RRp((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRqs(RrRsRwRuRvR R RRxRR0R R1RRARq(((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRs   N(t__all__tcollections.abcRt ImportErrorRIt collectionstioRRRRt bs4.elementRRRR R t bs4.builderR R R RRRRt bs4.dammitRRwRR(((s5/usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyts (4