zks .ddlZddlmZddlmZddlZddlmZddlZejZ ddddd d Z d Z d Z d Z GddZeZGddZeeeZejZejZdZejdedddddddddd ZdS)N)codepoint2name)name2codepoint) quote_plusz&z>z<z"z')&><"'c0tjdd|S)Nz ([&<"\'>])c@t|SN) xml_escapesgroup)ms ^/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/mako/filters.pyzxml_escape..s;qwwyy+A)resubstrings r xml_escapers 6-!A!A6 J JJrcJ|d}t|S)Nutf8)encoderrs r url_escapers! ]]6 " "F f  rc*|Sr )striprs rtrimr%s <<>>rceZdZdZdS)DecodecfdS)Nct|tr|St|tst|St|S)N)encoding) isinstancestrbytes)xdecodekeys rr)z"Decode.__getattr__..decode+sS!S!! ,5)) ,vc!ff~~%1s++++r)selfr*r)s `@r __getattr__zDecode.__getattr__*s) , , , , , , rN)__name__ __module__ __qualname__r-r+rrr!r!)s#     rr!ceZdZdZdZdZejdZdZ ejdej ej zZ dZ dZd S) XMLEntityEscapercPd|jD|_||_dS)Nc:i|]\}}|td|zS)z&%s;)r&).0cns r z-XMLEntityEscaper.__init__..;s5! ! ! #'1aAs6A:! ! ! r)itemscodepoint2entityr)r,rrs r__init__zXMLEntityEscaper.__init__:s>! ! +?>+?+A+A! ! ! -rcPt||jS)zReplace characters with their character entity references. Only characters corresponding to a named entity are replaced. )r& translater:r,texts rescape_entitiesz XMLEntityEscaper.escape_entities@s! 4yy""4#8999rct|} |j|S#ttf$rd|zcYSwxYw)Nz&#x%X;)ordrr:KeyError IndexError)r,r codepoints r__escapezXMLEntityEscaper.__escapeGsY NN  ((3 3*% ( ( (i' ' ' ' (s 0A A z["&<>]|[^\x00-\x7f]c|j|jt|dS)a3Replace characters with their character references. Replace characters by their named entity references. Non-ASCII characters, if they do not have a named entity reference, are replaced by numerical character references. The return value is guaranteed to be ASCII. ascii)_XMLEntityEscaper__escapabler_XMLEntityEscaper__escaper&rr>s rescapezXMLEntityEscaper.escapePs3##DM3t99==DDWMMMrz& (?: \#(\d+) | \#x([\da-f]+) | ( (?!\d) [:\w] [-.:\w]+ ) ) ;c|\}}}|rt|}n.|rt|d}n|j|d}|dkrt |St |S)Ni)groupsintrgetchr)r,rdvalhvalnamerEs r __unescapezXMLEntityEscaper.__unescapehs{88::dD  >D II  >D" II+//f==I s??y>> !9~~rcB|j|j|S)zUnescape character references. All character references (both entity references and numerical character references) are unescaped. ) _XMLEntityEscaper__characterrefsr_XMLEntityEscaper__unescaper>s runescapezXMLEntityEscaper.unescapeus #''>>>rN)r.r/r0r;r@rJrcompilerIrKXUNICODErXrYrZr+rrr2r29s--- :::((("*344K N N N!bj 1 rz O   ?????rr2ct|trI|j|j|j}t |}t||jfS|)u6An encoding error handler. This python codecs error handler replaces unencodable characters with HTML entities, or, if no HTML entity exists for the character, XML character references:: >>> 'The cost was €12.'.encode('latin1', 'htmlentityreplace') 'The cost was €12.' )r%UnicodeEncodeErrorobjectstartend_html_entities_escaperrKr&)exbad_textr?s rhtmlentityreplace_errorsrfsW"())#9RX./%,,X66D 26"" Hrhtmlentityreplacezfilters.xml_escapezfilters.html_escapezfilters.url_escapez filters.trimzfilters.html_entities_escaper&r)r7) r(hurentityunicoder)r&r7)codecs html.entitiesrrr urllib.parser markupsaferK html_escaperrrrr!r)r2rcr@html_entities_escaperZhtml_entities_unescaperfregister_errorDEFAULT_ESCAPESr+rrrus (((((((((((( ######        KKK          B?B?B?B?B?B?B?B?J*)..II-=/8   $)+CDDD    ,    r