+
    DfjQ                         R t ^ RIHt ^ RIHt ^ t^t^tRt]R,           t	R t
R tR tR tR	 t ! R
 R]4      t ! R R]4      tR# )a  
*S*mall, *U*ncomplicated *X*ML.

This is a very simple implementation of XML/HTML as a network
protocol.  It is not at all clever.  Its main features are that it
does not:

  - support namespaces
  - mung mnemonic entity references
  - validate
  - perform *any* external actions (such as fetching URLs or writing files)
    under *any* circumstances
  - has lots and lots of horrible hacks for supporting broken HTML (as an
    option, they're not on by default).
)Protocol)prefixedMethodNamesz.-_:z;+#/%~c                     R# )zDo nothing.N )argskws   *,1/usr/lib/python3/dist-packages/twisted/web/sux.pynopr	   $   s        c                      . pV  F  pVP                  V4       K  	  V Uu/ uF  q"^bK  	  ppVP                  4       # u upi )   )extendkeys)r   lxds   *   r   	unionlistr   (   sB    
A	 q!AqA668O 	s   >c                     aa VP                  R \        4      o/ p\        R V  4       !   F:  o\        ;QJ d    . VV3R lV  4       F  NK  	  5M! VV3R lV  4       4      VS&   K<  	  V# )defaultc              3   @   "   T F  qP                  4       x  K  	  R # 5iN)r   ).0fndicts   & r   	<genexpr>zipfndict.<locals>.<genexpr>3   s     <tV;;==ts   c              3   F   <"   T F  qP                  SS4      x  K  	  R # 5ir   )get)r   r   r   keys   & r   r   r   4   s     9DquuS'**Ds   !)r   r	   r   tuple)r   r   r   r   r   s   *, @@r   	zipfndictr   0   sT    ffY$G
A<t<=9D99D99# >Hr
   c           	      d    \        W4       Uu/ uF  pV\        WV,           4      bK  	  up# u upi r   )r   getattr)clazzprefixnames   && r   prefixedMethodClassDictr%   8   s<     (66D 	ged]++6  s   -c           	      z    \        V P                  V4       Uu/ uF  pV\        WV,           4      bK  	  up# u upi r   )r   	__class__r!   )objr#   r$   s   && r   prefixedMethodObjDictr)   ?   sB     (v>>D 	gcD=))>  s   8c                   8   a  ] tR t^Ft o R tV 3R lR ltRtV tR# )
ParseErrorc                6    Wn         W n        W0n        W@n        R # r   filenamelinecolmessage)selfr.   r/   r0   r1   s   &&&&&r   __init__ParseError.__init__G   s     	r
   c                    < V ^8  d   QhRS[ /# )   return)str)format__classdict__s   "r   __annotate__ParseError.__annotate__M   s     I I Ir
   c                l    V P                    R V P                   R V P                   RV P                   2# ):z: r-   r2   s   &r   __str__ParseError.__str__M   s/    --$))AdhhZr$,,HHr
   )r0   r.   r/   r1   N)__name__
__module____qualname____firstlineno__r3   r@   __static_attributes____classdictcell__r:   s   @r   r+   r+   F   s     I Ir
   r+   c                     a  ] tR t^Qt o RtRtRt^ tRtRt	R t
R tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%Rt&Rt'R  t(R! t)R" t*R# t+R$ t,R% t-R& t.R' t/R( t0R) t1R* t2R+ t3R, t4R- t5R. t6R/ t7R0 t8R1 t9R2 t:R3 t;]3t<]4t=R4 t>R5 t?R6 t@R7 tAR8 tBR9 tCR: tDR;tEV tFR# )<	XMLParserNz<xml />c                0    ^V n         ^ V n        . V n        R# )r   N)linenocolno	encodingsr?   s   &r   connectionMadeXMLParser.connectionMade]   s    
r
   c                2    V P                   V P                  3# )z;Get the line number and column of the last character parsed)rL   rM   r?   s   &r   saveMarkXMLParser.saveMarkb   s     TZZ((r
   c                d    \        V P                  3V P                  4       ,           V3,           !  hr   )r+   r.   rR   )r2   r1   s   &&r   _parseErrorXMLParser._parseErrorg   s&    DMM+dmmo=
JLLr
   c                   a  \        S P                  RR4      pVf%   \        V 3R lR 4       !  ;pS P                  n        V# )z;Return a dictionary of begin, do, end state function tuples__stateTableNc              3   <   <"   T F  p\        SV4      x  K  	  R # 5ir   )r)   )r   r#   r2   s   & r   r   -XMLParser._buildStateTable.<locals>.<genexpr>r   s"      "; *$77";s   )begin_do_end_)r!   r'   r   _XMLParser__stateTable)r2   
