Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ÝPf$+ã@s¸ddlmZmZmZddlmZddlmZddl m Z ddl m Z ddl m Z m Z ddl mZmZmZdd l mZmZdd l mZdd lmZdd lmZee ƒZGd d„deƒZdS)é)Úabsolute_importÚdivisionÚunicode_literals)Úunichr)Údequeé)ÚspaceCharacters)Úentities)Ú asciiLettersÚasciiUpper2Lower)ÚdigitsÚ hexDigitsÚEOF)Ú tokenTypesÚ tagTokenTypes)ÚreplacementCharacters)ÚHTMLInputStream)ÚTriecsdeZdZdZd–‡fdd„ Zdd„Zdd„Zd—d d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Zdd?„Z!d@dA„Z"dBdC„Z#dDdE„Z$dFdG„Z%dHdI„Z&dJdK„Z'dLdM„Z(dNdO„Z)dPdQ„Z*dRdS„Z+dTdU„Z,dVdW„Z-dXdY„Z.dZd[„Z/d\d]„Z0d^d_„Z1d`da„Z2dbdc„Z3ddde„Z4dfdg„Z5dhdi„Z6djdk„Z7dldm„Z8dndo„Z9dpdq„Z:drds„Z;dtdu„Zdzd{„Z?d|d}„Z@d~d„ZAd€d�„ZBd‚dƒ„ZCd„d…„ZDd†d‡„ZEdˆd‰„ZFdŠd‹„ZGdŒd�„ZHdŽd�„ZId�d‘„ZJd’d“„ZKd”d•„ZL‡ZMS)˜Ú HTMLTokenizera  This 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. Nc sFt|f|Ž|_||_d|_g|_|j|_d|_d|_t t |ƒj ƒdS)NF) rÚstreamÚparserZ escapeFlagZ lastFourCharsÚ dataStateÚstateÚescapeÚ currentTokenÚsuperrÚ__init__)ÚselfrrÚkwargs)Ú __class__©ú /usr/lib/python3.6/_tokenizer.pyr"szHTMLTokenizer.__init__ccs\tgƒ|_xL|jƒrVx&|jjr:td|jjjdƒdœVqWx|jrR|jjƒVq>Wq WdS)zä This 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. Ú ParseErrorr)ÚtypeÚdataN)rÚ tokenQueuerrÚerrorsrÚpopÚpopleft)rr r r!Ú__iter__1s    zHTMLTokenizer.__iter__c %Cs(t}d}|rt}d}g}|jjƒ}x(||krJ|tk rJ|j|ƒ|jjƒ}q$Wtdj|ƒ|ƒ}|tkrŒt|}|j jt ddd|idœƒ�nld|kožd kns¬|d krÐd }|j jt ddd|idœƒ�n(d |koâd kn�s�d|koüdkn�s�d|k�odkn�s�d|k�o4dkn�s�|t ddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d g#ƒk�r¬|j jt ddd|idœƒy t |ƒ}Wn>t k �rö|d6}t d|d?Bƒt d7|d8@Bƒ}YnX|d9k�r$|j jt dd:d;œƒ|jj|ƒ|S)r"z'expected-tag-name-but-got-right-bracket)r#r$rJz<>ú?z'expected-tag-name-but-got-question-markzexpected-tag-namerDT)rr6ÚmarkupDeclarationOpenStaterÚcloseTagOpenStater rrÚ tagNameStater%r7rr=ÚbogusCommentState)rr$r r r!r]is6               zHTMLTokenizer.tagOpenStatecCsÊ|jjƒ}|tkr0td|gddœ|_|j|_n–|dkrX|jjtdddœƒ|j |_nn|t kr–|jjtdddœƒ|jjtd d dœƒ|j |_n0|jjtdd d |id œƒ|jj |ƒ|j |_dS)NrVF)r#rUr$rWrjr"z*expected-closing-tag-but-got-right-bracket)r#r$z expected-closing-tag-but-got-eofrJz|tkr¸|jjtdd dœƒ|j |_n|jjtd|dœƒd S) Nr|rJ)r#r$rDr[r"zinvalid-codepointu�zeof-in-script-in-scriptT) rr6r%r7rÚ scriptDataDoubleEscapedDashStaterÚ(scriptDataDoubleEscapedLessThanSignStaterr)rr$r r r!r†ës$          z*HTMLTokenizer.scriptDataDoubleEscapedStatecCsâ|jjƒ}|dkr2|jjtdddœƒ|j|_n¬|dkrZ|jjtdddœƒ|j|_n„|dkr˜|jjtdddœƒ|jjtdddœƒ|j|_nF|t krÀ|jjtdd dœƒ|j |_n|jjtd|dœƒ|j|_d S) Nr|rJ)r#r$rDr[r"zinvalid-codepointu�zeof-in-script-in-scriptT) rr6r%r7rÚ$scriptDataDoubleEscapedDashDashStaterrˆr†rr)rr$r r r!r‡s(           z.HTMLTokenizer.scriptDataDoubleEscapedDashStatecCs|jjƒ}|dkr*|jjtdddœƒnÔ|dkrR|jjtdddœƒ|j|_n¬|dkrz|jjtdddœƒ|j|_n„|dkr¸|jjtdddœƒ|jjtdd dœƒ|j|_nF|t krà|jjtdd dœƒ|j |_n|jjtd|dœƒ|j|_d S) Nr|rJ)r#r$rDrjr[r"zinvalid-codepointu�zeof-in-script-in-scriptT) rr6r%r7rrˆrrfr†rr)rr$r r r!r‰s,           z2HTMLTokenizer.scriptDataDoubleEscapedDashDashStatecCsP|jjƒ}|dkr8|jjtdddœƒd|_|j|_n|jj|ƒ|j |_dS)NrirJ)r#r$r,T) rr6r%r7rrrÚscriptDataDoubleEscapeEndStaterr=r†)rr$r r r!rˆ0s   z6HTMLTokenizer.scriptDataDoubleEscapedLessThanSignStatecCs˜|jjƒ}|ttdƒBkrR|jjtd|dœƒ|jjƒdkrH|j |_ q”|j |_ nB|t kr€|jjtd|dœƒ|j|7_n|jj |ƒ|j |_ dS)NrirjrJ)r#r$r…T)rirj)rr6rr:r%r7rrrrur�rr†r r=)rr$r r r!rŠ;s    z,HTMLTokenizer.scriptDataDoubleEscapeEndStatecCs0|jjƒ}|tkr$|jjtdƒ�n|tkrJ|jdj|dgƒ|j|_nâ|dkr\|j ƒnÐ|dkrn|j |_n¾|dkrª|j jt d d d œƒ|jdj|dgƒ|j|_n‚|d kræ|j jt d dd œƒ|jdjddgƒ|j|_nF|t k�r|j jt d dd œƒ|j|_n|jdj|dgƒ|j|_dS)NTr$r,rjriú'ú"rHrDr"z#invalid-character-in-attribute-name)r#r$r[zinvalid-codepointu�z#expected-attribute-name-but-got-eof)r‹rŒrHrD)rr6rr^r rr7ÚattributeNameStaterrZrqr%rrr)rr$r r r!rpKs6              z&HTMLTokenizer.beforeAttributeNameStatecCsæ|jjƒ}d}d}|dkr&|j|_�n0|tkr^|jddd||jjtdƒ7<d}�nø|dkrld}nê|tkr~|j|_nØ|dkr�|j |_nÆ|d krÎ|j j t d d d œƒ|jdddd 7<d}nˆ|dk�r|j j t d dd œƒ|jddd|7<d}nH|t k�r8|j j t d dd œƒ|j|_n|jddd|7<d}|�râ|jdddjtƒ|jddd<xP|jddd…D]:\}}|jddd|k�r–|j j t d dd œƒP�q–W|�râ|jƒdS)NTFrHr$rrrjrir[r"zinvalid-codepoint)r#r$u�r‹rŒrDz#invalid-character-in-attribute-namezeof-in-attribute-namezduplicate-attributerKrK)r‹rŒrDrKrKrKrKrKrK)rr6ÚbeforeAttributeValueStaterr rr^rÚafterAttributeNameStaterqr%r7rrrrXr rZ)rr$ZleavingThisStateZ emitTokenrUÚ_r r r!r�isR             &  z HTMLTokenizer.attributeNameStatecCsF|jjƒ}|tkr$|jjtdƒ�n|dkr8|j|_�n |dkrJ|jƒnø|tkrp|jdj |dgƒ|j |_nÒ|dkr‚|j |_nÀ|dkr¾|j j t dd d œƒ|jdj d dgƒ|j |_n„|dk�rü|j j t ddd œƒ|jdj |dgƒ|j |_nF|tk�r&|j j t ddd œƒ|j|_n|jdj |dgƒ|j |_dS)NTrHrjr$r,rir[r"zinvalid-codepoint)r#r$u�r‹rŒrDz&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eof)r‹rŒrD)rr6rr^rŽrrZr rr7r�rqr%rrr)rr$r r r!r�Ÿs:                z%HTMLTokenizer.afterAttributeNameStatecCsj|jjƒ}|tkr$|jjtdƒ�nB|dkr8|j|_�n.|dkrX|j|_|jj|ƒ�n|dkrl|j|_�nú|dkr”|j j t dddœƒ|j ƒnÒ|d krÖ|j j t dd dœƒ|j d dd d 7<|j|_n�|dk�r|j j t dddœƒ|j d dd |7<|j|_nL|tk�rD|j j t dddœƒ|j|_n"|j d dd |7<|j|_dS)NTrŒrCr‹rjr"z.expected-attribute-value-but-got-right-bracket)r#r$r[zinvalid-codepointr$ru�rHrDú`z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eofrK)rHrDr‘rKrK)rr6rr^ÚattributeValueDoubleQuotedStaterÚattributeValueUnQuotedStater=ÚattributeValueSingleQuotedStater%r7rrZrrr)rr$r r r!rŽ¿s>                 z'HTMLTokenizer.beforeAttributeValueStatecCs¼|jjƒ}|dkr|j|_nœ|dkr0|jdƒnˆ|dkrj|jjtdddœƒ|jdd dd 7<nN|t kr’|jjtdd dœƒ|j |_n&|jdd d||jj dƒ7<d S)NrŒrCr[r"zinvalid-codepoint)r#r$r$ru�z#eof-in-attribute-value-double-quoteTrKrK)rŒrCr[) rr6ÚafterAttributeValueStaterrTr%r7rrrrr^)rr$r r r!r’ás         z-HTMLTokenizer.attributeValueDoubleQuotedStatecCs¼|jjƒ}|dkr|j|_nœ|dkr0|jdƒnˆ|dkrj|jjtdddœƒ|jdd dd 7<nN|t kr’|jjtdd dœƒ|j |_n&|jdd d||jj dƒ7<d S)Nr‹rCr[r"zinvalid-codepoint)r#r$r$ru�z#eof-in-attribute-value-single-quoteTrKrK)r‹rCr[) rr6r•rrTr%r7rrrrr^)rr$r r r!r”ôs         z-HTMLTokenizer.attributeValueSingleQuotedStatecCs|jjƒ}|tkr|j|_�nð|dkr2|jdƒnÜ|dkrD|jƒnÊ|dkr~|jjt dd d œƒ|j d dd |7<n�|d kr¸|jjt ddd œƒ|j d dd d7<nV|t krà|jjt ddd œƒ|j |_n.|j d dd ||jj tdƒtBƒ7<dS)NrCrjrŒr‹rHrDr‘r"z0unexpected-character-in-unquoted-attribute-value)r#r$r$rr[zinvalid-codepointu�z eof-in-attribute-value-no-quotesT)rŒr‹rHrDr‘rKrKrK)rCrjrŒr‹rHrDr‘r[)rr6rrprrTrZr%r7rrrrr^r:)rr$r r r!r“s,           z)HTMLTokenizer.attributeValueUnQuotedStatecCs¢|jjƒ}|tkr|j|_n‚|dkr.|jƒnp|dkr@|j|_n^|tkrt|jj t dddœƒ|jj |ƒ|j |_n*|jj t dddœƒ|jj |ƒ|j|_dS)Nrjrir"z$unexpected-EOF-after-attribute-value)r#r$z*unexpected-character-after-attribute-valueT) rr6rrprrZrqrr%r7rr=r)rr$r r r!r• s"           z&HTMLTokenizer.afterAttributeValueStatecCsˆ|jjƒ}|dkr&d|jd<|jƒn^|tkrZ|jjtdddœƒ|jj|ƒ|j |_ n*|jjtdddœƒ|jj|ƒ|j |_ dS)NrjTrWr"z#unexpected-EOF-after-solidus-in-tag)r#r$z)unexpected-character-after-solidus-in-tag) rr6rrZrr%r7rr=rrrp)rr$r r r!rq4s          z&HTMLTokenizer.selfClosingStartTagStatecCsD|jjdƒ}|jddƒ}|jjtd|dœƒ|jjƒ|j|_dS)Nrjr[u�ÚComment)r#r$T) rr^Úreplacer%r7rr6rr)rr$r r r!roFs   zHTMLTokenizer.bogusCommentStatecCsˆ|jjƒg}|ddkrT|j|jjƒƒ|ddkrPtdddœ|_|j|_dS�nô|ddkr¼d}x.d&D]&}|j|jjƒƒ|d'|krjd}PqjW|rºtddddddœ|_|j|_dSnŒ|d(dk�rH|jdk �rH|jj j �rH|jj j d)j |jj j k�rHd}x2d*D]*}|j|jjƒƒ|d+|k�rd}P�qW|�rH|j |_dS|jjtdddœƒx|�rz|jj|jƒƒ�q`W|j|_dS),Nrr|r–r,)r#r$TÚdÚDÚoÚOr@ÚCÚtÚTÚyÚYÚpÚPÚeÚEFZDoctype)r#rUÚpublicIdÚsystemIdÚcorrectú[ÚAr"zexpected-dashes-or-doctyperKrKrK)r˜r™©ršr›©r@rœ©r�rž©rŸr ©r¡r¢©r£r¤)rªr«r¬r­r®r¯rKrKrK)rœr™r©ržr©r¨rK)rr6r7rrÚcommentStartStaterÚ doctypeStaterZtreeZ openElementsÚ namespaceZdefaultNamespaceÚcdataSectionStater%r=r'ro)rr?ÚmatchedÚexpectedr r r!rlUsR           z(HTMLTokenizer.markupDeclarationOpenStatecCsØ|jjƒ}|dkr|j|_n¸|dkrN|jjtdddœƒ|jdd7<n†|dkr„|jjtdd dœƒ|jj|jƒ|j|_nP|t krº|jjtdd dœƒ|jj|jƒ|j|_n|jd|7<|j |_d S) Nr|r[r"zinvalid-codepoint)r#r$r$u�rjzincorrect-commentzeof-in-commentT) rr6ÚcommentStartDashStaterr%r7rrrrÚ commentState)rr$r r r!r°‚s(          zHTMLTokenizer.commentStartStatecCsÜ|jjƒ}|dkr|j|_n¼|dkrN|jjtdddœƒ|jdd7<nŠ|dkr„|jjtdd dœƒ|jj|jƒ|j|_nT|t krº|jjtdd dœƒ|jj|jƒ|j|_n|jdd|7<|j |_d S) Nr|r[r"zinvalid-codepoint)r#r$r$u-�rjzincorrect-commentzeof-in-commentT) rr6ÚcommentEndStaterr%r7rrrrr·)rr$r r r!r¶™s(          z#HTMLTokenizer.commentStartDashStatecCs¦|jjƒ}|dkr|j|_n†|dkrN|jjtdddœƒ|jdd7<nT|tkr„|jjtdddœƒ|jj|jƒ|j |_n|jd||jj d ƒ7<d S) Nr|r[r"zinvalid-codepoint)r#r$r$u�zeof-in-commentT)r|r[) rr6ÚcommentEndDashStaterr%r7rrrrr^)rr$r r r!r·°s        zHTMLTokenizer.commentStatecCs®|jjƒ}|dkr|j|_nŽ|dkrV|jjtdddœƒ|jdd7<|j|_nT|t krŒ|jjtdddœƒ|jj|jƒ|j |_n|jdd|7<|j|_d S) Nr|r[r"zinvalid-codepoint)r#r$r$u-�zeof-in-comment-end-dashT) rr6r¸rr%r7rrr·rr)rr$r r r!r¹Âs         z!HTMLTokenizer.commentEndDashStatecCs,|jjƒ}|dkr*|jj|jƒ|j|_nþ|dkrd|jjtdddœƒ|jdd7<|j|_nÄ|dkrŒ|jjtdd dœƒ|j |_nœ|d kr¾|jjtdd dœƒ|jd|7<nj|t krô|jjtdd dœƒ|jj|jƒ|j|_n4|jjtdd dœƒ|jdd|7<|j|_dS)Nrjr[r"zinvalid-codepoint)r#r$r$u--�rhz,unexpected-bang-after-double-dash-in-commentr|z,unexpected-dash-after-double-dash-in-commentzeof-in-comment-double-dashzunexpected-char-in-commentz--T) rr6r%r7rrrrr·ÚcommentEndBangStater)rr$r r r!r¸Õs6               zHTMLTokenizer.commentEndStatecCsà|jjƒ}|dkr*|jj|jƒ|j|_n²|dkrN|jdd7<|j|_nŽ|dkrˆ|jjtdddœƒ|jdd 7<|j |_nT|t kr¾|jjtdd dœƒ|jj|jƒ|j|_n|jdd|7<|j |_d S) Nrjr|r$z--!r[r"zinvalid-codepoint)r#r$u--!�zeof-in-comment-end-bang-stateT) rr6r%r7rrrr¹rr·r)rr$r r r!rºôs(         z!HTMLTokenizer.commentEndBangStatecCsŠ|jjƒ}|tkr|j|_nj|tkr\|jjtdddœƒd|j d<|jj|j ƒ|j |_n*|jjtdddœƒ|jj |ƒ|j|_dS)Nr"z!expected-doctype-name-but-got-eof)r#r$Fr§zneed-space-after-doctypeT) rr6rÚbeforeDoctypeNameStaterrr%r7rrrr=)rr$r r r!r± s         zHTMLTokenizer.doctypeStatecCsÜ|jjƒ}|tkrnÄ|dkrT|jjtdddœƒd|jd<|jj|jƒ|j|_n„|dkr†|jjtdddœƒd |jd <|j |_nR|t krÆ|jjtdd dœƒd|jd<|jj|jƒ|j|_n||jd <|j |_d S) Nrjr"z+expected-doctype-name-but-got-right-bracket)r#r$Fr§r[zinvalid-codepointu�rUz!expected-doctype-name-but-got-eofT) rr6rr%r7rrrrÚdoctypeNameStater)rr$r r r!r»s.              z$HTMLTokenizer.beforeDoctypeNameStatecCs|jjƒ}|tkr2|jdjtƒ|jd<|j|_nØ|dkrh|jdjtƒ|jd<|jj |jƒ|j |_n¢|dkr¢|jj t dddœƒ|jdd7<|j |_nh|t krø|jj t dddœƒd |jd <|jdjtƒ|jd<|jj |jƒ|j |_n|jd|7<d S) NrUrjr[r"zinvalid-codepoint)r#r$u�zeof-in-doctype-nameFr§T)rr6rrrXr ÚafterDoctypeNameStaterr%r7rrr¼r)rr$r r r!r¼6s,          zHTMLTokenizer.doctypeNameStatecCsR|jjƒ}|tkr�n8|dkr8|jj|jƒ|j|_�n|tkr†d|jd<|jj |ƒ|jjt dddœƒ|jj|jƒ|j|_�nÈ|d!krÊd }x$d'D]}|jjƒ}||kr˜d}Pq˜W|rÈ|j |_d SnJ|d(k�rd }x(d.D] }|jjƒ}||k�rÞd}P�qÞW|�r|j |_d S|jj |ƒ|jjt ddd|id œƒd|jd<|j |_d S)/NrjFr§r"zeof-in-doctype)r#r$r¡r¢TÚuÚUÚbÚBÚlÚLÚiÚIr@rœÚsÚSrŸr r�ržr£r¤ÚmÚMz*expected-space-or-right-bracket-in-doctyper$)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ÒrÓ)rr6rr%r7rrrrr=rÚafterDoctypePublicKeywordStateÚafterDoctypeSystemKeywordStateÚbogusDoctypeState)rr$r´rµr r r!r½OsT              z#HTMLTokenizer.afterDoctypeNameStatecCs¨|jjƒ}|tkr|j|_nˆ|d krP|jjtdddœƒ|jj|ƒ|j|_nT|t kr�|jjtdddœƒd|j d<|jj|j ƒ|j |_n|jj|ƒ|j|_d S) Nr‹rŒr"zunexpected-char-in-doctype)r#r$zeof-in-doctypeFr§T)r‹rŒ) rr6rÚ"beforeDoctypePublicIdentifierStaterr%r7rr=rrr)rr$r r r!rÔ‚s"           z,HTMLTokenizer.afterDoctypePublicKeywordStatecCsø|jjƒ}|tkrnà|dkr0d|jd<|j|_nÄ|dkrLd|jd<|j|_n¨|dkrŒ|jjt dddœƒd |jd <|jj|jƒ|j |_nh|t krÌ|jjt dd dœƒd |jd <|jj|jƒ|j |_n(|jjt dd dœƒd |jd <|j |_d S)NrŒr,r¥r‹rjr"zunexpected-end-of-doctype)r#r$Fr§zeof-in-doctypezunexpected-char-in-doctypeT) rr6rrÚ(doctypePublicIdentifierDoubleQuotedStaterÚ(doctypePublicIdentifierSingleQuotedStater%r7rrrrÖ)rr$r r r!r×–s4                z0HTMLTokenizer.beforeDoctypePublicIdentifierStatecCsä|jjƒ}|dkr|j|_nÄ|dkrN|jjtdddœƒ|jdd7<n’|dkrŽ|jjtdd dœƒd |jd <|jj|jƒ|j|_nR|t krÎ|jjtdd dœƒd |jd <|jj|jƒ|j|_n|jd|7<d S)NrŒr[r"zinvalid-codepoint)r#r$r¥u�rjzunexpected-end-of-doctypeFr§zeof-in-doctypeT) rr6Ú!afterDoctypePublicIdentifierStaterr%r7rrrr)rr$r r r!rسs*            z6HTMLTokenizer.doctypePublicIdentifierDoubleQuotedStatecCsä|jjƒ}|dkr|j|_nÄ|dkrN|jjtdddœƒ|jdd7<n’|dkrŽ|jjtdd dœƒd |jd <|jj|jƒ|j|_nR|t krÎ|jjtdd dœƒd |jd <|jj|jƒ|j|_n|jd|7<d S)Nr‹r[r"zinvalid-codepoint)r#r$r¥u�rjzunexpected-end-of-doctypeFr§zeof-in-doctypeT) rr6rÚrr%r7rrrr)rr$r r r!rÙËs*            z6HTMLTokenizer.doctypePublicIdentifierSingleQuotedStatecCs |jjƒ}|tkr|j|_nì|dkr<|jj|jƒ|j|_nÌ|dkrn|jjt dddœƒd|jd<|j |_nš|dkr |jjt dddœƒd|jd<|j |_nh|t krà|jjt dd dœƒd |jd <|jj|jƒ|j|_n(|jjt dddœƒd |jd <|j |_d S) NrjrŒr"zunexpected-char-in-doctype)r#r$r,r¦r‹zeof-in-doctypeFr§T)rr6rÚ-betweenDoctypePublicAndSystemIdentifiersStaterr%r7rrrÚ(doctypeSystemIdentifierDoubleQuotedStateÚ(doctypeSystemIdentifierSingleQuotedStaterrÖ)rr$r r r!rÚãs6                  z/HTMLTokenizer.afterDoctypePublicIdentifierStatecCsØ|jjƒ}|tkrnÀ|dkr4|jj|jƒ|j|_n |dkrPd|jd<|j|_n„|dkrld|jd<|j |_nh|t kr¬|jjt dddœƒd |jd <|jj|jƒ|j|_n(|jjt dd dœƒd |jd <|j |_d S) NrjrŒr,r¦r‹r"zeof-in-doctype)r#r$Fr§zunexpected-char-in-doctypeT) rr6rr%r7rrrrÜrÝrrrÖ)rr$r r r!rÛs.             z;HTMLTokenizer.betweenDoctypePublicAndSystemIdentifiersStatecCs¨|jjƒ}|tkr|j|_nˆ|d krP|jjtdddœƒ|jj|ƒ|j|_nT|t kr�|jjtdddœƒd|j d<|jj|j ƒ|j |_n|jj|ƒ|j|_d S) Nr‹rŒr"zunexpected-char-in-doctype)r#r$zeof-in-doctypeFr§T)r‹rŒ) rr6rÚ"beforeDoctypeSystemIdentifierStaterr%r7rr=rrr)rr$r r r!rÕs"           z,HTMLTokenizer.afterDoctypeSystemKeywordStatecCsø|jjƒ}|tkrnà|dkr0d|jd<|j|_nÄ|dkrLd|jd<|j|_n¨|dkrŒ|jjt dddœƒd |jd <|jj|jƒ|j |_nh|t krÌ|jjt dd dœƒd |jd <|jj|jƒ|j |_n(|jjt dddœƒd |jd <|j |_d S) NrŒr,r¦r‹rjr"zunexpected-char-in-doctype)r#r$Fr§zeof-in-doctypeT) rr6rrrÜrrÝr%r7rrrrÖ)rr$r r r!rÞ/s4                z0HTMLTokenizer.beforeDoctypeSystemIdentifierStatecCsä|jjƒ}|dkr|j|_nÄ|dkrN|jjtdddœƒ|jdd7<n’|dkrŽ|jjtdd dœƒd |jd <|jj|jƒ|j|_nR|t krÎ|jjtdd dœƒd |jd <|jj|jƒ|j|_n|jd|7<d S)NrŒr[r"zinvalid-codepoint)r#r$r¦u�rjzunexpected-end-of-doctypeFr§zeof-in-doctypeT) rr6Ú!afterDoctypeSystemIdentifierStaterr%r7rrrr)rr$r r r!rÜLs*            z6HTMLTokenizer.doctypeSystemIdentifierDoubleQuotedStatecCsä|jjƒ}|dkr|j|_nÄ|dkrN|jjtdddœƒ|jdd7<n’|dkrŽ|jjtdd dœƒd |jd <|jj|jƒ|j|_nR|t krÎ|jjtdd dœƒd |jd <|jj|jƒ|j|_n|jd|7<d S)Nr‹r[r"zinvalid-codepoint)r#r$r¦u�rjzunexpected-end-of-doctypeFr§zeof-in-doctypeT) rr6rßrr%r7rrrr)rr$r r r!rÝds*            z6HTMLTokenizer.doctypeSystemIdentifierSingleQuotedStatecCs–|jjƒ}|tkrn~|dkr4|jj|jƒ|j|_n^|tkrt|jjt dddœƒd|jd<|jj|jƒ|j|_n|jjt dddœƒ|j |_dS) Nrjr"zeof-in-doctype)r#r$Fr§zunexpected-char-in-doctypeT) rr6rr%r7rrrrrrÖ)rr$r r r!rß|s         z/HTMLTokenizer.afterDoctypeSystemIdentifierStatecCsZ|jjƒ}|dkr*|jj|jƒ|j|_n,|tkrV|jj|ƒ|jj|jƒ|j|_ndS)NrjT) rr6r%r7rrrrr=)rr$r r r!rÖ�s    zHTMLTokenizer.bogusDoctypeStatecCsðg}xt|j|jjdƒƒ|j|jjdƒƒ|jjƒ}|tkr@Pq|ddd…dkrl|ddd…|d<Pq|j|ƒqWdj|ƒ}|jdƒ}|dkrÊx&t|ƒD]}|jjt d d d œƒq W|j dd ƒ}|rä|jjt d |d œƒ|j |_ dS)Nú]rjréz]]r,r[rr"zinvalid-codepoint)r#r$u�rJTrKéþÿÿÿrKrârK) r7rr^r6rr9ÚcountÚranger%rr—rr)rr$r6Z nullCountr�r r r!r³�s.       zHTMLTokenizer.cdataSectionState)N)NF)NÚ__name__Ú __module__Ú __qualname__Ú__doc__rr)rBrSrTrZrr\rbr`rdrfrgr]rmrnrarsrtrcrwrxreryr{rzr}r�rr~r€r‚r„rƒr†r‡r‰rˆrŠrpr�r�rŽr’r”r“r•rqrorlr°r¶r·r¹r¸rºr±r»r¼r½rÔr×rØrÙrÚrÛrÕrÞrÜrÝrßrÖr³Ú __classcell__r r )rr!rs” H P#         6 "-3rN)Z __future__rrrZpip._vendor.sixrr;Ú collectionsrZ constantsrr r r r r rrrrZ _inputstreamrZ_trierrLÚobjectrr r r r!Ús