Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 0øªjX]ã@s²dZddlZddlZddlmZmZddlmZddlm Z m Z ddl m Z ddej ej d ej d d œZdd{ddd|d}ddœZddeddeddœZeeƒeddddgƒBZe ddƒZe ddƒZe ddƒZeeeeedœZd€d�d‚d!ej dfdƒd!ej fd„d!ej d%dfd…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”i Zd•d–d—d˜d™dšd2œZx eD]Zd3e d4eƒfee<�qLWx eD]Zd!e d4eƒfee<�qnWGd5d6„d6eƒZGd7d8„d8ƒZd9d:„Zd;d<„Zd=d>„Zd?d@„Z dAdB„Z!dCdD„Z"dEdF„Z#dGdH„Z$dIdJ„Z%dKdL„Z&dMdN„Z'dOdP„Z(dQdR„Z)dSdT„Z*dUdV„Z+dWdX„Z,d›dYdZ„Z-dœd[d\„Z.d]d^„Z/d_d`„Z0dadb„Z1dcdd„Z2d�dgdh„Z3didj„Z4dkdl„Z5dmdn„Z6dodp„Z7dqdr„Z8dsdt„Z9dudv„Z:dwdx„Z;dydz„ZŒsz$remove_whitespace..)rA)rBr7r7r8Úremove_whitespace‰srLcCs4t|ƒrt|ƒS|r"tt||ƒƒStd|›�ƒ‚dS)Nz+Relative URI reference without a base URI: )rrrr2)Úbase_urlr.r7r7r8Ú safe_urljoin�s rNcs tjˆƒ‡fdd„ƒ}ˆ|_|S)z.wrapper)Ú functoolsÚwrapsZ single_value)rRrSr7)rRr8Úcomma_separated_listšs rVcCs|jdkr|jSdS)z[If ``token`` is a keyword, return its lowercase name. Otherwise return ``None``. r(N)r:r;)rDr7r7r8Ú get_keyword©s rWcCs|jdkr|jSdS)zQIf ``token`` is a keyword, return its name. Otherwise return ``None``. r(N)r:r?)rDr7r7r8Úget_custom_ident³s rXcCs(t|ƒdkr$|d}|jdkr$|jSdS)zeIf ``values`` is a 1-element list of keywords, return its name. Otherwise return ``None``. rrr(N)Úlenr:r;)rBrDr7r7r8Úget_single_keyword½s  rZcstjˆƒ‡fdd„ƒ}|S)z;Decorator for validators that only accept a single keyword.cst|ƒ}ˆ|ƒr|SdS)z6Wrap a validator to call get_single_keyword on tokens.N)rZ)rBÚkeyword)rRr7r8Úkeyword_validatorËsz)single_keyword..keyword_validator)rTrU)rRr\r7)rRr8Úsingle_keywordÉsr]cs tjˆƒ‡fdd„ƒ}ˆ|_|S)z9Decorator for validators that only accept a single token.cs"t|ƒdkrˆ|df|žŽSdS)z*Validate a property whose token is single.rrN)rY)rBrO)rRr7r8Úsingle_token_validatorÖs z,single_token..single_token_validator)rTrUÚ__func__)rRr^r7)rRr8Ú single_tokenÔsr`cCsx|d}t|ƒdkr>t|dƒ}|dk rjd|f|dd…fSn,tjttt|ƒƒƒ}|dk rj||dd…fSdtjf|fS)Nrrr) rYÚ get_angleÚDIRECTION_KEYWORDSÚgetrAÚmaprWÚmathÚpi)Ú argumentsZ first_argrrQr7r7r8Ú parse_linear_gradient_parametersßs  rhcCsÞt|ƒdkr|dtg}nt|ƒdkr*dS|\}}t|dd�}t|dd�}|rZ|rZ||fStt|ƒ\}}|r€|d kr€|t|fS|r˜|d kr˜t||fS|dkr¸|dkr¸t|t|fS|dkoÆ|dk�rÚt|t|fSdS)z:Common syntax of background-position and transform-origin.rrrNT)Ú percentagerrrrr)rrr)rrr)rrr)rrr)rrr)rrr)rYr9Ú get_lengthrdrWÚBACKGROUND_POSITION_PERCENTAGES)rBZtoken_1Ztoken_2Úlength_1Úlength_2Ú keyword_1Ú keyword_2r7r7r8Úparse_2d_positionìs,          rpc Cs–t|ƒ}|dk r$|\}}d|d|fSt|ƒdkr¨t|dƒ}t|dƒ}t|ddd �}t|d dd �}|r¨|r¨|dkrŒ|dkrŒ||||fS|dkr¨|dkr¨||||fSt|ƒd k�r’t|ddd �}|dk rèt|dƒ} t|dƒ} n(t|ddd �}t|dƒ} t|dƒ} |dk �r’| d k�rR| dk�r:dt| |fS| dk�r’| |dtfSn@| dk�rr| dk�rr| || tfS| dk�r’| dk�r’| t| |fSdS)zÁParse background-position and object-position. See http://dev.w3.org/csswg/css3-background/#the-background-position https://drafts.csswg.org/css-images-3/#propdef-object-position NrrérrrT)rir rrr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rprYrWrjÚ FIFTY_PERCENTÚ ZERO_PERCENT) rBrQZpos_xZpos_yrnrorlrmr0r[Z other_keywordr7r7r8Úparse_positionsH                   rtc Csdd}d}d}d}|dddd…}�xø|�r|jƒ}t|ƒ}|dkrft|ddd…ƒ}|dkrbdSPq&|dkr||dkr||}q&|dkr–|dkr–d |f}q&|râ|dkrât|d d �}t|dd d �} d|| fkrâd || ff}d}|jƒ|dk�rt|ƒ}|dk �rd ||ff}d}|dkr&dSq&W||fdk�r0dS|�p>|�p>d|�pFd|�pVdtdtf|dd…fS)NrrZatÚcircleÚellipseúclosest-cornerúfarthest-cornerú closest-sideú farthest-sider[T)riÚexplicitrréÿÿÿÿr|)rurv)rwrxryrzr|©rurv©rurv)r}r~)r[rx)ÚpoprWrtrjrr) rgÚshapeÚpositionÚsizeZ size_shapeÚstackrDr[rlrmr7r7r8Ú parse_radial_gradient_parameters9sL         r„cCsˆt|ƒdkr>t|dƒ}|dkr,tdƒdfS|dk r€|dfSnBt|ƒdkr€t|dƒ}t|dddd�}|dk r€|dk r€||fSt‚dS)NrrZ currentColorZblackrT)Únegativeri)rYrrjr2)rBr-r�r7r7r8Úparse_color_stopds      r†cCs |jdkrdStt|jƒƒ}g}d}xh|rŒ|jdƒ}|jdkoF|jdk}|rT|rTdS|r^d}q&d}|jdkr€t|ƒ}|dkr€dS|j|ƒq&W|r–dS|j|fS)z§Parse functional notation. Return ``(name, args)`` if the given token is a function with comma- or space-separated arguments. Return ``None`` otherwise. rRNFrr=r>T) r:ÚlistrLrgrr?Úparse_functionr@Ú lower_name)Zfunction_tokenÚcontentrgZ last_is_commarDZis_commaZargument_functionr7r7r8rˆts*   rˆc Csàt|ƒ}|dkrdS|\}}|dkrÜt|ƒd krÜ|djdkrBdS|dj}t|ƒdkrbd}d}n`|djdkrtdS|dj}|tkrŠdSt|ƒdkr t|}n"|dj}|dkr¾|dj}ndS|d|fkrÜd |||ffSdS) NÚattrrrr rr(r&r'zattr())rrr )rˆrYr:r?ÚATTR_FALLBACKS) rDÚ allowed_typerRÚnamerOÚ attr_nameZ type_or_unitÚfallbackZ fallback_typer7r7r8Úcheck_attr_function”s0        r‘c Csðddlm}t|ƒ}|dkr dS|\}}g}|dkr@t|ƒd ksT|dkrìt|ƒd krì|jdƒ}|jdkrldS|j|jƒ|dkr¤|jdƒ}|jd kr˜dS|j|jƒ|rÐ||jdƒfƒ} | dkrÄdS|j| ƒn |jd ƒ|›d �t|ƒfSdS)Nr)Úlist_style_typeÚcounterrÚcountersr rr(r&Údecimalz())rr)rr ) Zvalidation.propertiesr’rˆrYrr:r@r?rA) rDr�r’rRrŽrOrgr(r&Ú counter_styler7r7r8Úcheck_counter_function³s0         r—cCslt|ƒ}|dkrdS|\}}|dkrht|ƒdkr4d St|ƒdkrh|jdƒ}|jdkrh|jd krhd|jfSdS) NrŠrú content()Útextrr(ÚbeforeÚafterú first-letterÚmarker)r˜r™)r™ršr›rœr�)rˆrYrr:r;)rDrRrŽrOr(r7r7r8Úcheck_content_functionÓs   ržcCs–t|ƒ}|dkrdS|\}}||kr’t|ƒd kr’|jdƒ}|jdkrHdS|j}|r||jdƒ}|jdksp|jd krtdS|j}nd}|›d �||ffSdS) Nrrrr(ÚfirstÚstartÚlastú first-exceptz())rr)rŸr r¡r¢)rˆrYrr:r?r;)Zstring_or_elementrDrRrŽrOZ custom_identr(r7r7r8Ú check_string_or_element_functionâs"   r£cCslt|ƒ}|dkrdS|\}}|dkrh|rh|jdƒ}|jdksJ|jjdƒ rNdSd|jjddƒ|pbdffSdS)NÚvarrr(z--zvar()ú-Ú_)rˆrr:r?Ú startswithÚreplace)rDrRrŽrOr(r7r7r8Úcheck_var_functionùs  r©cCsn|jdkrd|jfS|jdkrj|jdkr2t|dƒS|jdkrDt|ƒS|jdkrVt|ƒS|jdkrjtd|ƒSdS) zParse a token.r&rRr‹r“r”rŠN)r“r”)r:r?rŽr‘r—ržr£)rDr7r7r8Ú get_strings        rªTFcCsz|r(|jdkr(|s|jdkr(t|jdƒS|jdkrX|jtkrX|sJ|jdkrXt|j|jƒS|jdkrv|jdkrvtddƒSdS)zParse a token.rirrÚ dimensionr,N)r:r?r r<Ú LENGTH_UNITS)rDr…rir7r7r8rjs rjcCs,|jdkr(tj|jƒ}|dk r(|j|SdS)z"Parse an token in radians.r«N)r:ÚANGLE_TO_RADIANSrcr<r?)rDÚfactorr7r7r8ra#s  racCs,|jdkr(tj|jƒ}|dk r(|j|SdS)z#Parse a token in ddpx.r«N)r:ÚRESOLUTION_TO_DPPXrcr<r?)rDr®r7r7r8Úget_resolution+s  r°c Csddlm}m}t||ƒ}|rN|ddks.t‚|dddkrNd|ddfS|jdkr\dStt|jƒƒ}|j }|dkr¨t |ƒ\}}|r¦d |d d „|Dƒ|d |kƒfSnh|dk�rt |ƒ} | dk rÐ| \} } } }nd} d} dt dt f} |}|�rd|dd „|Dƒ| | | d |kƒfSdS)zParse an token.r)ÚLinearGradientÚRadialGradientrr.rr*rRNúlinear-gradientúrepeating-linear-gradientcSsg|] }t|ƒ‘qSr7)r†)rJÚstopr7r7r8ú Dszget_image..Z repeatingúradial-gradientúrepeating-radial-gradientrvr[úfarthest-cornerrrcSsg|] }t|ƒ‘qSr7)r†)rJrµr7r7r8r¶Qs)r³r´)r·r¸)r[r¹) Zimagesr±r²Úget_urlÚAssertionErrorr:rErLrgr‰rhr„rr) rDrMr±r²Ú parsed_urlrgrŽÚ directionZ color_stopsrQr€r‚r�r7r7r8Ú get_image3s8       r¾cCs8|jdƒr"ddt|dd…ƒffSddt||ƒffSdS)Nú#r.Zinternalrr*)r§rrN)r&rMr7r7r8Ú_get_url_tupleUs rÀcCsb|jdkrt|j|ƒS|jdkr^|jdkr4t|dƒS|jdkr^t|jƒdkr^t|jdj|ƒSdS) zParse an token.r.rRr‹rrrN)rr)r:rÀr?rŽr‘rYrg)rDrMr7r7r8rº\s     rºcCst|ƒ}|dkr|SdS)zParse a token.ú open-quoteú close-quoteú no-open-quoteúno-close-quoteN)rÁrÂrÃrÄ)rW)rDr[r7r7r8Ú get_quoteis rÅc Csœt|ƒ}|dkrdS|\}}t|ƒ}|s,dS|dkrFt|ƒdkr~dSn8|dkr`t|ƒdkr~dSn|dkrzt|ƒdkr~dSndSg}|jd ƒ}t|ƒ}|dkr¾t||ƒ}|dkr²dS|j|ƒn |j|ƒ|jdƒ�rX|sÜdS|jd ƒ} | jd k�rödS|j| j ƒ|dk�r2t|jd ƒƒ} | dk�r(dS|j| ƒ|�rHt |jd ƒƒ} nd } |j| ƒn2|�r|t |jd ƒƒ} | dk�r€dSnd } |j| ƒ|›d�t |ƒfS)zParse a token.Nztarget-counterrr ztarget-countersrqz target-textrrr(r•rŠršr›ú first-letterz())rr )r rq)rr)rŠršr›rÆ) rˆrGrYrrªrºr@r§r:r?rWrA) rDrMrRrŽrOÚvaluesÚlinkZ string_linkr.r(r&r–rŠr7r7r8Ú get_targetrsb                 rÉcs"‡fdd„|Dƒ}d|kr|SdS)zParse tokens.csg|]}t|ˆƒ‘qSr7)Úget_content_list_token)rJrD)rMr7r8r¶¸sz$get_content_list..Nr7)rBrMZ parsed_tokensr7)rMr8Úget_content_list´srËc Cs.t|ƒ}|dk r|St|ƒ}|dk r(|St|ƒdkr8dSt||ƒ}|dk rN|St|ƒ}|dk rfd|fSt||ƒ}|dk r||St|ƒ}|dkr�dS|\}} |dk�rt| ƒdkr²dS| \} | jdkrø| j d krÒd }n$| j d krâd }n| j d kròd}ndSn| jdk�r | j }dd|ffS|dk�r*t d|ƒSdS)z'Parse one of the tokens.NÚcontentsú content()r™ÚquoteZleaderrr(ZdottedÚ.Zsolidr¦Úspaceú r&zleader()Úelement)rÍr™) rªr©rWrºrÅrÉrˆrYr:r?r£) rDrMr&r¤r.rÎÚtargetrRrŽrOÚargr7r7r8rʽsL            rÊgUUUUUUõ?g¹\.—ËåB@g�Çãñx<@g�Çãñx<@g�Çãñx<î?)rr)rr)rr)rr)rr)rrr)r!r")rrr)r!r")rrr)r!r#)rrr)r!r#)rrr)r!r$)rrr)r!r$)rrr)r!r%)rrr)r!r%)r&r')r(r))r*r+)r,r)r,r)r,r)N)N)TF)=r6rTreÚ urllib.parserrZtinycss2.color3rÚurlsrrZ propertiesr rfr­ZLENGTHS_TO_PIXELSr¯Úsetr¬rsrrZHUNDRED_PERCENTrkrbrŒr<Ú ValueErrorr2r9rErGrLrNrVrWrXrZr]r`rhrprtr„r†rˆr‘r—ržr£r©rªrjrar°r¾rÀrºrÅrÉrËrÊr7r7r7r8Úsª                 1+   "  B