stateTables   f r   _buildStateTableXMLParser._buildStateTablej   sJ    
 T^^^TB
7@";8 J4 r
   c                   R V P                   9   g   RV P                   9   d    \        V4      ^,          '       d   Q R4       hV P                  '       d   V P                  V,           pV P                    F  p\        W4      pK  	  V# )UTF-16zUCS-2z!UTF-16 must come in pairs for now)rN   len_prependr8   )r2   dataencodings   && r   _decodeXMLParser._decodey   sf    t~~%DNN)B4y1}}I&II$=====4'DHt&D 'r
   c                    V P                   '       d   R # V P                  R8X  d%   RV P                  9  d   V P                  R4       R# R # )bodydatascriptsrcNwaitforendscript)endtagtagNametagAttributesbegin_bodydatar?   s   &r   maybeBodyDataXMLParser.maybeBodyData   s?    ;;; <<8#T5G5G(G %%r
   c                  aa V P                  4       pV P                  '       gQ   VP                  R	4      '       d3   VR,          V n        V P                  P                  R4       VR,          pRV n        V P                  '       d   V P                  V4      pMVP                  R4      pV P                  V P                  uooV P                  pV P                  pVV3R lpWPn
        W#,          w  rgp V FQ  p	V	R8X  d   S^,          o^ oM	S^,          oV! V	4      p
V
f   K-  W8w  g   K5  V! 4        T
pW#,          w  rgpV! V	4       KS  	  W@n
        SSuV n        V n	        W0n        R#   Y@n
        SSuT n        T n	        i ; i)
   :    r6   Nrc   :r6   NNbeginzutf-8c                     < SS 3# r   r   )rM   rL   s   r   rR   (XMLParser.dataReceived.<locals>.saveMark   s    E?"r
   
N)rv   s   )r`   state
startswithre   rN   appendrh   decoderL   rM   rR   )r2   rf   r_   curState	_saveMarkrR   beginFndoFnendFnbytenewStaterM   rL   s   &&         @@r   dataReceivedXMLParser.dataReceived   sN   **,
zzz9:: $S	%%h/Bx DJ>>><<%D;;w'DTZZ::MM		# !)3u	44<aKFEQJE:'H,@G'H+5+?(G5DM  &M&,e#DK
 &M&,e#DKs   4*E( #E( + E( (E?c                j    V P                  4       pW P                  ,          \        ,          ! 4        R# )z 
End the last state we were in.
N)r`   r|   END_HANDLER)r2   reasonr_   s   && r   connectionLostXMLParser.connectionLost   s$     **,
::{+-r
   c                    VP                  4       '       d   R # VR8w  d1   V P                  '       d	   Wn        R# V P                  RV: R24       R# )N<rk   zFirst char of document [z
] wasn't <tagstart)isspacebeExtremelyLenient_leadingBodyDatarU   r2   r   s   &&r   do_beginXMLParser.do_begin   sG    <<>>3;&&&(,%!7xzJKr
   c                    R V n         R#  N)
commentbufr   s   &&r   begin_commentXMLParser.begin_comment   s	    r
   c                    V ;P                   V,          un         V P                   P                  R 4      '       d!   V P                  V P                   RR 4       R# R# )z-->Nrk   )r   endswith
gotCommentr   s   &&r   
do_commentXMLParser.do_comment   sD    4??##E**OODOOCR01 +r
   c                >    R V n         / V n        ^ V n        ^ V n        R# r   )rp   rq   termtagro   r   s   &&r   begin_tagstartXMLParser.begin_tagstart   s    r
   c                   VP                  4       '       g   V\        9   d/   V ;P                  V,          un        V P                  R 8X  d   R# R# VP                  4       '       d<   V P                  '       d   V P                  '       d   R# R# V P                  R4       R# VR8X  d   V P                  '       d   V P                  V P                  4       R# V P                  V P                  / 4       V P                  '       * ;'       d    R;'       g    V P                  4       # VR8X  d   V P                  '       d   R# ^V n        R# VR	9   d\   V P                  '       d(   V P                  '       g   V P                  R
4       R# R# V ;P                  V,          un        ^V n
        R# VR8X  d'   V P                  R8X  d   R# V P                  R4       R# V P                  '       d
   RV n        R# V P                  RV,          4       R# )z!--comment	waitforgtattrszWhitespace before tag-name>rk   /
