+
    Ĝi,                        ^ RI HtHtHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht ^RIHt ^RIHt ^RIHtHt ^RIHtHtHt ^R	IHtHt ^R
IHt ^RIHt ^RIHt ]! ]4      t]R8  d   ]tM]	t ! R R]4      tR# )    )absolute_importdivisionunicode_literals)unichr)dequeOrderedDict)version_info)spaceCharacters)entities)asciiLettersasciiUpper2Lower)digits	hexDigitsEOF)
tokenTypestagTokenTypes)replacementCharacters)HTMLInputStream)Triec                     a a ] tR t^t oRtRLV 3R lltR tR tRMR l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/ t2R0 t3R1 t4R2 t5R3 t6R4 t7R5 t8R6 t9R7 t:R8 t;R9 t<R: t=R; t>R< t?R= t@R> tAR? tBR@ tCRA tDRB tERC tFRD tGRE tHRF tIRG tJRH tKRI tLRJ tMRKtNVtOV ;tP# )NHTMLTokenizerzThis class takes care of tokenizing HTML.

* self.currentToken
  Holds the token that is currently being processed.

* self.state
  Holds a reference to the method to be invoked... XXX

* self.stream
  Points to HTMLInputStream object.
c                   < \        V3/ VB V n        W n        R V n        . V n        V P
                  V n        R V n        RV n        \        \        V `/  4        R# )FN)r   streamparser
escapeFlaglastFourChars	dataStatestateescapecurrentTokensuperr   __init__)selfr   r   kwargs	__class__s   &&&,\/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/html5lib/_tokenizer.pyr"   HTMLTokenizer.__init__(   sS    %f77  ^^
 !mT+-    c              #  f  "   \        . 4      V n        V P                  4       '       d   V P                  P                  '       d9   R\
        R,          RV P                  P                  P                  ^ 4      /x  KT  V P                  '       g   K~  V P                  P                  4       x  K2  R# 5i)zThis is where the magic happens.

We do our usually processing through the states and when we have a token
to return we yield the token which pauses processing until the next token
is requested.
type
ParseErrordataN)r   
tokenQueuer   r   errorsr   poppopleftr#   s   &r&   __iter__HTMLTokenizer.__iter__7   sz       ) jjll++$$$z,7ASASAWAWXYAZ[[///oo--//	 s   &B1B1AB1 B1c           	     "   \         p^
pV'       d	   \        p^p. pV P                  P                  4       pWR9   d8   V\        Jd.   VP                  V4       V P                  P                  4       pK=  \        RP                  V4      V4      pV\        9   d>   \        V,          pV P                  P                  R\        R,          RRRRV//4       EMRTu;8:  d   R	8:  g
   M VR
8  d2   RpV P                  P                  R\        R,          RRRRV//4       M^Tu;8:  d   ^8:  g   M ^Tu;8:  d   ^8:  g{   M ^Tu;8:  d   ^8:  gj   M RTu;8:  d   R8:  gY   M V\        . ^NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR
N4      9   d/   V P                  P                  R\        R,          RRRRV//4        \        V4      pVR28w  dF   V P                  P                  R\        R,          RR3/4       V P                  P                  V4       V#   \         dD    TR/,
          p\        RT^
,	          ,          4      \        R0TR1,          ,          4      ,           p Li ; i)4zThis function returns either U+FFFD or the character based on the
decimal or hexadecimal representation. It also discards ";" if present.
If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked.
 r*   r+   r,   z$illegal-codepoint-for-numeric-entitydatavars	charAsInti   i  i    �i  i  i  i  i i i i i i i i i i i i i i i i i	 i	 i
 i
 i i i i i i i i i i i i   i   i  ;z numeric-entity-without-semicolon)r   r   r   charr   appendintjoinr   r-   r   	frozensetchr
ValueErrorunget)	r#   isHexallowedradix	charStackcr7   r:   vs	   &&       r&   consumeNumberEntity!HTMLTokenizer.consumeNumberEntityG   s    GE	 KKlq|Q  "A 	*E2	 --(3DOO""FJ|,Df$J$.i0H$J K ,f,8#DOO""FJ|,Df$J$.i0H$J K
 9..9..9..9..Y (E (E (E (E (E(/(E18(E:A(ECJ(E(/(E18(E:A(ECJ(E )0(E 29(E ;B(E DK(E )0	(E 29	(E ;B	(E DK	(E
 )0(E
 29(E
 ;B(E
 DK(E )0(E 29(E ;B(E DK(E )0(E 29(E ;B(E DK(E )0(E 2:(E <D(E F F &&
<0H(.(N(2[)4L(N OK 9~ 8OO""FJ|,Df$F$H IKKa   K'6Q"W-.Vq5y5I1JJKs   'I   AJJc                   R pV P                   P                  4       .pV^ ,          \        9   g'   V^ ,          \        RR 39   g   Ve2   W^ ,          8X  d%   V P                   P	                  V^ ,          4       EMeV^ ,          R8X  Ed;   RpVP                  V P                   P                  4       4       VR,          R9   d,   RpVP                  V P                   P                  4       4       V'       d   VR,          \        9   g   V'       gH   VR,          \        9   d6   V P                   P	                  VR,          4       V P                  V4      pEMV P                  P                  R\        R,          RR	/4       V P                   P	                  VP                  4       4       R R
P                  V4      ,           pEMVR,          \        JdW   \        P                  R
P                  V4      4      '       g   M+VP                  V P                   P                  4       4       Kg   \        P                  R
P                  VRR 4      4      p\!        V4      pVEe   VR,          R8w  d+   V P                  P                  R\        R,          RR/4       VR,          R8w  d{   V'       ds   VX,          \$        9   g   WG,          \        9   g   WG,          R8X  dC   V P                   P	                  VP                  4       4       R R
P                  V4      ,           pM\&        V,          pV P                   P	                  VP                  4       4       VR
P                  VXR 4      ,          pMkV P                  P                  R\        R,          RR/4       V P                   P	                  VP                  4       4       R R
P                  V4      ,           pV'       d0   V P(                  R,          R,          ^;;,          V,          uu&   R# V\        9   d   RpMRpV P                  P                  R\        V,          RV/4       R#   \"         d    Rp ELi ; i)&<N#FTr*   r+   r,   zexpected-numeric-entityr5   r9   znamed-entity-without-semicolon=zexpected-named-entitySpaceCharacters
Characters)xX)r   r:   r
   r   rA   r;   r   r   rH   r-   r   r/   r=   entitiesTriehas_keys_with_prefixlongest_prefixlenKeyErrorr   r   r    )	r#   allowedCharfromAttributeoutputrE   hex
entityNameentityLength	tokenTypes	   &&&      r&   consumeEntityHTMLTokenizer.consumeEntity   sR   [[%%'(	aLO+y|S#/N([aL-HKKil+q\S CT[[--/0}
*  !1!1!34 	"2IbMV$;!!)B-011#6 &&
<0H(.0I(K L!!)--/2rwwy11 R=+#889KLL  !1!1!34")883B9PQ
": %b>S(OO**FJ|4Lf,L,N OrNc)m|,<,6,3KK%%immo6 2779#55F%j1FKK%%immo6bggi&>??F&&
<0H&(?(A B!!)--/2rwwy11f%b)!,6,(-	(	OO""FJy,A66#RS=  "!
"s   +2Q Q#"Q#c                ,    V P                  VRR7       R# )zIThis method replaces the need for "entityInAttributeValueState".
        T)rY   rZ   N)r`   )r#   rY   s   &&r&   processEntityInAttribute&HTMLTokenizer.processEntityInAttribute   s     	{$Gr(   c                   V P                   pVR,          \        9   Ed   VR,          P                  \        4      VR&   VR,          \        R,          8X  dM   VR,          p\        V4      p\        V4      \        V4      8  d   VP                  VRRR1,          4       W1R&   VR,          \        R,          8X  ds   VR,          '       d+   V P                  P                  R\        R,          RR/4       VR	,          '       d+   V P                  P                  R\        R,          RR
