ÿØÿà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Áß_ÿÙ abc@`sddlmZmZmZddlmZddlZddlmZddlm Z ddlm Z dd l m Z dd l m Z ejd Zed Ze eZdS( i(tabsolute_importtdivisiontunicode_literals(t text_typeNi(tbasei(t _ihatexml(t constants(t namespaces(tmoduleFactoryFactoryu {([^}]*)}(.*)c `sjdjdtjffdYdffdYdffdYdffd Yd ffd Yfd fd }dtjf fdY}tS(NuasdtElementc`seZdfdZdZdZdZeeeZdZ dZ ee e Z dZ dZ ee e ZdZd ZeeeZd Zd Zd Zd ZddZdZdZRS(c`s||_||_j|j|||_|dkrUtd|jf|_n|j|jf|_d|_g|_ g|_ dS(Nuhtml( t_namet _namespaceR t _getETreeTagt_elementtNoneRt nameTupletparentt _childNodest_flags(tselftnamet namespace(t ElementTree(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt__init__s     cS`s)|dkr|}nd||f}|S(Nu{%s}%s(R(RRRt etree_tag((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR #s  cS`s+||_|j|j|j|j_dS(N(R R R R ttag(RR((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_setName*s cS`s|jS(N(R (R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_getName.scS`s+||_|j|j|j|j_dS(N(R R R R R(RR((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _setNamespace3s cS`s|jS(N(R (R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _getNamespace7scS`s |jjS(N(R tattrib(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_getAttributes<scS`sx-t|jjjD]}|jj|=qWx]|jD]O\}}t|trsd|d|df}n|}|jj||q=WdS(Nu{%s}%sii(tlistR Rtkeystitemst isinstancettupletset(Rt attributestkeytvalueR((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_setAttributes?scS`s|jS(N(R(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_getChildNodesMscS`s2|j2g|_x|D]}|j|qWdS(N(R Rt insertChild(RR(telement((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_setChildNodesPs  cS`st|jjpt|jS(u,Return true if the node has children or text(tboolR ttexttlen(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt hasContentXscS`s0|jj||jj|j||_dS(N(RtappendR R(Rtnode((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt appendChild\scS`s>t|jj|j}|jj||j||_dS(N(R R tindextinsertR(RR3trefNodeR5((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt insertBeforeascS`s0|jj||jj|jd|_dS(N(RtremoveR RR(RR3((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt removeChildfscS`s-t|js?|jjs*d|j_n|jj|7_n|dkr|jdjsnd|jd_n|jdj|7_nt|j}|j|j}|dkr|j|djsd|j|d_n|j|dj|7_n-|jjsd|j_n|jj|7_dS(Nuiii(R0R R/RttailR R5(RtdataR8tchildrenR5((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt insertTextks"    cS`sLt||j|j}x*|jjD]\}}||j|R@RC((R(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR s*               tCommentc`s8eZfdZdZdZeeeZRS(c`s1j||_d|_g|_g|_dS(N(RHR RRRR(RR<(R(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRs  cS`s |jjS(N(R R/(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_getDatascS`s||j_dS(N(R R/(RR(((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt_setDatas(RERFRRIRJRGR<((R(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRHs  t DocumentTypec`sYeZfdZdZdZeeeZdZdZeeeZ RS(c`s2j|d||j_||_||_dS(Nu (RR R/tpublicIdtsystemId(RRRLRM(R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRs  cS`s|jjddS(NupublicIdu(R tget(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _getPublicIdscS`s&|dk r"|jjd|ndS(NupublicId(RR R%(RR(((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _setPublicIds cS`s|jjddS(NusystemIdu(R RN(R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _getSystemIdscS`s&|dk r"|jjd|ndS(NusystemId(RR R%(RR(((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt _setSystemIds ( RERFRRORPRGRLRQRRRM((R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRKs    tDocumentc`seZfdZRS(c`sj|ddS(Nu DOCUMENT_ROOT(R(R(R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRs(RERFR((R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRSstDocumentFragmentc`seZfdZRS(c`sj|ddS(NuDOCUMENT_FRAGMENT(R(R(R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRs(RERFR((R (sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRTsc`s8gdfd|ddjS(Nic `st|ds|j}n|jdkr|jdsK|jdr|jdp]d}|jdprd}jd|j||fq0jd|jfn|jdkrMjd |jdk rjd d |d |jfn|jdk rtd nt|dr0t |j r0tdq0n|jkr}jdd ||jfnt |jt st dt|j|jftj|j}|dkr|j}n/|j\}}tj|}d||f}jdd ||ft|drg}x|j jD]r\}} tj|}|dk r|j\}}tj|}d||f} n|} |j| | fqJWx?t|D].\}} jdd |d || fqWn|jr0jd d |d |jfn|d 7}x|D]} | |qAW|jrjd d |d |jfndS(Nutagu upublicIdusystemIduuu u DOCUMENT_ROOTu #documentu|%s"%s"u iuDocument node cannot have tailuattribu$Document node cannot have attributesu|%suExpected unicode, got %s, %su%s %su|%s<%s>u |%s%s="%s"(thasattrtgetrootRRNR2R/RR;t TypeErrorR0RR#RtAssertionErrorR?t tag_regexptmatchtgroupsRtprefixesR"tsorted( R,tindentRLRMtnsmatchRtnstprefixR&R(t attr_stringtchild(tElementTreeCommentTypetrvtserializeElement(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRfs^  %!     ) %   u (tjoin(R,(Rd(ReRfsK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyttestSerializers7 c`sDgtjfd|djS(u4Serialize an element and its child nodes to a stringc`smt|jr!|j}n|jdkr|jdsN|jdr|jdp`d}|jdpud}jd|j||fqMjd|jfn|jdkrL|jdk rj|jn|jdk rt dnt |d r.t |j r.t d nx|D]}|q5Wn|jkrujd |jfn|j sjd j |jfn^d jg|j jD]%\}}dj ||f^q}jd|j|f|jrj|jnx|D]}|q"Wjd|jf|jrij|jndS(Nu upublicIdusystemIduuu u DOCUMENT_ROOTuDocument node cannot have tailuattribu$Document node cannot have attributesu u<%s>u u%s="%s"u<%s %s>u(R#RRVRRNR2R/RR;RWRUR0Rt fromXmlNameRgR"(R,RLRMRcRR(tattr(RRdtfilterReRf(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRfs@   # ;   u(Rt InfosetFilterRg(R,(RRd(RkReRfsK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyttostrings  - t TreeBuilderc`sSeZZZZZZZfdZfdZ dZ RS(c`s |S(N((RR,(Rh(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRhAsc`sPr|jjS|jdk r9|jjjd|jS|jjjdSdS(Nu{%s}htmluhtml(tdocumentR tdefaultNamespaceRtfind(R(tfullTree(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt getDocumentDs   cS`stjj|jS(N(RRnt getFragmentR (R((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRtNs( RERFt documentClasst doctypeClasst elementClasst commentClasst fragmentClasstimplementationRhRsRt((RHRSRTRKR tElementTreeImplementationRrRh(sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRn9s (RHRRRBRntlocals(R{RrRmRn(( RHRSRTRKR RRdR{RrRhsK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pytgetETreeBuilders~>64(t __future__RRRtpip._vendor.sixRtretRRRRt_utilsRtcompileRYtFalseR}tgetETreeModule(((sK/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyts  D