afterslash!?zInvalid character in tag-name[!expectcdatazInvalid '[' in tag-namer   unentityzInvalid tag character: %rN)isalnum
identCharsrp   r   ro   rU   	gotTagEndgotTagStartr   rs   r   rk   r   s   &&r   do_tagstartXMLParser.do_tagstart   s}   <<>>TZ/LLD L||u$  %\\^^|||;;; '  !=>S[{{{t||,!  r2000@@jXXDDVDVDX S[|||#T\|||...$$%DE / $ S[||s"$  !:;&&& #!84?@r
   c                8    V ;P                   V,          un         R # r   rk   r   s   &&r   begin_unentityXMLParser.begin_unentity  s    r
   c                8    V ;P                   V,          un         R # r   r   r   s   &&r   do_unentityXMLParser.do_unentity  s    r
   c                <    V P                  V P                  4       R # r   gotTextrk   r?   s   &r   end_unentityXMLParser.end_unentity  s    T]]#r
   c                    Wn         R # r   )cdatabufr   s   &&r   begin_expectcdataXMLParser.begin_expectcdata  s    r
   c                B   V ;P                   V,          un         V P                   pR p\        V4      \        V4      8  d?   VP                  V4      '       d   R# V P                  '       d   R# V P	                  R4       W28X  d
   RV n         R# V P	                  R4       R# )z[CDATA[Nr   zMal-formed CDATA headerr   cdata)r   rd   r}   r   rU   )r2   r   cdbcds   &&  r   do_expectcdataXMLParser.do_expectcdata!  s~    mmr7SX}}S!!(((
 #  !:;9DM23r
   c                    V ;P                   V,          un         V P                   P                  R 4      '       d   V P                   RR V n         R# R# )z]]>Nrk   r   )r   r   r   s   &&r   do_cdataXMLParser.do_cdata5  s?    ==!!%(( MM#2.DM )r
   c                J    V P                  V P                  4       R V n        R# r   )gotCDatar   r?   s   &r   	end_cdataXMLParser.end_cdata;  s    dmm$r
   c                    VP                  4       '       g   V\        9   d0   V P                  R 8X  d   R# V P                  ^ ,          R9   d   R# R# VP                  4       '       d   R# VR8X  dZ   V P	                  V P                  V P
                  4       V P                  '       * ;'       d    R;'       g    V P                  4       # VR8X  d   R	# V P                  '       d   R# V P                  R
V,          4       R# )!DOCTYPEdoctyper   r   attrnameNr   rk   r   r   zUnexpected character: %r)	r   r   rp   r   r   rq   r   rs   rU   r   s   &&r   do_attrsXMLParser.do_attrs?  s    <<>>TZ/||z) ||A$&"\\^^S[T\\4+=+=>///??ZWW4CUCUCWWS[$$$ 3d:;r
   c                    Wn         R # r   r   r   s   &&r   begin_doctypeXMLParser.begin_doctypeT      r
   c                J    VR 8X  d   R# V ;P                   V,          un         R# r   rk   Nr   r   s   &&r   
do_doctypeXMLParser.do_doctypeW  s    3;r
   c                J    V P                  V P                  4       R V n        R # r   )
gotDoctyper   r?   s   &r   end_doctypeXMLParser.end_doctype\  s    %r
   c                    VR 8X  d7   V P                   '       g   V P                  '       g   R# V P                  4       # R# r   )ro   r   rs   r   s   &&r   do_waitforgtXMLParser.do_waitforgt`  s4    3;{{{$"9"9"9!%%'' r
   c                     Wn         ^ V n        R# rw   N)r   _attrname_termtagr   s   &&r   begin_attrnameXMLParser.begin_attrnamef  s    !"r
   c                   VP                  4       '       g   V\        9   d   V ;P                  V,          un        R # VR8X  d   R# VP                  4       '       d   R# V P                  '       d   VR9   d   R# V\
        9   g   VP                  4       '       d   V ;P                  V,          un        R # VR8X  d
   ^V n        R # VR8X  d   RV n        V P                  V P                  V P                  &   V P                  V P                  V P                  4       V P                  '       d   V P                  V P                  4       R	# V P                  4       # R # V P                  R
