3 \~@sdZddlZddlmZddgZdddZdd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*"Zd+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddh~Z ddZ ej dZ ddZ dS)z* General functions for HTML manipulation. N)html5escapeunescapeTcCsD|jdd}|jdd}|jdd}|r@|jdd}|jd d }|S) z Replace special characters "&", "<" and ">" to HTML-safe sequences. If the optional flag quote is true (the default), the quotation mark characters, both double quote (") and single quote (') characters are also translated. &z&z>"z"'z')replace)sZquoter /usr/lib64/python3.6/__init__.pyr s     u� u€u‚uƒu„u…u†u‡uˆu‰uŠu‹uŒuŽu‘u’u“u”u•u–u—u˜u™ušu›uœužuŸ)"r rrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiii i i i i i i i i i iiiiiicCs|jd}|ddkr|ddkrsp