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øªjgã2@sàdZddlmZddlmZddlmZddlmZddl m Z m Z m Z ddl mZmZmZdd lmZd d lmZmZmZmZd d lmZmZmZmZmZd d lmZeddƒZ edd„déDƒƒZ!d dddœZ"ede"dk�sæt#‚e$d d d d!d!d"d"d"d"d#œ d$d$d$d$d$d d d!d!d#œ d%�Z%ed&d'ƒed(d'ƒfed(d'ƒed)d'ƒfed)d'ƒed*d'ƒfed*d'ƒed+d'ƒfed+d'ƒed,d'ƒfed,d'ƒed-d'ƒfed-d'ƒed.d'ƒfed.d'ƒed/d'ƒfed/d'ƒed0d'ƒfed0d'ƒed1d'ƒfed1d'ƒed2d'ƒfed3d'ƒed4d'ƒfed4d'ƒed5d'ƒfed5d'ƒed6d'ƒfed6d'ƒed7d'ƒfed7d'ƒed8d'ƒfed8d'ƒed9d'ƒfed9d'ƒed:d'ƒfed:d'ƒed;d'ƒfed;d'ƒedd'ƒfed?d'ƒed@d'ƒfed@d'ƒedAd'ƒfedAd'ƒedBd'ƒfedBd'ƒedCd'ƒfedCd'ƒedDd'ƒfedDd'ƒedEd'ƒfedEd'ƒedFd'ƒfedFd'ƒedGd'ƒfedGd'ƒedHd'ƒfedHd'ƒedId'ƒfedId'ƒedJd'ƒfedKd'ƒedLd'ƒfedLd'ƒedMd'ƒfedMd'ƒedNd'ƒfedNd'ƒedOd'ƒfedOd'ƒedPd'ƒfedPd'ƒedQd'ƒfedQd'ƒedRd'ƒfedRd'ƒedSd'ƒfedSd'ƒedTd'ƒfedTd'ƒedUd'ƒfedUd'ƒedVd'ƒfedWdXƒedYdXƒfedWdXƒedZdXƒfedYdXƒed[dXƒfd\œ/Z&x(e&j'ƒD]\Z(Z)e(j*e)j*k�sxt#‚�qxWe&d]Z+e,d^d„e+Dƒƒed_<d`da„Z-e-ƒZ.iZ/dbdc„Z0ddde„Z1dfdg„Z2e1dhƒdidj„ƒZ3e1dkƒe1dlƒdmdn„ƒƒZ4e1doƒdpdq„ƒZ5e1drƒe1d_ƒe1dsƒdtdu„ƒƒƒZ6e1dvƒe1dwƒdxdy„ƒƒZ7e1dzƒe1d{ƒe1d|ƒe1d}ƒe1d~ƒe1dƒe1d€ƒe1d�ƒe1d‚ƒe1dƒƒe1d„ƒe1d…ƒe1d†ƒe1d‡ƒe1dˆƒe1d‰ƒe1dŠƒe1d‹ƒe1dŒƒe1d�ƒe1dŽƒdêd‘d’„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ8e1d“ƒe1d”ƒe1d•ƒe1d–ƒd—d˜„ƒƒƒƒZ9e1d™ƒdšd›„ƒZ:e1dœƒd�dž„ƒZ;e1dŸƒe1d ƒe1d¡ƒe1d¢ƒe1d£ƒe1d¤ƒd¥d¦„ƒƒƒƒƒƒZe1d°ƒd±d²„ƒZ?d³d´„Z@dµd¶„ZAe1d·ƒd¸d¹„ƒZBe1dºƒd»d¼„ƒZCe1d½ƒd¾d½„ƒZDe1d¿ƒdÀd¿„ƒZEe1dÁƒdÂdăZFe1dădÅdÆ„ƒZGe1dǃdÈdÉ„ƒZHe1dʃdËdÌ„ƒZIe1d̓dÎdÍ„ƒZJe1dσdÐdÏ„ƒZKe1dуdÒdÑ„ƒZLe1dÓƒdÔdÕ„ƒZMe1dÖƒd×dÖ„ƒZNe1d؃dÙdÚ„ƒZOe1dÛƒdÜdÝ„ƒZPdëdÞdß„ZQdàdá„ZRd�S)ìzÍ weasyprint.css.computed_values ------------------------------ Convert *specified* property values (the result of the cascade and inhertance) into *computed* values (that are inherited). é)Ú OrderedDict)Úunquote)Ú parse_coloré)ÚLOGGER)ÚffiÚpangoÚunits_to_double)ÚLayoutÚfirst_line_metricsÚ line_size)Úget_link_attributeé)Ú INHERITEDÚINITIAL_NOT_COMPUTEDÚINITIAL_VALUESÚ Dimension)ÚANGLE_TO_RADIANSÚ LENGTH_UNITSÚLENGTHS_TO_PIXELSÚcheck_var_functionÚ safe_urljoin)Ú PROPERTIESÚpxccs(|] \}}}|td||fVqdS)Ú font_sizeN)r)Ú.0ÚnameÚaÚb©rúD/tmp/pip-build-_d5lkt3n/weasyprint/weasyprint/css/computed_values.pyú "sr!úxx-smallééúx-smalléÚsmalléé ÚmediumÚlargeéúx-largeúxx-large)Zthinr*ZthickZborder_top_widthi�i¼i„) édéÈi,i�iôiXi¼i i„r/)ÚbolderÚlighteréÚmmé%é4éJéié”éÒi)i¤iRiIi¥éé,é>éXé}é°éúiaiôiÃièi†éé(é9éQéré¢éåiDiÊiˆi•ié é-é@é[é€é¶iiliiØii°g!@Úiné éé)/Za10Za9Za8Za7Za6Za5Úa4Úa3Za2Za1Za0Zb10Zb9Zb8Zb7Zb6Zb5Zb4Zb3Zb2Zb1Zb0Zc10Zc9Zc8Zc7Zc6Zc5Zc4Úc3Úc2Úc1Zc0zjis-b10zjis-b9zjis-b8zjis-b7zjis-b6zjis-b5zjis-b4zjis-b3zjis-b2zjis-b1zjis-b0ÚletterZlegalZledgerrSccs|]}|jt|jVqdS)N)ÚvaluerÚunit)rÚdrrr r!ŠsÚsizecCs@ddddddddg}ttƒ}x|D]}|j|ƒq"Wt||ƒS) z>Some computed values are required by others, so order matters.Ú font_stretchÚ font_weightÚ font_familyZ font_variantÚ font_stylerÚ line_heightÚmarks)ÚsortedrÚremoveÚtuple)ÚfirstÚorderrrrr Ú_computing_order�s   rhc Cs¸|g}|j|ƒ}|r@t|ƒdkr@|d}|jdkr@|jdkr@|S|j||ƒ}xf|r²t|tƒr²t|ƒdkr²t|dƒ}|r®|d\}}||kr’|}P|j|ƒ|j||ƒ}|}qNPqNW|S)NrrÚidentÚinitial)ÚgetÚlenÚtyperYÚ isinstancererÚappend) ÚcomputedÚ variable_nameÚdefaultZknown_variable_namesÚcomputed_valuerYZ var_functionZnew_variable_nameZ new_defaultrrr Ú _resolve_varžs*        rtcsˆjddƒ‰‡fdd„}|S)z9Decorator registering a property ``name`` for a function.ú-Ú_cs |tˆ<|S)z0Register the property ``name`` for ``function``.)ÚCOMPUTER_FUNCTIONS)Úfunction)rrr Ú decorator½sz$register_computer..decorator)Úreplace)rryr)rr Úregister_computer¹s  r{c Csd}|ot|tƒo|ddk�r |d\}}t|||ƒ}|dkrFd} n*t|jddƒ} | jrh| ||ƒ} n| |ƒ} | dkròydjdd „|Dƒƒ}Wntk r¤YnXtj d ||jddƒ|jddƒƒ|t krà|ràd }||}n|t k}t |}nt| t ƒ�r| \}n| }||fS) NFrzvar()rrvruÚcss|]}|jƒVqdS)N)Ú serialize)rÚtokenrrr r!×sz#compute_variable..zCUnsupported computed value "%s" set in variable %r for property %r.T)rnrertrrzZwants_base_urlÚjoinÚ BaseExceptionrÚwarningrrrÚlist) rYrrpÚbase_urlÚ parent_styleZalready_computed_valuerqrrrsZ new_valueÚproprrr Úcompute_variableÄs:       r†zbackground-imagecspxj|D]b\}}|dkr2t‡‡fdd„|jDƒƒ|_|dkrtˆˆ|jfƒ\|_|jdkrtˆˆ|jƒ|_qW|S)z-Compute lenghts in gradient background-image.úlinear-gradientúradial-gradientc3s&|]}|dk rtˆˆ|ƒndVqdS)N)Úlength)rÚpos)rÚstylerr r!ñsz#background_image..Úexplicit)r‡rˆ)reZstop_positionsÚcompute_positionÚcenterZ size_typeÚlength_or_percentage_tupler\)r‹rÚvaluesÚtype_rYr)rr‹r Úbackground_imageës  r’zbackground-positionzobject-positioncst‡‡fdd„|DƒƒS)z'Compute lengths in background-position.c3s2|]*\}}}}|tˆˆ|ƒ|tˆˆ|ƒfVqdS)N)r‰)rZorigin_xZpos_xZorigin_yZpos_y)rr‹rr r!sz#compute_position..)re)r‹rr�r)rr‹r r�üs r�ztransform-origincst‡‡fdd„|DƒƒS)z5Compute the lists of lengths that can be percentages.c3s|]}tˆˆ|ƒVqdS)N)r‰)rrY)rr‹rr r! sz-length_or_percentage_tuple..)re)r‹rr�r)rr‹r r�sr�zborder-spacingZclipcst‡‡fdd„|DƒƒS)z.Compute the properties with a list of lengths.c3s|]}tˆˆ|dd�VqdS)T)Ú pixels_onlyN)r‰)rrY)rr‹rr r!szlength_tuple..)re)r‹rr�r)rr‹r Ú length_tuple sr”z break-afterz break-beforecCs|dkr dS|SdS)z|r:|jS|S|tkrV|jt|}n°|dk�r|d krp|d }|dkrŒ|j|t|ƒ}nt|dkrÒtd ||d �}|jd ƒ|jƒ\}} t||ƒ\} } |j| }n.|dkræ|j|}n|dk�r|j|j d }n|S|�r|St |dƒS)zCompute a length ``value``.ÚautoÚcontentrrÚemÚexÚchÚremNr)Úcontextrr‹Ú0)ržrŸ)r r¡r¢r£) rYÚ ZERO_PIXELSrZrÚex_ratior Úset_textÚget_first_liner Z root_styler) r‹rrYrr“rZÚresultÚlayoutÚlinervZ logical_widthrrr r‰!s8        r‰z bleed-leftz bleed-rightz bleed-topz bleed-bottomcCs:|dkr*d|dkrtddƒStddƒSn t|||ƒSdS)NržZcroprbr(rr)rr‰)r‹rrYrrr Úbleed^s    r­zletter-spacingcCs |dkr |St|||dd�SdS)NÚnormalT)r“)r‰)r‹rrYrrr Ú pixel_lengthlsr¯zbackground-sizecst‡‡fdd„|DƒƒS)z+Compute the ``background-size`` properties.c3s&|]}|dkr|n tˆˆ|ƒVqdS)ÚcontainÚcoverN)r°r±)r�)rrY)rr‹rr r!xsz"background_size..)re)r‹rr�r)rr‹r Úbackground_sizets r²zborder-top-widthzborder-right-widthzborder-left-widthzborder-bottom-widthzcolumn-rule-widthz outline-widthcCsJ||jddƒ}|dkrdS|tkr,t|St|tƒr:|St|||dd�S) z*Compute the ``border-*-width`` properties.r�r‹ÚnoneÚhiddenrT)r“)r³r´)rzÚBORDER_WIDTH_KEYWORDSrnÚintr‰)r‹rrYZ border_stylerrr Ú border_width}s r·z column-widthcCst|||dd�S)z&Compute the ``column-width`` property.T)r“)r‰)r‹rrYrrr Ú column_width”sr¸zborder-top-left-radiuszborder-top-right-radiuszborder-bottom-left-radiuszborder-bottom-right-radiuscst‡‡fdd„|DƒƒS)z+Compute the ``border-*-radius`` properties.c3s|]}tˆˆ|ƒVqdS)N)r‰)rrY)rr‹rr r! sz border_radius..)re)r‹rr�r)rr‹r Ú border_radiusšsr¹z column-gapcCs"|dkrtddƒ}t|||dd�S)z$Compute the ``column-gap`` property.r®rr T)r“)rr‰)r‹rrYrrr Ú column_gap£s rºc Cs6|\}}|dkst‚|\}}}yø|jj||ƒ}|dkr8nÜ|dkrr|jdƒr`dt|dd…ƒf}ndt|j|ƒf}n¢|dkrˆt|jƒƒ}nŒ|d kržt |jƒƒ}nv|d kr´t |jƒƒ}n`|d krÔt t |jƒƒd ƒ}d }n@|t krôt t |jƒƒ|ƒ}d }n |t k�rt t |jƒƒ|ƒ}d }Wntk �r,dSX||fS)Nzattr()ÚstringÚurlú#ZinternalrZexternalÚcolorÚintegerÚnumberú%r‰Zangle)ÚAssertionErrorÚelementrkÚ startswithrrrƒrÚstripr¶ÚfloatrrrÚ Exception)r‹r�Ú func_namerYÚ attr_nameZ type_or_unitÚfallbackÚ attr_valuerrr Úcompute_attr_function«s:    rÌcCsg}�xø|D�]î}|ddkr$|}nž|ddkrP|dddksDt‚t||ƒ}nr|ddkrb|}n`|ddkrÂ|dd}|ddkr¾t||ƒ}|dkržd}qÂ|d|f|ddd…f}n|}|dk�ròtjd|jdjdd„|Dƒƒfƒq |j|ƒq Wt|ƒS)Nrr»rŸr¼Úquoteúleader()zattr()rú counter()ú counters()ú content()ú element()ústring()útarget-counter()útarget-counters()ú target-text()z*Unable to compute %r value for content: %rz, css|]}t|ƒVqdS)N)Ústr)rÚitemrrr r!ïsz _content_list..)r»rŸr¼rÍrÎ)rÏrÐrÑrÒrÓ)rÔrÕrÖ)rÂrÌrr�rÃrrore)r‹r�Zcomputed_valuesrYrsZ anchor_tokenÚattrrrr Ú _content_listÑs4        rÚzbookmark-labelcCs t||ƒS)z(Compute the ``bookmark-label`` property.)rÚ)r‹rr�rrr Úbookmark_labelösrÛz string-setcst‡fdd„|DƒƒS)z$Compute the ``string-set`` property.c3s$|]}|dtˆ|dƒfVqdS)rrN)rÚ)rÚ string_set)r‹rr r!szstring_set..)re)r‹rr�r)r‹r rÜüs rÜrŸcCs>t|ƒdkr4|\}|dkr(|jr$dSdS|dkr4dSt||ƒS)z!Compute the ``content`` property.rr®ZinhibitÚcontentsr³)rlZ pseudo_typerÚ)r‹rr�rYrrr rŸs ÚdisplaycCst|jd}|jd}|dks*|dks*|jrp|dkr6dSt|ƒd krT|d jd ƒrTdS|d d krpd|krldSdS|S)zdCompute the ``display`` property. See http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo rÆÚpositionÚabsoluteÚfixedr³ú inline-tableÚblockÚtablerrztable-ÚflowÚinlineú list-item)ràrá)râ)rãrä)rãrå)rãrårç)rãrå)Ú specifiedZis_root_elementrlrÄ)r‹rrYZfloat_rßrrr rÞs   rÆcCs|jddkrdS|SdS)zbCompute the ``float`` property. See http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo rßràrár³N)ràrá)rè)r‹rrYrrr Ú compute_float(sréz font-sizecCsè|tkrt|Sttjƒƒ}|jdkr0td}n |jd}|dkrrx t|ƒD]\}}||krL||SqLW|dSnr|dkrºxht|ddd …ƒD]\}}||krŽ|| dSqŽW|dSn*|jdkrÒ|j|d St|||d |d �SdS) z#Compute the ``font-size`` property.NrZlargerg333333ó?Zsmallerrgš™™™™™é?rÁgY@T)r“réÿÿÿÿ) ÚFONT_SIZE_KEYWORDSr‚r�r„rÚ enumeraterZrYr‰)r‹rrYZkeyword_valuesZparent_font_sizeÚiZ keyword_valuerrr r5s*        rz font-weightcCsR|dkr dS|dkrdS|d krJ|jdkr4td}n |jd}t||S|SdS) z%Compute the ``font-weight`` property.r®i�Zboldi¼r1r2Nr^)r1r2)r„rÚFONT_WEIGHT_RELATIVE)r‹rrYZ parent_valuerrr r^Us    r^z line-heightcCsZ|dkr |S|jsd|jfS|jdkrB|jd}|d}||}nt|||dd�}d|fS) z%Compute the ``line-height`` property.r®ÚNUMBERrÁgY@rT)r“ZPIXELS)rZrYr‰)r‹rrYZfactorZfont_size_valueZpixelsrrr rafs    raÚanchorcCs(|dkr$|\}}|jj|ƒpd}|SdS)z Compute the ``anchor`` property.r³N)rÃrk)r‹rr�rvÚkeyZ anchor_namerrr rðvsÚlinkcCs4|dkr dS|\}}|dkr,t|j||jƒS|SdS)zCompute the ``link`` property.r³Nzattr())r rÃrƒ)r‹rr�r‘rYrrr ròs ÚlangcCs<|dkr dS|\}}|dkr,|jj|ƒp*dS|dkr8|SdS)zCompute the ``lang`` property.r³Nzattr()r»)rÃrk)r‹rr�r‘rñrrr róŒsztab-sizecCst|tƒr|St|||ƒSdS)z"Compute the ``tab-size`` property.N)rnr¶r‰)r‹rrYrrr Útab_size™s rôÚ transformcCs@g}x2|D]*\}}|dkr&t|||ƒ}|j||fƒq Wt|ƒS)z#Compute the ``transform`` property.Ú translate)r�rore)r‹rrYrªrxÚargsrrr rõ¢s  zvertical-aligncCsl|dkr |S|dkr |dd S|d kr4|ddS|jd krXt|ƒ\}}||jd St|||d d�SdS)z(Compute the ``vertical-align`` property.ÚbaselineÚmiddleútext-topú text-bottomr˜r›Úsuperrgà?ÚsubrÁr/T)r“N)rørùrúrûr˜r›gà¿)rZÚ strut_layoutrYr‰)r‹rrYrœrvrrr Úvertical_align­s    rÿz word-spacingcCs |dkr dSt|||dd�SdS)z&Compute the ``word-spacing`` property.r®rT)r“N)r‰)r‹rrYrrr Ú word_spacingÀsrc Cs|ddkrdS|r`|d|d|dt|dƒ|d|d|d|d f}||jkr`|j|St||d|ƒ}|jd ƒ|jƒ\}}t|d |d d |d�\}}}}}}|d dkrÌ||f}|rÈ||j|<|S|d \} } | dkrì| |d9} | || |df}|�r||j|<|S)zˆReturn a tuple of the used value of ``line-height`` and the baseline. The baseline is given from the top edge of line height. rrZfont_language_overriderór_r`r]r^raú r|NF)Z resume_atZspace_collapser‹r®rïr)rr)reZ strut_layoutsr r¨r©r ) r‹r¤rñr«r¬rvZ text_heightrørªr‘rarrr rþÉs2          rþcCs‚|jƒ}d|d<d|d<d}td||d�}|jdƒ|jƒ\}}tjd ƒ}tj||tjƒt |j ƒ}tj |ƒt | |d ƒp€d S) z9Return the ratio 1ex/font_size, according to given style.r®Zletter_spacingrrièN)r¤rr‹ÚxzPangoRectangle *r$gà?) Úcopyr r¨r©rÚnewrZpango_layout_line_get_extentsZNULLr ÚyÚreleaseÚround)r‹rr«r¬rvZ ink_extentsZheight_above_baselinerrr r§ïs     r§©r"r#r$©r%r#r&©r'r(r)©r*rr©r+r,r$©r-r#r©r.rr)rr r r r r r)NF)N)SÚ__doc__Ú collectionsrÚ urllib.parserZtinycss2.color3rÚloggerrZtext.ffirrr Ztext.line_breakr r r Úurlsr Z propertiesrrrrÚutilsrrrrrZvalidation.propertiesrr¦rërµrÂÚdictrîZ PAGE_SIZESr�ÚwÚhrYZINITIAL_PAGE_SIZErerhZCOMPUTING_ORDERrwrtr{r†r’r�r�r”r—r‰r­r¯r²r·r¸r¹rºrÌrÚrÛrÜrŸrÞrérr^rarðròrórôrõrÿrrþr§rrrr ÚsR           '  4(  &%          &