V P                  : RV: 24       R # )N=beforeattrvalbeforeeq"'attrvalr   r   Truerk   zInvalid attribute name:  )r   r   r   r   r   lenientIdentCharsr   r   rq   r   rp   r   rs   rU   r   s   &&r   do_attrnameXMLParser.do_attrnamej  s   <<>>TZ/MMT!MS["\\^^$$$u} ((DLLNN%s{)*&s{%48LL""4==1  t/A/AB)))NN4<<0%))++ 3DMM3DAdXNOr
   c                   VR 9   d   R# VP                  4       '       d   R# V P                  '       d   V\        9   g   VP                  4       '       d   R# VR8X  da   RV n        V P                  V P
                  V P                  &   V P                  V P                  V P
                  4       V P                  4       # VR8X  d   R# V P                  RV,          4       R# )r   r   N	messyattrr   r   \zEInvalid initial attribute value: %r; Attribute values must be quoted.)r   r   r   r   r   rq   r   r   rp   rs   rU   r   s   &&r   do_beforeattrvalXMLParser.do_beforeattrval  s    5=\\^^$$$((DLLNN"s{%48LL""4==1  t/A/AB))++t| S	
r
   r   c                    ^ V n         R# r   )_beforeeq_termtagr   s   &&r   begin_beforeeqXMLParser.begin_beforeeq  s
    !"r
   c                t   VR 8X  d   R# VP                  4       '       d   R# V P                  '       d   VP                  4       '       g   V\        9   d-   RV n        V P                  V P
                  V P                  &   R# VR8X  d   RV n        V P                  V P
                  V P                  &   V P                  V P                  V P
                  4       V P                  '       d   V P                  V P                  4       R# V P                  4       # VR8X  d
   ^V n	        R# V P                  R4       R# )	r   r   Nr   r   r   rk   r   zInvalid attribute)r   r   r   r   r   rq   r   r   rp   r  r   rs   rU   r   s   &&r   do_beforeeqXMLParser.do_beforeeq  s    3;"\\^^$$$||~~!3%48LL""4==1!%48LL""4==1  t/A/AB)))NN4<<0%))++)*&,-r
   c                     Wn         R V n        R# r   	quotetyper   r   s   &&r   begin_attrvalXMLParser.begin_attrval  s    r
   c                \    WP                   8X  d   R # V ;P                  V,          un        R# )r   Nr	  r   s   &&r   
do_attrvalXMLParser.do_attrval  s    >>!r
   c                h    V P                   V P                  V P                  &   R ;V n        V n         R# r   r   rq   r   r?   s   &r   end_attrvalXMLParser.end_attrval  s(    ,0LL4==)'))r
   c                    Wn         R # r   )r   r   s   &&r   begin_messyattrXMLParser.begin_messyattr  r   r
   c                   VP                  4       '       d   R # VR8X  d   ^ pV P                  P                  R4      '       d   ^pV P                  RR V n        V P                  V P                  V P                  &   V P                  V P                  V P                  4       V'       d   V P                  V P                  4       R# V P                  4       # V ;P                  V,          un        R# )r   r   r   Nrk   )	r   r   r   rq   r   r   rp   r   rs   )r2   r   endTags   && r   do_messyattrXMLParser.do_messyattr  s    <<>>S[F||$$S))#||CR004Dt}}-T\\4+=+=>t||,!%%''LLD Lr
   c                t    V P                   '       d&   V P                   V P                  V P                  &   R # R # r   r  r?   s   &r   end_messyattrXMLParser.end_messyattr  s(    <<<04Dt}}- r
   c                    ^ V n         R# r   )_after_slash_closedr   s   &&r   begin_afterslashXMLParser.begin_afterslash  s
    #$ r
   c                4   V P                   '       d   V P                  R 4       VR8w  d&   V P                  '       d   R# V P                  R4       ^V n         V P                  V P                  V P
                  4       V P                  V P                  4       R# )z
Mal-formedr   NzNo data allowed after '/'rk   )r   rU   r   r   rp   rq   r   r   s   &&r   do_afterslashXMLParser.do_afterslash  sx    ###\*3;&&&  !<=#$ t'9'9:t||$ r
   c                b    V P                   '       d   V P                   V n        V = R# R V n        R# r   )r   rk   r   s   &&r   rr   XMLParser.begin_bodydata  s(        11DM%DMr
   c                \    VR 8X  d   R# VR8X  d   R# V ;P                   V,          un         R# )r   r   &	entityrefNr   r   s   &&r   do_bodydataXMLParser.do_bodydata  s$    3;3;r
   c                J    V P                  V P                  4       R V n        R# r   r   r?   s   &r   end_bodydataXMLParser.end_bodydata  s    T]]#r
   c                J    VR 8X  d   R# V ;P                   V,          un         R# )r   waitscriptendtagNr   r   s   &&r   do_waitforendscriptXMLParser.do_waitforendscript  s    3;%r
   c                0    R V n         R V n        ^ V n        R# r   )temptagdatarp   ro   r   s   &&r   begin_waitscriptendtag XMLParser.begin_waitscriptendtag
  s    r
   c                   V ;P                   V,          un         VR 8X  d
   RV n        R# V P                  '       g-   V ;P                  RV P                   ,           ,          un        R# VP                  4       '       g   V\        9   d   V ;P
                  V,          un        RP                  V P
                  4      '       g-   V ;P                  RV P                   ,           ,          un        R# V P
                  R8X  d9   V P                  V P                  4       V P                  V P
                  4       R# R# VP                  4       '       d   R# V ;P                  RV P                   ,           ,          un        R# )r   Tr   rn   rl   r   r1  N)