/4       V P                  P                  V4       V P                  V n        R# )zThis method is a generic handler for emitting the tags. It also sets
the state to "data" because that's what's needed after a token has been
emitted.
r*   nameStartTagr,   NEndTagr+   zattributes-in-end-tagselfClosingzself-closing-flag-on-end-tagrQ   )r    r   	translater   r   attributeMaprW   updater-   r;   r   r   )r#   tokenrawr,   s   &   r&   emitCurrentTokenHTMLTokenizer.emitCurrentToken   s   
 !!&M]*!&M334DEE&MV}
: 66Fm#C(s8c$i'KKDbD	* $fV}
8 44==OO**FJ|4L,24K,M N''OO**FJ|4L,24R,T Uu%^^
r(   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  d   V P                  V n        R
# VR8X  dW   V P
                  P                  R\        R,          RR/4       V P
                  P                  R\        R,          RR/4       R
# V\        J d   R# V\        9   dQ   V P
                  P                  R\        R	,          RWP                   P                  \        R
4      ,           /4       R
# V P                   P                  R4      pV P
                  P                  R\        R,          RW,           /4       R
# )rK   rL    r*   r+   r,   invalid-codepointrP   FrO   TrK   rL   rr   )r   r:   entityDataStater   tagOpenStater-   r;   r   r   r
   
charsUntilr#   r,   charss   &  r&   r   HTMLTokenizer.dataState   s=   {{!3;--DJ0 / S[**DJ, + XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7$ ! S[_$ OO""FJ7H,I6$(;;+A+A/SW+X$X$Z [  KK**+?@EOO""FJ|,Df$(L$2 3r(   c                H    V P                  4        V P                  V n        R # T)r`   r   r   r1   s   &r&   ru   HTMLTokenizer.entityDataState  s    ^^
r(   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d   V P                  V n        R# V\
        8X  d   R# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       R# V\        9   dQ   V P                  P                  R\        R
,          RWP                   P                  \        R4      ,           /4       R# V P                   P                  R4      pV P                  P                  R\        R,          RW,           /4       R# )rK   rL   Frr   r*   r+   r,   rs   rP   r8   rO   Trt   )r   r:   characterReferenceInRcdatar   rcdataLessThanSignStater   r-   r;   r   r
   rw   rx   s   &  r&   rcdataStateHTMLTokenizer.rcdataState"  s=   {{!3;88DJ0 / S[55DJ, + S[XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  _$ OO""FJ7H,I6$(;;+A+A/SW+X$X$Z [  KK**+?@EOO""FJ|,Df$(L$2 3r(   c                H    V P                  4        V P                  V n        R # r|   )r`   r   r   r1   s   &r&   r   (HTMLTokenizer.characterReferenceInRcdata?  s    %%
r(   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   R# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# rL   rr   r*   r+   r,   rs   rP   r8   FT)rL   rr   )	r   r:   rawtextLessThanSignStater   r-   r;   r   r   rw   rx   s   &  r&   rawtextStateHTMLTokenizer.rawtextStateD  s    {{!3;66DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[KK**?;EOO""FJ|,Df$(L$2 3r(   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   R# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# r   )	r   r:   scriptDataLessThanSignStater   r-   r;   r   r   rw   rx   s   &  r&   scriptDataStateHTMLTokenizer.scriptDataStateV  s    {{!3;99DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[KK**?;EOO""FJ|,Df$(L$2 3r(   c           	        V P                   P                  4       pV\        8X  d   R # VR8X  dW   V P                  P	                  R\
        R,          RR/4       V P                  P	                  R\
        R,          RR/4       R# V P                  P	                  R\
        R,          RWP                   P                  R4      ,           /4       R# )	Frr   r*   r+   r,   rs   rP   r8   T)r   r:   r   r-   r;   r   rw   r#   r,   s   & r&   plaintextStateHTMLTokenizer.plaintextStateh  s    {{!3;XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7
  OO""FJ|,Df$(;;+A+A(+K$K$M Nr(   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d   V P                  V n        R# V\
        9   d0   R\        R,          RVR. RRRR/V n        V P                  V n        R# VR	8X  dh   V P                  P                  R\        R
,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R# VR8X  dY   V P                  P                  R\        R
,          RR/4       V P                   P                  V4       V P                  V n        R# V P                  P                  R\        R
,          RR/4       V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )!/r*   rg   rf   r,   ri   FselfClosingAcknowledged>r+   z'expected-tag-name-but-got-right-bracketrP   z<>?z'expected-tag-name-but-got-question-markzexpected-tag-namerL   T)r   r:   markupDeclarationOpenStater   closeTagOpenStater   r   r    tagNameStater-   r;   r   rA   bogusCommentStater   s   & r&   rv   HTMLTokenizer.tagOpenStatew  s   {{!3;88DJ< ; S[//DJ8 7 \!!'J)?!'vr!.!:E!CD **DJ, + S[ OO""FJ|,Df$M$O POO""FJ|,Dfd#STDJ  S[ OO""FJ|,Df$M$O PKKd#//DJ  OO""FJ|,Df$7$9 :OO""FJ|,Dfc#RSKKd#DJr(   c           	        V P                   P                  4       pV\        9   d.   R \        R,          RVR. RR/V n        V P
                  V n        R# VR8X  d>   V P                  P                  R \        R,          RR/4       V P                  V n        R# V\        J dh   V P                  P                  R \        R,          RR	/4       V P                  P                  R \        R
,          RR/4       V P                  V n        R# V P                  P                  R \        R,          RRRRV//4       V P                   P                  V4       V P                  V n        R# )r*   rh   rf   r,   ri   Fr   r+   z*expected-closing-tag-but-got-right-bracketz expected-closing-tag-but-got-eofrP   </z!expected-closing-tag-but-got-charr6   T)r   r:   r   r   r    r   r   r-   r;   r   r   rA   r   r   s   & r&   r   HTMLTokenizer.closeTagOpenState  sF   {{!<!'H)=vt!']E!CD**DJ" ! S[OO""FJ|,Df$P$R SDJ  S[OO""FJ|,Df$F$H IOO""FJ|,Dfd#STDJ  OO""FJ|,Df$G$.$@ A KKd#//DJr(   c                L   V P                   P                  4       pV\        9   d   V P                  V n        R
# VR 8X  d   V P                  4        R
# V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R	,          uu&   R
# V P                  R;;,          V,          uu&   R
# )r   r*   r+   r,   zeof-in-tag-namer   rr   rs   rf   r8   T)r   r:   r
   beforeAttributeNameStater   ro   r   r-   r;   r   r   selfClosingStartTagStater    r   s   & r&   r   HTMLTokenizer.tagNameState  s   {{!?"66DJ" ! S[!!#  S[OO""FJ|,Df$5$7 8DJ  S[66DJ  XOO""FJ|,D$*,?$A Bf%1%
  f%-% r(   c                (   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   r5   r*   rP   r,   rL   T)
r   r:   temporaryBufferrcdataEndTagOpenStater   r-   r;   r   rA   r   r   s   & r&   r   %HTMLTokenizer.rcdataLessThanSignState  sy    {{!3;#%D 33DJ
  OO""FJ|,Dfc#RSKKd#))DJr(   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r*   rP   r,   r   T)r   r:   r   r   rcdataEndTagNameStater   r-   r;   r   rA   r   r   s   & r&   r   #HTMLTokenizer.rcdataEndTagOpenState  s    {{!<  D( 33DJ
  OO""FJ|,Dfd#STKKd#))DJr(   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# rf   r*   rh   r,   ri   Fr   r   rP   r   T)r    lowerr   r   r:   r
   r   r   r   r   ro   r   r   r-   r;   rA   r   r#   appropriater,   s   &  r&   r   #HTMLTokenizer.rcdataEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#))DJr(   c                (   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )
r   r:   r   rawtextEndTagOpenStater   r-   r;   r   rA   r   r   s   & r&   r   &HTMLTokenizer.rawtextLessThanSignState  sy    {{!3;#%D 44DJ
  OO""FJ|,Dfc#RSKKd#**DJr(   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r:   r   r   rawtextEndTagNameStater   r-   r;   r   rA   r   r   s   & r&   r   $HTMLTokenizer.rawtextEndTagOpenState  s    {{!<  D( 44DJ
  OO""FJ|,Dfd#STKKd#**DJr(   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r    r   r   r   r:   r
   r   r   r   r   ro   r   r   r-   r;   rA   r   r   s   &  r&   r   $HTMLTokenizer.rawtextEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#**DJr(   c                   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# VR8X  d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )	r   r5   r   r*   rP   r,   z<!rL   T)r   r:   r   scriptDataEndTagOpenStater   r-   r;   r   scriptDataEscapeStartStaterA   r   r   s   & r&   r   )HTMLTokenizer.scriptDataLessThanSignState,  s    {{!3;#%D 77DJ  S[OO""FJ|,Dfd#ST88DJ
  OO""FJ|,Dfc#RSKKd#--DJr(   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r:   r   r   scriptDataEndTagNameStater   r-   r;   r   rA   r   r   s   & r&   r   'HTMLTokenizer.scriptDataEndTagOpenState:  s    {{!<  D( 77DJ
  OO""FJ|,Dfd#STKKd#--DJr(   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r    r   r   r   r:   r
   r   r   r   r   ro   r   r   r-   r;   rA   r   r   s   &  r&   r   'HTMLTokenizer.scriptDataEndTagNameStateE  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#--DJr(   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R# V P                   P                  V4       V P                  V n        R# -r*   rP   r,   T)	r   r:   r-   r;   r   scriptDataEscapeStartDashStater   rA   r   r   s   & r&   r   (HTMLTokenizer.scriptDataEscapeStartStatea  q    {{!3;OO""FJ|,Dfc#RS<<DJ  KKd#--DJr(   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R# V P                   P                  V4       V P                  V n        R# r   )	r   r:   r-   r;   r   scriptDataEscapedDashDashStater   rA   r   r   s   & r&   r   ,HTMLTokenizer.scriptDataEscapeStartDashStatek  r   r(   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R	# VR8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   V P                  V n        R	# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# )r   r*   rP   r,   rL   rr   r+   rs   r8   T)rL   r   rr   )r   r:   r-   r;   r   scriptDataEscapedDashStater   "scriptDataEscapedLessThanSignStater   r   rw   rx   s   &  r&   scriptDataEscapedState$HTMLTokenizer.scriptDataEscapedStateu  s   {{!3;OO""FJ|,Dfc#RS88DJ  S[@@DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[DJ
  KK**+?@EOO""FJ|,Df$(L$2 3r(   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R	# VR8X  d   V P                  V n        R	# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R	# V\        8X  d   V P                  V n        R	# V P                  P                  R\        R,          RV/4       V P                  V n        R	# )
r   r*   rP   r,   rL   rr   r+   rs   r8   T)r   r:   r-   r;   r   r   r   r   r   r   r   r   s   & r&   r   (HTMLTokenizer.scriptDataEscapedDashState  s   {{!3;OO""FJ|,Dfc#RS<<DJ  S[@@DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 744DJ  S[DJ  OO""FJ|,Dfd#ST44DJr(   c                   V P                   P                  4       pVR 8X  d-   V P                  P                  R\        R,          RR /4       R
# VR8X  d   V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V\        8X  d   V P                  V n        R
# V P                  P                  R\        R,          RV/4       V P                  V n        R
# )r   r*   rP   r,   rL   r   rr   r+   rs   r8   T)r   r:   r-   r;   r   r   r   r   r   r   r   r   s   & r&   r   ,HTMLTokenizer.scriptDataEscapedDashDashState  sJ   {{!3;OO""FJ|,Dfc#RS" ! S[@@DJ  S[OO""FJ|,Dfc#RS--DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 744DJ  S[DJ  OO""FJ|,Dfd#ST44DJr(   c                   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V\
        9   dK   V P                  P                  R\        R,          RRV,           /4       Wn        V P                  V n        R# V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r:   r    scriptDataEscapedEndTagOpenStater   r   r-   r;   r    scriptDataDoubleEscapeStartStaterA   r   r   s   & r&   r   0HTMLTokenizer.scriptDataEscapedLessThanSignState  s    {{!3;#%D >>DJ  \!OO""FJ|,DfcTXj#YZ#' >>DJ
  OO""FJ|,Dfc#RSKKd#44DJr(   c                .   V P                   P                  4       pV\        9   d   Wn        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r:   r   r    scriptDataEscapedEndTagNameStater   r-   r;   r   rA   r   r   s   & r&   r   .HTMLTokenizer.scriptDataEscapedEndTagOpenState  sx    {{!<#' >>DJ
  OO""FJ|,Dfd#STKKd#44DJr(   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r    r   r   r   r:   r
   r   r   r   r   ro   r   r   r-   r;   rA   r   r   s   &  r&   r   .HTMLTokenizer.scriptDataEscapedEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#44DJr(   c                H   V P                   P                  4       pV\        \        R4      ,          9   dq   V P                  P                  R\        R,          RV/4       V P                  P                  4       R8X  d   V P                  V n
        R# V P                  V n
         R# V\        9   dF   V P                  P                  R\        R,          RV/4       V ;P                  V,          un        R# V P                   P                  V4       V P                  V n
        R# r   r*   rP   r,   scriptT)r   r   )r   r:   r
   r>   r-   r;   r   r   r   scriptDataDoubleEscapedStater   r   r   rA   r   s   & r&   r   .HTMLTokenizer.scriptDataDoubleEscapeStartState  s    {{!Oi
&;;<OO""FJ|,Dfd#ST##))+x7!>>
  "88
  \!OO""FJ|,Dfd#ST  D(   KKd#44DJr(   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R
# V\        8X  d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  P                  R\        R,          RV/4       R
# r   r*   rP   r,   rL   rr   r+   rs   r8   eof-in-script-in-scriptT)
r   r:   r-   r;   r    scriptDataDoubleEscapedDashStater   (scriptDataDoubleEscapedLessThanSignStater   r   r   s   & r&   r   *HTMLTokenizer.scriptDataDoubleEscapedState  sH   {{!3;OO""FJ|,Dfc#RS>>DJ  S[OO""FJ|,Dfc#RSFFDJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#STr(   c                ,   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R
# V\        8X  d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  P                  R\        R,          RV/4       V P                  V n        R
# r   )r   r:   r-   r;   r   $scriptDataDoubleEscapedDashDashStater   r   r   r   r   r   s   & r&   r   .HTMLTokenizer.scriptDataDoubleEscapedDashState  sb   {{!3;OO""FJ|,Dfc#RSBBDJ" ! S[OO""FJ|,Dfc#RSFFDJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7::DJ  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#ST::DJr(   c                   V P                   P                  4       pVR 8X  d-   V P                  P                  R\        R,          RR /4       R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P
                  V n        R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       V P                  V n        R# V\        8X  d>   V P                  P                  R\        R,          RR
/4       V P                  V n        R# V P                  P                  R\        R,          RV/4       V P                  V n        R# )r   r*   rP   r,   rL   r   rr   r+   rs   r8   r   T)r   r:   r-   r;   r   r   r   r   r   r   r   r   s   & r&   r   2HTMLTokenizer.scriptDataDoubleEscapedDashDashState%  s   {{!3;OO""FJ|,Dfc#RS( ' S[OO""FJ|,Dfc#RSFFDJ" ! S[OO""FJ|,Dfc#RS--DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7::DJ  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#ST::DJr(   c                (   V P                   P                  4       pVR 8X  dE   V P                  P                  R\        R,          RR /4       RV n        V P                  V n        R# V P                   P                  V4       V P                  V n        R# )r   r*   rP   r,   r5   T)
r   r:   r-   r;   r   r   scriptDataDoubleEscapeEndStater   rA   r   r   s   & r&   r   6HTMLTokenizer.scriptDataDoubleEscapedLessThanSignState>  sy    {{!3;OO""FJ|,Dfc#RS#%D <<DJ  KKd#::DJr(   c                H   V P                   P                  4       pV\        \        R4      ,          9   dq   V P                  P                  R\        R,          RV/4       V P                  P                  4       R8X  d   V P                  V n
        R# V P                  V n
         R# V\        9   dF   V P                  P                  R\        R,          RV/4       V ;P                  V,          un        R# V P                   P                  V4       V P                  V n
        R# r   )r   r:   r
   r>   r-   r;   r   r   r   r   r   r   r   rA   r   s   & r&   r   ,HTMLTokenizer.scriptDataDoubleEscapeEndStateI  s    {{!Oi
&;;<OO""FJ|,Dfd#ST##))+x7!88
  ">>
  \!OO""FJ|,Dfd#ST  D(   KKd#::DJr(   c                   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # V\        9   d8   V P
                  R,          P                  VR.4       V P                  V n        R # VR8X  d   V P                  4        R # VR8X  d   V P                  V n        R # VR9   db   V P                  P                  R\        R,          RR/4       V P
                  R,          P                  VR.4       V P                  V n        R # VR8X  db   V P                  P                  R\        R,          RR	/4       V P
                  R,          P                  R
R.4       V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P
                  R,          P                  VR.4       V P                  V n        R # )Tr,   r5   r   r   r*   r+   #invalid-character-in-attribute-namerr   rs   r8   z#expected-attribute-name-but-got-eof)'"rN   rL   )r   r:   r
   rw   r   r    r;   attributeNameStater   ro   r   r-   r   r   r   r   s   & r&   r   &HTMLTokenizer.beforeAttributeNameStateY  s   {{!?"KK""?D92 1 \!f%,,dBZ800DJ, + S[!!#( ' S[66DJ$ # ))OO""FJ|,Df$I$K Lf%,,dBZ800DJ  XOO""FJ|,D$*,?$A Bf%,,h^<00DJ  S[OO""FJ|,Df$I$K LDJ  f%,,dBZ800DJr(   c                   V P                   P                  4       pR pRpVR8X  d   V P                  V n        EMV\        9   dW   V P
                  R,          R,          ^ ;;,          VV P                   P                  \        R 4      ,           ,          uu&   RpEMzVR8X  d   R pEMoV\        9   d   V P                  V n        EMQVR8X  d   V P                  V n        EM7VR8X  d[   V P                  P                  R\        R,          RR	/4       V P
                  R,          R,          ^ ;;,          R
,          uu&   RpMVR9   d[   V P                  P                  R\        R,          RR/4       V P
                  R,          R,          ^ ;;,          V,          uu&   RpMuV\        J d=   V P                  P                  R\        R,          RR/4       V P                  V n        M/V P
                  R,          R,          ^ ;;,          V,          uu&   RpV'       d   V P
                  R,          R,          ^ ,          P                  \         4      V P
                  R,          R,          ^ &   V P
                  R,          RR  FW  w  rEV P
                  R,          R,          ^ ,          V8X  g   K-  V P                  P                  R\        R,          RR/4        M	  V'       d   V P#                  4        R # )TFrN   r,   r   r   rr   r*   r+   rs   r8   r   zeof-in-attribute-nameNzduplicate-attributerQ   r   r   rL   )r   r:   beforeAttributeValueStater   r   r    rw   r
   afterAttributeNameStater   r-   r;   r   r   r   rj   r   ro   )r#   r,   leavingThisState	emitTokenrf   _s   &     r&   r    HTMLTokenizer.attributeNameStatew  s}   {{!	3;77DJ\!f%b)!,&&|T:1; ;,$S[ I_$55DJS[66DJXOO""FJ|,D$*,?$A Bf%b)!,8,$_$OO""FJ|,D$*$I$K L f%b)!,4,$S[OO""FJ|,D$*,C$E FDJf%b)!,4,$
 !!&)"-a0::;KL f%b)!,,,V4Sb9$$V,R03t;OO**FJ|4Lf,A,C D	 : %%'r(   c                J   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # VR8X  d   V P                  V n        R # VR8X  d   V P                  4        R # V\        9   d8   V P                  R,          P                  VR.4       V P                  V n        R # VR8X  d   V P                  V n        R # VR8X  db   V P                  P                  R\        R,          RR	/4       V P                  R,          P                  R
R.4       V P                  V n        R # VR9   db   V P                  P                  R\        R,          RR/4       V P                  R,          P                  VR.4       V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P                  R,          P                  VR.4       V P                  V n        R # )TrN   r   r,   r5   r   rr   r*   r+   rs   r8   z&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eofr   )r   r:   r
   rw   r   r   ro   r   r    r;   r   r   r-   r   r   r   r   s   & r&   r   %HTMLTokenizer.afterAttributeNameState  s   {{!?"KK""?D96 5 S[77DJ2 1 S[!!#. - \!f%,,dBZ800DJ( ' S[66DJ$ # XOO""FJ|,D$*,?$A Bf%,,h^<00DJ  _$OO""FJ|,Df$L$N Of%,,dBZ800DJ  S[OO""FJ|,Df$E$G HDJ  f%,,dBZ800DJr(   c                   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # VR8X  d   V P                  V n        R # VR8X  d/   V P                  V n        V P                   P                  V4       R # VR8X  d   V P                  V n        R # VR8X  d=   V P                  P                  R\        R,          RR/4       V P                  4        R # VR	8X  dk   V P                  P                  R\        R,          RR
/4       V P                  R,          R,          ^;;,          R,          uu&   V P                  V n        R # VR9   dk   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          V,          uu&   V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P                  R,          R,          ^;;,          V,          uu&   V P                  V n        R # )Tr   rK   r   r   r*   r+   r,   z.expected-attribute-value-but-got-right-bracketrr   rs   r8   z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eofrQ   )rN   rL   `)r   r:   r
   rw   attributeValueDoubleQuotedStater   attributeValueUnQuotedStaterA   attributeValueSingleQuotedStater-   r;   r   ro   r    r   r   r   s   & r&   r   'HTMLTokenizer.beforeAttributeValueState  s   {{!?"KK""?D9: 9 T\==DJ6 5 S[99DJKKd#0 / S[==DJ, + S[OO""FJ|,Df$T$V W!!#$ # XOO""FJ|,D$*,?$A Bf%b)!,8,99DJ  _$OO""FJ|,Df$H$J Kf%b)!,4,99DJ  S[OO""FJ|,Df$J$L MDJ  f%b)!,4,99DJr(   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  d   V P	                  R 4       R	# VR8X  dZ   V P
                  P                  R\        R,          RR/4       V P                  R,          R
,          ^;;,          R,          uu&   R	# V\        J d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R	# V P                  R,          R
,          ^;;,          VV P                   P                  R4      ,           ,          uu&   R	# )r   rK   rr   r*   r+   r,   rs   r8   z#eof-in-attribute-value-double-quoteTrQ   )r   rK   rr   r   r:   afterAttributeValueStater   rc   r-   r;   r   r    r   r   rw   r   s   & r&   r  -HTMLTokenizer.attributeValueDoubleQuotedState  s   {{!4<66DJ  S[))#.  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$I$K LDJ  f%b)!,&&'<=1> >,r(   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  d   V P	                  R 4       R	# VR8X  dZ   V P
                  P                  R\        R,          RR/4       V P                  R,          R
,          ^;;,          R,          uu&   R	# V\        J d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R	# V P                  R,          R
,          ^;;,          VV P                   P                  R4      ,           ,          uu&   R	# )r   rK   rr   r*   r+   r,   rs   r8   z#eof-in-attribute-value-single-quoteTrQ   )r   rK   rr   r  r   s   & r&   r  -HTMLTokenizer.attributeValueSingleQuotedState  s   {{!3;66DJ  S[))#.  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$I$K LDJ  f%b)!,&&';<1= =,r(   c           	        V P                   P                  4       pV\        9   d   V P                  V n        R
# VR 8X  d   V P                  R4       R
# VR8X  d   V P                  4        R
# VR9   dZ   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          V,          uu&   R
# VR8X  dZ   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          R,          uu&   R
# V\        J d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  R,          R,          ^;;,          WP                   P                  \        R4      \        ,          4      ,           ,          uu&   R
# )rK   r   r*   r+   r,   z0unexpected-character-in-unquoted-attribute-valuerr   rs   r8   z eof-in-attribute-value-no-quotesT)r   r   rN   rL   r  rQ   )rK   r   r   r   rN   rL   r  rr   )r   r:   r
   r   r   rc   ro   r-   r;   r   r    r   r   rw   r>   r   s   & r&   r  )HTMLTokenizer.attributeValueUnQuotedState  s   {{!?"66DJ( ' S[))#.$ # S[!!#   ..OO""FJ|,Df$V$X Yf%b)!,4,  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$F$H IDJ  f%b)!,{{7M7MGH?Z8\ 1\ \,r(   c                L   V P                   P                  4       pV\        9   d   V P                  V n        R# VR 8X  d   V P                  4        R# VR8X  d   V P                  V n        R# V\        J dY   V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )r   r   r*   r+   r,   z$unexpected-EOF-after-attribute-valuez*unexpected-character-after-attribute-valueT)r   r:   r
   r   r   ro   r   r   r-   r;   r   rA   r   r   s   & r&   r  &HTMLTokenizer.afterAttributeValueState.  s    {{!?"66DJ  S[!!#  S[66DJ  S[OO""FJ|,Df$J$L MKKd#DJ 	 OO""FJ|,Df$P$R SKKd#66DJr(   c                   V P                   P                  4       pVR 8X  d"   RV P                  R&   V P                  4        R# V\        J dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n
        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n
        R# )r   Tri   r*   r+   r,   z#unexpected-EOF-after-solidus-in-tagz)unexpected-character-after-solidus-in-tag)r   r:   r    ro   r   r-   r;   r   rA   r   r   r   r   s   & r&   r   &HTMLTokenizer.selfClosingStartTagStateB  s    {{!3;/3Dm,!!#  S[OO""FJ|,D$*$I$K L KKd#DJ 	 OO""FJ|,Df$O$Q RKKd#66DJr(   c                
   V P                   P                  R 4      pVP                  RR4      pV P                  P	                  R\
        R,          RV/4       V P                   P                  4        V P                  V n        R# )r   rr   r8   r*   Commentr,   T)	r   rw   replacer-   r;   r   r:   r   r   r   s   & r&   r   HTMLTokenizer.bogusCommentStateT  sk     {{%%c*||Hh/Z	*FD9	;
 	^^
r(   c           
        V P                   P                  4       .pVR,          R8X  dc   VP                  V P                   P                  4       4       VR,          R8X  d*   R\        R,          RR/V n        V P
                  V n        R# EMVR,          R9   d   RpR F>  pVP                  V P                   P                  4       4       VR,          V9  g   K<  Rp M	  V'       d0   R\        R,          R	RR
RRRRR/V n        V P                  V n        R# MVR,          R8X  d   V P                  e   V P                  P                  P                  '       d   V P                  P                  P                  R,          P                  V P                  P                  P                  8w  db   RpR F>  pVP                  V P                   P                  4       4       VR,          V8w  g   K<  Rp M	  V'       d   V P                  V n        R# V P                  P                  R\        R,          RR/4       V'       d,   V P                   P                  VP!                  4       4       K3  V P"                  V n        R# )   r   r*   r  r,   r5   TFDoctyperf   publicIdNsystemIdcorrect[r+   zexpected-dashes-or-doctyperQ   )dD))oOrF   CtTyYpPeE)r&  r"  Ar)  r3  r   )r   r:   r;   r   r    commentStartStater   doctypeStater   treeopenElements	namespacedefaultNamespacecdataSectionStater-   rA   r/   r   )r#   rE   matchedexpecteds   &   r&   r   (HTMLTokenizer.markupDeclarationOpenStatec  s   [[%%'(	R=CT[[--/0}#%+Z	-BFB$O!!33
 $ r]j(GA  !1!1!34R=0#GA %+Z	-B%+R%/z4%.%6! "..
  ms"kk%kk+++kk++B/99T[[=M=M=^=^^G:  !1!1!34R=H,#G	 ;
 !33

<(@& < > 	? KKimmo.++
r(   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R
# VR8X  dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P                  V n        R
# V P                  R;;,          V,          uu&   V P                  V n        R
# )r   rr   r*   r+   r,   rs   r8   r   incorrect-commenteof-in-commentT)r   r:   commentStartDashStater   r-   r;   r   r    r   r   commentStater   s   & r&   r4  HTMLTokenizer.commentStartState  sN   {{!3;33DJ$ # XOO""FJ|,D$*,?$A Bf%1%  S[OO""FJ|,Df$7$9 :OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7OO""4#4#45DJ  f%-%**DJr(   c                *   V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R
# VR8X  dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P                  V n        R
# V P                  R;;,          R V,           ,          uu&   V P                  V n        R
# )r   rr   r*   r+   r,   rs      -�r   r?  r@  T)r   r:   commentEndStater   r-   r;   r   r    r   r   rB  r   s   & r&   rA  #HTMLTokenizer.commentStartDashState  sR   {{!3;--DJ$ # XOO""FJ|,D$*,?$A Bf%2%  S[OO""FJ|,Df$7$9 :OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7OO""4#4#45DJ  f%t3%**DJr(   c                h   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          VV P                   P                  R	4      ,           ,          uu&   R# )
r   rr   r*   r+   r,   rs   r8   r@  T)r   rr   )r   r:   commentEndDashStater   r-   r;   r   r    r   r   rw   r   s   & r&   rB  HTMLTokenizer.commentState  s   {{!3;11DJ  XOO""FJ|,D$*,?$A Bf%1%  S[OO""FJ|,D$*,<$> ?OO""4#4#45DJ  f%&&7*8 8%r(   c                z   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          R V,           ,          uu&   V P                  V n        R# )	r   rr   r*   r+   r,   rs   rE  zeof-in-comment-end-dashT)r   r:   rF  r   r-   r;   r   r    rB  r   r   r   s   & r&   rI  !HTMLTokenizer.commentEndDashState  s
   {{!3;--DJ  XOO""FJ|,D$*,?$A Bf%2%**DJ  S[OO""FJ|,Df$=$? @OO""4#4#45DJ  f%t3%**DJr(   c                D   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R# VR	8X  dL   V P                  P                  R\        R,          RR
/4       V P                  R;;,          V,          uu&   R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P
                  V n        R# V P                  P                  R\        R,          RR/4       V P                  R;;,          RV,           ,          uu&   V P                  V n        R# )r   rr   r*   r+   r,   rs   u   --�r   z,unexpected-bang-after-double-dash-in-commentr   z,unexpected-dash-after-double-dash-in-commentzeof-in-comment-double-dashzunexpected-char-in-commentz--T)r   r:   r-   r;   r    r   r   r   rB  commentEndBangStater   r   s   & r&   rF  HTMLTokenizer.commentEndState  s   {{!3;OO""4#4#45DJ2 1 XOO""FJ|,D$*,?$A Bf%3%**DJ( ' S[OO""FJ|,Df$R$T U11DJ   S[OO""FJ|,Df$R$T Uf%-%  S[OO""FJ|,Df$@$B COO""4#4#45DJ 	 OO""FJ|,Df$@$B Cf%4%**DJr(   c                6   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R
# VR8X  d3   V P                  R;;,          R,          uu&   V P                  V n        R
# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P
                  V n        R
# V P                  R;;,          RV,           ,          uu&   V P                  V n        R
# )r   r   r,   z--!rr   r*   r+   rs   u   --!�zeof-in-comment-end-bang-stateT)r   r:   r-   r;   r    r   r   rI  r   rB  r   r   s   & r&   rN  !HTMLTokenizer.commentEndBangState  sR   {{!3;OO""4#4#45DJ" ! S[f%.%11DJ  XOO""FJ|,D$*,?$A Bf%4%**DJ  S[OO""FJ|,Df$C$E FOO""4#4#45DJ  f%5%**DJr(   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# V\
        J dr   V P                  P                  R \        R,          RR/4       RV P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# )r*   r+   r,   !expected-doctype-name-but-got-eofFr  zneed-space-after-doctypeT)r   r:   r
   beforeDoctypeNameStater   r   r-   r;   r   r    r   rA   r   s   & r&   r5  HTMLTokenizer.doctypeState  s    {{!?"44DJ  S[OO""FJ|,Df$G$I J+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$>$@ AKKd#44DJr(   c                    V P                   P                  4       pV\        9   d    R# VR 8X  dr   V P                  P	                  R\
        R,          RR/4       RV P                  R&   V P                  P	                  V P                  4       V P                  V n        R# VR8X  dM   V P                  P	                  R\
        R,          RR/4       R	V P                  R
&   V P                  V n        R# V\        J dr   V P                  P	                  R\
        R,          RR/4       RV P                  R&   V P                  P	                  V P                  4       V P                  V n        R# WP                  R
&   V P                  V n        R# )r   r*   r+   r,   z+expected-doctype-name-but-got-right-bracketFr  rr   rs   r8   rf   rS  T)r   r:   r
   r-   r;   r   r    r   r   doctypeNameStater   r   s   & r&   rT  $HTMLTokenizer.beforeDoctypeNameState*  sh   {{!?"* ) S[OO""FJ|,Df$Q$S T+0Di(OO""4#4#45DJ  XOO""FJ|,D$*,?$A B(0Df%..DJ  S[OO""FJ|,Df$G$I J+0Di(OO""4#4#45DJ  )-f%..DJr(   c                    V P                   P                  4       pV\        9   dG   V P                  R ,          P	                  \
        4      V P                  R &   V P                  V n        R# VR8X  dl   V P                  R ,          P	                  \
        4      V P                  R &   V P                  P                  V P                  4       V P                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R ;;,          R,          uu&   V P                  V n        R# V\        J d   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  R ,          P	                  \
        4      V P                  R &   V P                  P                  V P                  4       V P                  V n        R# V P                  R ;;,          V,          uu&   R# )rf   r   rr   r*   r+   r,   rs   r8   zeof-in-doctype-nameFr  T)r   r:   r
   r    rj   r   afterDoctypeNameStater   r-   r;   r   r   rW  r   r   s   & r&   rW  HTMLTokenizer.doctypeNameStateD  s   {{!?"(,(9(9&(A(K(KL\(]Df%33DJ& % S[(,(9(9&(A(K(KL\(]Df%OO""4#4#45DJ  XOO""FJ|,D$*,?$A Bf%1%..DJ  S[OO""FJ|,Df$9$; <+0Di((,(9(9&(A(K(KL\(]Df%OO""4#4#45DJ  f%-%r(   c           	        V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# V\        J d   RV P
                  R&   V P                   P                  V4       V P                  P	                  R\        R,          RR/4       V P                  P	                  V P
                  4       V P                  V n        R# VR
9   dL   RpR F'  pV P                   P                  4       pW9  g   K%  Rp M	  V'       d   V P                  V n        R# MQVR9   dK   RpR F'  pV P                   P                  4       pW9  g   K%  Rp M	  V'       d   V P                  V n        R# V P                   P                  V4       V P                  P	                  R\        R,          RRR	RV//4       RV P
                  R&   V P                  V n        R# )r   Fr  r*   r+   r,   eof-in-doctypeTz*expected-space-or-right-bracket-in-doctyper6   r-  ))uU)bB)lL)iIr%  sS)r*  rf  r'  r0  )mM)r   r:   r
   r-   r;   r    r   r   r   rA   r   afterDoctypePublicKeywordStateafterDoctypeSystemKeywordStatebogusDoctypeState)r#   r,   r;  r<  s   &   r&   rZ  #HTMLTokenizer.afterDoctypeNameState]  s   {{!?"\ [ S[OO""4#4#45DJV U S[+0Di(KKd#OO""FJ|,Df$4$6 7OO""4#4#45DJH E z!!9H;;++-D+"'!9 !%!D!DDJ  #!9H;;++-D+"'!9 !%!D!DDJ KKd#OO""FJ|,Df$PR\%+TN$4 5 ,1Di(//DJr(   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR	9   dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P                   P                  V4       V P                  V n        R# 
r   r*   r+   r,   unexpected-char-in-doctyper]  Fr  T)r   r   )r   r:   r
   "beforeDoctypePublicIdentifierStater   r-   r;   r   rA   r   r    r   r   s   & r&   rk  ,HTMLTokenizer.afterDoctypePublicKeywordState     {{!?"@@DJ  ZOO""FJ|,Df$@$B CKKd#@@DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  KKd#@@DJr(   c                t   V P                   P                  4       pV\        9   d    R# VR 8X  d#   RV P                  R&   V P                  V n        R# VR8X  d#   RV P                  R&   V P                  V n        R# VR8X  dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  V n        R# )r   r5   r  r   r   r*   r+   r,   unexpected-end-of-doctypeFr  r]  rq  T)r   r:   r
   r    (doctypePublicIdentifierDoubleQuotedStater   (doctypePublicIdentifierSingleQuotedStater-   r;   r   r   r   rm  r   s   & r&   rr  0HTMLTokenizer.beforeDoctypePublicIdentifierState  s   {{!?"0 / T\,.Dj)FFDJ* ) S[,.Dj)FFDJ$ # S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr(   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rr   r*   r+   r,   rs   r  r8   r   rv  Fr  r]  T
r   r:   !afterDoctypePublicIdentifierStater   r-   r;   r   r    r   r   r   s   & r&   rw  6HTMLTokenizer.doctypePublicIdentifierDoubleQuotedState  c   {{!4<??DJ& % XOO""FJ|,D$*,?$A Bj)X5)  S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  j)T1)r(   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rr   r*   r+   r,   rs   r  r8   r   rv  Fr  r]  Tr{  r   s   & r&   rx  6HTMLTokenizer.doctypePublicIdentifierSingleQuotedState  c   {{!3;??DJ& % XOO""FJ|,D$*,?$A Bj)X5)  S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  j)T1)r(   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR 8X  d9   V P
                  P                  V P                  4       V P                  V n        R# VR8X  dM   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P                  V n        R# VR8X  dM   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR	/4       R
V P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P
                  P                  R\        R,          RR/4       R
V P                  R&   V P                  V n        R# )r   r   r*   r+   r,   rq  r5   r  r   r]  Fr  T)r   r:   r
   -betweenDoctypePublicAndSystemIdentifiersStater   r-   r;   r    r   r   (doctypeSystemIdentifierDoubleQuotedState(doctypeSystemIdentifierSingleQuotedStater   rm  r   s   & r&   r|  /HTMLTokenizer.afterDoctypePublicIdentifierState  s   {{!?"KKDJ2 1 S[OO""4#4#45DJ, + S[OO""FJ|,Df$@$B C,.Dj)FFDJ" ! S[OO""FJ|,Df$@$B C,.Dj)FFDJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr(   c                   V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# VR8X  d#   RV P
                  R&   V P                  V n        R# VR8X  d#   RV P
                  R&   V P                  V n        R# V\        8X  dr   V P                  P	                  R\        R,          RR/4       R	V P
                  R
&   V P                  P	                  V P
                  4       V P                  V n        R# V P                  P	                  R\        R,          RR/4       R	V P
                  R
&   V P                  V n        R# )r   r   r5   r  r   r*   r+   r,   r]  Fr  rq  T)r   r:   r
   r-   r;   r    r   r   r  r  r   r   rm  r   s   & r&   r  ;HTMLTokenizer.betweenDoctypePublicAndSystemIdentifiersState  sZ   {{!?"* ) S[OO""4#4#45DJ$ # S[,.Dj)FFDJ  S[,.Dj)FFDJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr(   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR	9   dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P                   P                  V4       V P                  V n        R# rp  )r   r:   r
   "beforeDoctypeSystemIdentifierStater   r-   r;   r   rA   r   r    r   r   s   & r&   rl  ,HTMLTokenizer.afterDoctypeSystemKeywordState)  rt  r(   c                t   V P                   P                  4       pV\        9   d    R# VR 8X  d#   RV P                  R&   V P                  V n        R# VR8X  d#   RV P                  R&   V P                  V n        R# VR8X  dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  V n        R# )r   r5   r  r   r   r*   r+   r,   rq  Fr  r]  T)r   r:   r
   r    r  r   r  r-   r;   r   r   r   rm  r   s   & r&   r  0HTMLTokenizer.beforeDoctypeSystemIdentifierState=  s   {{!?"0 / T\,.Dj)FFDJ* ) S[,.Dj)FFDJ$ # S[OO""FJ|,Df$@$B C+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr(   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rr   r*   r+   r,   rs   r  r8   r   rv  Fr  r]  T
r   r:   !afterDoctypeSystemIdentifierStater   r-   r;   r   r    r   r   r   s   & r&   r  6HTMLTokenizer.doctypeSystemIdentifierDoubleQuotedStateZ  r~  r(   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rr   r*   r+   r,   rs   r  r8   r   rv  Fr  r]  Tr  r   s   & r&   r  6HTMLTokenizer.doctypeSystemIdentifierSingleQuotedStater  r  r(   c                @   V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# V\        J dr   V P                  P	                  R\        R,          RR/4       RV P
                  R&   V P                  P	                  V P
                  4       V P                  V n        R# V P                  P	                  R\        R,          RR/4       V P                  V n        R# )	r   r*   r+   r,   r]  Fr  rq  T)r   r:   r
   r-   r;   r    r   r   r   r   rm  r   s   & r&   r  /HTMLTokenizer.afterDoctypeSystemIdentifierState  s    {{!?"  S[OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ
  OO""FJ|,Df$@$B C//DJr(   c                t   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R# V\        J dT   V P                   P                  V4       V P                  P                  V P                  4       V P
                  V n        R#  R# )r   T)	r   r:   r-   r;   r    r   r   r   rA   r   s   & r&   rm  HTMLTokenizer.bogusDoctypeState  s    {{!3;OO""4#4#45DJ  S[KKd#OO""4#4#45DJ  r(   c                   . p VP                  V P                  P                  R4      4       VP                  V P                  P                  R4      4       V P                  P                  4       pV\        8X  d   M=VR8X  g   Q hVR,          RR R8X  d   VR,          RR VR&   MVP                  V4       K  RP                  V4      pVP                  R4      pV^ 8  dO   \        V4       F-  pV P                  P                  R\        R,          R	R
/4       K/  	  VP                  RR4      pV'       d+   V P                  P                  R\        R,          R	V/4       V P                  V n        R # )T]r   Nz]]r5   rr   r*   r+   r,   rs   r8   rP   rQ   )r;   r   rw   r:   r   r=   countranger-   r   r  r   r   )r#   r,   r:   	nullCountr   s   &    r&   r:  HTMLTokenizer.cdataSectionState  s=   KK..s34KK..s34;;##%Ds{s{"{8BC=D(#Bx}DHKK%wwt}JJx(	q=9%&&
<0H(.0C(E F & <<(3DOO""FJ|,D$*D$2 3^^
r(   )	r    r   r   r   r   r   r   r   r-   )N)NF)Q__name__
__module____qualname____firstlineno____doc__r"   r2   rH   r`   rc   ro   r   ru   r   r   r   r   r   rv   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   r   r   r4  rA  rB  rI  rF  rN  r5  rT  rW  rZ  rk  rr  rw  rx  r|  r  rl  r  r  r  r  rm  r:  __static_attributes____classdictcell____classcell__)r%   __classdict__s   @@r&   r   r      s    
.0 FPNT`H
$8:
:
$$!F0,		8		8	8((,	8 *.2	 <4l@ D&&2($+Z..$&>."421f(:00<4(:00& r(   r   N)      ) 
__future__r   r   r   sixr   r?   collectionsr   r   sysr	   	constantsr
   r   r   r   r   r   r   r   r   r   _inputstreamr   _trier   rT   dictrk   objectr    r(   r&   <module>r     sX    B B  *  &  5 - - 0 , ) H~6LLlF lr(   