r5  ro   rk   r   r   rp   r}   r   r   r   r   s   &&r   do_waitscriptendtagXMLParser.do_waitscriptendtag  s     	D  3;DKMMS4#3#333M%\\^^tz1LLD L&&t||44t'7'7!77))T]]+t||," *
 \\^^% MMS4#3#333M%r
   c                "    R V n         R V n        R# r   )erefbuf	erefextrar   s   &&r   begin_entityrefXMLParser.begin_entityref6  s    r
   c                   VP                  4       '       g   VR 8X  d   V P                  '       d`   V P                  '       d#   V P                  R8w  d   V P                  V n        RV n        VR 8X  d   R# V ;P                  V,          un        R# V P	                  R4       R# VR8w  d   V ;P                  V,          un        R# R# )r   ampr   spacebodydatazBad entity reference;rk   N)r   r   r<  r=  rU   r   s   &&r   do_entityrefXMLParser.do_entityref:  s    <<>>TS[&&&<<<DLLE$9%)\\DN$3;%NNd*N*34S[LLD Lr
   c                <    V P                  V P                  4       R # r   )gotEntityReferencer<  r?   s   &r   end_entityrefXMLParser.end_entityrefL  s    -r
   c                6    V P                   V n        R V n         R # r   )r=  rk   r   s   &&r   begin_spacebodydataXMLParser.begin_spacebodydataQ  s    r
   c                    \        RW4       R# )z;Encountered an opening tag.

Default behaviour is to print.rx   Nprint)r2   r$   
attributess   &&&r   r   XMLParser.gotTagStartZ  s     	gt(r
   c                0    \        R\        V4      4       R# )z0Encountered text

Default behaviour is to print.ztext:NrO  repr)r2   rf   s   &&r   r   XMLParser.gotText`  s     	gtDz"r
   c                *    \        RV,          4       R# )zEEncountered mnemonic entity reference

Default behaviour is to print.zentityRef: &%s;NrN  )r2   	entityRefs   &&r   rG  XMLParser.gotEntityReferencef  s     	)+,r
   c                    R# )z5Encountered comment.

Default behaviour is to ignore.Nr   )r2   r   s   &&r   r   XMLParser.gotCommentl  s     	r
   c                (    V P                  V4       R# )zBEncountered CDATA

Default behaviour is to call the gotText methodN)r   )r2   r   s   &&r   r   XMLParser.gotCDatar  s     	Ur
   c                0    \        R\        V4      4       R# )zEncountered DOCTYPE

This is really grotty: it basically just gives you everything between
'<!DOCTYPE' and '>' as an argument.
r   NrS  )r2   r   s   &&r   r   XMLParser.gotDoctypex  s     	j$w-(r
   c                    \        RV4       R# )z7Encountered closing tag

Default behaviour is to print.endNrN  )r2   r$   s   &&r   r   XMLParser.gotTagEnd  s     	eTr
   )r   r   r  r   re   r   r   rk   r   rM   r   r   rN   ro   r<  r=  rL   r
  rR   r|   rq   rp   r5  r   )GrB   rC   rD   rE   r|   rN   r.   r   re   r   rO   rR   rU   r`   rh   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r!  r$  rr   r+  r.  r2  r6  r9  r>  rD  rH  rK  do_spacebodydataend_spacebodydatar   r   rG  r   r   r   r   rF   rG   rH   s   @r   rJ   rJ   Q   s_    EIHH
 
)
M(,\.,A\$4(<*
(#P<
, HG#..
*!"=% 

%&N$.
 #$)#-) r
   rJ   N)__doc__twisted.internet.protocolr   twisted.python.reflectr   BEGIN_HANDLER
DO_HANDLERr   r   r   r	   r   r   r%   r)   	Exceptionr+   rJ   r   r
   r   <module>rj     sh   " / 6 

) I Is sr
   