PHP 8.5.2
Preview: html.py Size: 19.79 KB
//lib/python3/dist-packages/pygments/lexers/html.py

"""
    pygments.lexers.html
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for HTML, XML and related markup.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
"""

import re

from pygments.lexer import RegexLexer, ExtendedRegexLexer, include, bygroups, \
    default, using
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
    Punctuation, Whitespace
from pygments.util import looks_like_xml, html_doctype_matches

from pygments.lexers.javascript import JavascriptLexer
from pygments.lexers.jvm import ScalaLexer
from pygments.lexers.css import CssLexer, _indentation, _starts_block
from pygments.lexers.ruby import RubyLexer

__all__ = ['HtmlLexer', 'DtdLexer', 'XmlLexer', 'XsltLexer', 'HamlLexer',
           'ScamlLexer', 'PugLexer', 'UrlEncodedLexer']


class HtmlLexer(RegexLexer):
    """
    For HTML 4 and XHTML 1 markup. Nested JavaScript and CSS is highlighted
    by the appropriate lexer.
    """

    name = 'HTML'
    url = 'https://html.spec.whatwg.org/'
    aliases = ['html']
    filenames = ['*.html', '*.htm', '*.xhtml', '*.xslt']
    mimetypes = ['text/html', 'application/xhtml+xml']

    flags = re.IGNORECASE | re.DOTALL
    tokens = {
        'root': [
            ('[^<&]+', Text),
            (r'&\S*?;', Name.Entity),
            (r'\<\!\[CDATA\[.*?\]\]\>', Comment.Preproc),
            (r'<!--.*?-->', Comment.Multiline),
            (r'<\?.*?\?>', Comment.Preproc),
            ('<![^>]*>', Comment.Preproc),
            (r'(<)(\s*)(script)(\s*)',
             bygroups(Punctuation, Text, Name.Tag, Text),
             ('script-content', 'tag')),
            (r'(<)(\s*)(style)(\s*)',
             bygroups(Punctuation, Text, Name.Tag, Text),
             ('style-content', 'tag')),
            # note: this allows tag names not used in HTML like <x:with-dash>,
            # this is to support yet-unknown template engines and the like
            (r'(<)(\s*)([\w:.-]+)',
             bygroups(Punctuation, Text, Name.Tag), 'tag'),
            (r'(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)',
             bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text,
                      Punctuation)),
        ],
        'tag': [
            (r'\s+', Text),
            (r'([\w:-]+\s*)(=)(\s*)', bygroups(Name.Attribute, Operator, Text),
             'attr'),
            (r'[\w:-]+', Name.Attribute),
            (r'(/?)(\s*)(>)', bygroups(Punctuation, Text, Punctuation), '#pop'),
        ],
        'script-content': [
            (r'(<)(\s*)(/)(\s*)(script)(\s*)(>)',
             bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text,
                      Punctuation), '#pop'),
            (r'.+?(?=<\s*/\s*script\s*>)', using(JavascriptLexer)),
            # fallback cases for when there is no closing script tag
            # first look for newline and then go back into root state
            # if that fails just read the rest of the file
            # this is similar to the error handling logic in lexer.py
            (r'.+?\n', using(JavascriptLexer), '#pop'),
            (r'.+', using(JavascriptLexer), '#pop'),
        ],
        'style-content': [
            (r'(<)(\s*)(/)(\s*)(style)(\s*)(>)',
             bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text,
                      Punctuation),'#pop'),
            (r'.+?(?=<\s*/\s*style\s*>)', using(CssLexer)),
            # fallback cases for when there is no closing style tag
            # first look for newline and then go back into root state
            # if that fails just read the rest of the file
            # this is similar to the error handling logic in lexer.py
            (r'.+?\n', using(CssLexer), '#pop'),
            (r'.+', using(CssLexer), '#pop'),
        ],
        'attr': [
            ('".*?"', String, '#pop'),
            ("'.*?'", String, '#pop'),
            (r'[^\s>]+', String, '#pop'),
        ],
    }

    def analyse_text(text):
        if html_doctype_matches(text):
            return 0.5


class DtdLexer(RegexLexer):
    """
    A lexer for DTDs (Document Type Definitions).

    .. versionadded:: 1.5
    """

    flags = re.MULTILINE | re.DOTALL

    name = 'DTD'
    aliases = ['dtd']
    filenames = ['*.dtd']
    mimetypes = ['application/xml-dtd']

    tokens = {
        'root': [
            include('common'),

            (r'(<!ELEMENT)(\s+)(\S+)',
                bygroups(Keyword, Text, Name.Tag), 'element'),
            (r'(<!ATTLIST)(\s+)(\S+)',
                bygroups(Keyword, Text, Name.Tag), 'attlist'),
            (r'(<!ENTITY)(\s+)(\S+)',
                bygroups(Keyword, Text, Name.Entity), 'entity'),
            (r'(<!NOTATION)(\s+)(\S+)',
                bygroups(Keyword, Text, Name.Tag), 'notation'),
            (r'(<!\[)([^\[\s]+)(\s*)(\[)',  # conditional sections
                bygroups(Keyword, Name.Entity, Text, Keyword)),

            (r'(<!DOCTYPE)(\s+)([^>\s]+)',
                bygroups(Keyword, Text, Name.Tag)),
            (r'PUBLIC|SYSTEM', Keyword.Constant),
            (r'[\[\]>]', Keyword),
        ],

        'common': [
            (r'\s+', Text),
            (r'(%|&)[^;]*;', Name.Entity),
            ('<!--', Comment, 'comment'),
            (r'[(|)*,?+]', Operator),
            (r'"[^"]*"', String.Double),
            (r'\'[^\']*\'', String.Single),
        ],

        'comment': [
            ('[^-]+', Comment),
            ('-->', Comment, '#pop'),
            ('-', Comment),
        ],

        'element': [
            include('common'),
            (r'EMPTY|ANY|#PCDATA', Keyword.Constant),
            (r'[^>\s|()?+*,]+', Name.Tag),
            (r'>', Keyword, '#pop'),
        ],

        'attlist': [
            include('common'),
            (r'CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION',
             Keyword.Constant),
            (r'#REQUIRED|#IMPLIED|#FIXED', Keyword.Constant),
            (r'xml:space|xml:lang', Keyword.Reserved),
            (r'[^>\s|()?+*,]+', Name.Attribute),
            (r'>', Keyword, '#pop'),
        ],

        'entity': [
            include('common'),
            (r'SYSTEM|PUBLIC|NDATA', Keyword.Constant),
            (r'[^>\s|()?+*,]+', Name.Entity),
            (r'>', Keyword, '#pop'),
        ],

        'notation': [
            include('common'),
            (r'SYSTEM|PUBLIC', Keyword.Constant),
            (r'[^>\s|()?+*,]+', Name.Attribute),
            (r'>', Keyword, '#pop'),
        ],
    }

    def analyse_text(text):
        if not looks_like_xml(text) and \
           ('<!ELEMENT' in text or '<!ATTLIST' in text or '<!ENTITY' in text):
            return 0.8


class XmlLexer(RegexLexer):
    """
    Generic lexer for XML (eXtensible Markup Language).
    """

    flags = re.MULTILINE | re.DOTALL

    name = 'XML'
    aliases = ['xml']
    filenames = ['*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd',
                 '*.wsdl', '*.wsf']
    mimetypes = ['text/xml', 'application/xml', 'image/svg+xml',
                 'application/rss+xml', 'application/atom+xml']

    tokens = {
        'root': [
            (r'[^<&\s]+', Text),
            (r'[^<&\S]+', Whitespace),
            (r'&\S*?;', Name.Entity),
            (r'\<\!\[CDATA\[.*?\]\]\>', Comment.Preproc),
            (r'<!--.*?-->', Comment.Multiline),
            (r'<\?.*?\?>', Comment.Preproc),
            ('<![^>]*>', Comment.Preproc),
            (r'<\s*[\w:.-]+', Name.Tag, 'tag'),
            (r'<\s*/\s*[\w:.-]+\s*>', Name.Tag),
        ],
        'tag': [
            (r'\s+', Whitespace),
            (r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
            (r'/?\s*>', Name.Tag, '#pop'),
        ],
        'attr': [
            (r'\s+', Whitespace),
            ('".*?"', String, '#pop'),
            ("'.*?'", String, '#pop'),
            (r'[^\s>]+', String, '#pop'),
        ],
    }

    def analyse_text(text):
        if looks_like_xml(text):
            return 0.45  # less than HTML


class XsltLexer(XmlLexer):
    """
    A lexer for XSLT.

    .. versionadded:: 0.10
    """

    name = 'XSLT'
    aliases = ['xslt']
    filenames = ['*.xsl', '*.xslt', '*.xpl']  # xpl is XProc
    mimetypes = ['application/xsl+xml', 'application/xslt+xml']

    EXTRA_KEYWORDS = {
        'apply-imports', 'apply-templates', 'attribute',
        'attribute-set', 'call-template', 'choose', 'comment',
        'copy', 'copy-of', 'decimal-format', 'element', 'fallback',
        'for-each', 'if', 'import', 'include', 'key', 'message',
        'namespace-alias', 'number', 'otherwise', 'output', 'param',
        'preserve-space', 'processing-instruction', 'sort',
        'strip-space', 'stylesheet', 'template', 'text', 'transform',
        'value-of', 'variable', 'when', 'with-param'
    }

    def get_tokens_unprocessed(self, text):
        for index, token, value in XmlLexer.get_tokens_unprocessed(self, text):
            m = re.match('</?xsl:([^>]*)/?>?', value)

            if token is Name.Tag and m and m.group(1) in self.EXTRA_KEYWORDS:
                yield index, Keyword, value
            else:
                yield index, token, value

    def analyse_text(text):
        if looks_like_xml(text) and '<xsl' in text:
            return 0.8


class HamlLexer(ExtendedRegexLexer):
    """
    For Haml markup.

    .. versionadded:: 1.3
    """

    name = 'Haml'
    aliases = ['haml']
    filenames = ['*.haml']
    mimetypes = ['text/x-haml']

    flags = re.IGNORECASE
    # Haml can include " |\n" anywhere,
    # which is ignored and used to wrap long lines.
    # To accommodate this, use this custom faux dot instead.
    _dot = r'(?: \|\n(?=.* \|)|.)'

    # In certain places, a comma at the end of the line
    # allows line wrapping as well.
    _comma_dot = r'(?:,\s*\n|' + _dot + ')'
    tokens = {
        'root': [
            (r'[ \t]*\n', Text),
            (r'[ \t]*', _indentation),
        ],

        'css': [
            (r'\.[\w:-]+', Name.Class, 'tag'),
            (r'\#[\w:-]+', Name.Function, 'tag'),
        ],

        'eval-or-plain': [
            (r'[&!]?==', Punctuation, 'plain'),
            (r'([&!]?[=~])(' + _comma_dot + r'*\n)',
             bygroups(Punctuation, using(RubyLexer)),
             'root'),
            default('plain'),
        ],

        'content': [
            include('css'),
            (r'%[\w:-]+', Name.Tag, 'tag'),
            (r'!!!' + _dot + r'*\n', Name.Namespace, '#pop'),
            (r'(/)(\[' + _dot + r'*?\])(' + _dot + r'*\n)',
             bygroups(Comment, Comment.Special, Comment),
             '#pop'),
            (r'/' + _dot + r'*\n', _starts_block(Comment, 'html-comment-block'),
             '#pop'),
            (r'-#' + _dot + r'*\n', _starts_block(Comment.Preproc,
                                                  'haml-comment-block'), '#pop'),
            (r'(-)(' + _comma_dot + r'*\n)',
             bygroups(Punctuation, using(RubyLexer)),
             '#pop'),
            (r':' + _dot + r'*\n', _starts_block(Name.Decorator, 'filter-block'),
             '#pop'),
            include('eval-or-plain'),
        ],

        'tag': [
            include('css'),
            (r'\{(,\n|' + _dot + r')*?\}', using(RubyLexer)),
            (r'\[' + _dot + r'*?\]', using(RubyLexer)),
            (r'\(', Text, 'html-attributes'),
            (r'/[ \t]*\n', Punctuation, '#pop:2'),
            (r'[<>]{1,2}(?=[ \t=])', Punctuation),
            include('eval-or-plain'),
        ],

        'plain': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(RubyLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],

        'html-attributes': [
            (r'\s+', Text),
            (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'),
            (r'[\w:-]+', Name.Attribute),
            (r'\)', Text, '#pop'),
        ],

        'html-attribute-value': [
            (r'[ \t]+', Text),
            (r'\w+', Name.Variable, '#pop'),
            (r'@\w+', Name.Variable.Instance, '#pop'),
            (r'\$\w+', Name.Variable.Global, '#pop'),
            (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
            (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
        ],

        'html-comment-block': [
            (_dot + '+', Comment),
            (r'\n', Text, 'root'),
        ],

        'haml-comment-block': [
            (_dot + '+', Comment.Preproc),
            (r'\n', Text, 'root'),
        ],

        'filter-block': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(RubyLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],
    }


class ScamlLexer(ExtendedRegexLexer):
    """
    For `Scaml markup <http://scalate.fusesource.org/>`_.  Scaml is Haml for Scala.

    .. versionadded:: 1.4
    """

    name = 'Scaml'
    aliases = ['scaml']
    filenames = ['*.scaml']
    mimetypes = ['text/x-scaml']

    flags = re.IGNORECASE
    # Scaml does not yet support the " |\n" notation to
    # wrap long lines.  Once it does, use the custom faux
    # dot instead.
    # _dot = r'(?: \|\n(?=.* \|)|.)'
    _dot = r'.'

    tokens = {
        'root': [
            (r'[ \t]*\n', Text),
            (r'[ \t]*', _indentation),
        ],

        'css': [
            (r'\.[\w:-]+', Name.Class, 'tag'),
            (r'\#[\w:-]+', Name.Function, 'tag'),
        ],

        'eval-or-plain': [
            (r'[&!]?==', Punctuation, 'plain'),
            (r'([&!]?[=~])(' + _dot + r'*\n)',
             bygroups(Punctuation, using(ScalaLexer)),
             'root'),
            default('plain'),
        ],

        'content': [
            include('css'),
            (r'%[\w:-]+', Name.Tag, 'tag'),
            (r'!!!' + _dot + r'*\n', Name.Namespace, '#pop'),
            (r'(/)(\[' + _dot + r'*?\])(' + _dot + r'*\n)',
             bygroups(Comment, Comment.Special, Comment),
             '#pop'),
            (r'/' + _dot + r'*\n', _starts_block(Comment, 'html-comment-block'),
             '#pop'),
            (r'-#' + _dot + r'*\n', _starts_block(Comment.Preproc,
                                                  'scaml-comment-block'), '#pop'),
            (r'(-@\s*)(import)?(' + _dot + r'*\n)',
             bygroups(Punctuation, Keyword, using(ScalaLexer)),
             '#pop'),
            (r'(-)(' + _dot + r'*\n)',
             bygroups(Punctuation, using(ScalaLexer)),
             '#pop'),
            (r':' + _dot + r'*\n', _starts_block(Name.Decorator, 'filter-block'),
             '#pop'),
            include('eval-or-plain'),
        ],

        'tag': [
            include('css'),
            (r'\{(,\n|' + _dot + r')*?\}', using(ScalaLexer)),
            (r'\[' + _dot + r'*?\]', using(ScalaLexer)),
            (r'\(', Text, 'html-attributes'),
            (r'/[ \t]*\n', Punctuation, '#pop:2'),
            (r'[<>]{1,2}(?=[ \t=])', Punctuation),
            include('eval-or-plain'),
        ],

        'plain': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(ScalaLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],

        'html-attributes': [
            (r'\s+', Text),
            (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'),
            (r'[\w:-]+', Name.Attribute),
            (r'\)', Text, '#pop'),
        ],

        'html-attribute-value': [
            (r'[ \t]+', Text),
            (r'\w+', Name.Variable, '#pop'),
            (r'@\w+', Name.Variable.Instance, '#pop'),
            (r'\$\w+', Name.Variable.Global, '#pop'),
            (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
            (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
        ],

        'html-comment-block': [
            (_dot + '+', Comment),
            (r'\n', Text, 'root'),
        ],

        'scaml-comment-block': [
            (_dot + '+', Comment.Preproc),
            (r'\n', Text, 'root'),
        ],

        'filter-block': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(ScalaLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],
    }


class PugLexer(ExtendedRegexLexer):
    """
    For Pug markup.
    Pug is a variant of Scaml, see:
    http://scalate.fusesource.org/documentation/scaml-reference.html

    .. versionadded:: 1.4
    """

    name = 'Pug'
    aliases = ['pug', 'jade']
    filenames = ['*.pug', '*.jade']
    mimetypes = ['text/x-pug', 'text/x-jade']

    flags = re.IGNORECASE
    _dot = r'.'

    tokens = {
        'root': [
            (r'[ \t]*\n', Text),
            (r'[ \t]*', _indentation),
        ],

        'css': [
            (r'\.[\w:-]+', Name.Class, 'tag'),
            (r'\#[\w:-]+', Name.Function, 'tag'),
        ],

        'eval-or-plain': [
            (r'[&!]?==', Punctuation, 'plain'),
            (r'([&!]?[=~])(' + _dot + r'*\n)',
             bygroups(Punctuation, using(ScalaLexer)),  'root'),
            default('plain'),
        ],

        'content': [
            include('css'),
            (r'!!!' + _dot + r'*\n', Name.Namespace, '#pop'),
            (r'(/)(\[' + _dot + r'*?\])(' + _dot + r'*\n)',
             bygroups(Comment, Comment.Special, Comment),
             '#pop'),
            (r'/' + _dot + r'*\n', _starts_block(Comment, 'html-comment-block'),
             '#pop'),
            (r'-#' + _dot + r'*\n', _starts_block(Comment.Preproc,
                                                  'scaml-comment-block'), '#pop'),
            (r'(-@\s*)(import)?(' + _dot + r'*\n)',
             bygroups(Punctuation, Keyword, using(ScalaLexer)),
             '#pop'),
            (r'(-)(' + _dot + r'*\n)',
             bygroups(Punctuation, using(ScalaLexer)),
             '#pop'),
            (r':' + _dot + r'*\n', _starts_block(Name.Decorator, 'filter-block'),
             '#pop'),
            (r'[\w:-]+', Name.Tag, 'tag'),
            (r'\|', Text, 'eval-or-plain'),
        ],

        'tag': [
            include('css'),
            (r'\{(,\n|' + _dot + r')*?\}', using(ScalaLexer)),
            (r'\[' + _dot + r'*?\]', using(ScalaLexer)),
            (r'\(', Text, 'html-attributes'),
            (r'/[ \t]*\n', Punctuation, '#pop:2'),
            (r'[<>]{1,2}(?=[ \t=])', Punctuation),
            include('eval-or-plain'),
        ],

        'plain': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(ScalaLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],

        'html-attributes': [
            (r'\s+', Text),
            (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'),
            (r'[\w:-]+', Name.Attribute),
            (r'\)', Text, '#pop'),
        ],

        'html-attribute-value': [
            (r'[ \t]+', Text),
            (r'\w+', Name.Variable, '#pop'),
            (r'@\w+', Name.Variable.Instance, '#pop'),
            (r'\$\w+', Name.Variable.Global, '#pop'),
            (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
            (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
        ],

        'html-comment-block': [
            (_dot + '+', Comment),
            (r'\n', Text, 'root'),
        ],

        'scaml-comment-block': [
            (_dot + '+', Comment.Preproc),
            (r'\n', Text, 'root'),
        ],

        'filter-block': [
            (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator),
            (r'(#\{)(' + _dot + r'*?)(\})',
             bygroups(String.Interpol, using(ScalaLexer), String.Interpol)),
            (r'\n', Text, 'root'),
        ],
    }
JadeLexer = PugLexer  # compat


class UrlEncodedLexer(RegexLexer):
    """
    Lexer for urlencoded data

    .. versionadded:: 2.16
    """

    name = 'urlencoded'
    aliases = ['urlencoded']
    mimetypes = ['application/x-www-form-urlencoded']

    tokens = {
        'root': [
            ('([^&=]*)(=)([^=&]*)(&?)', bygroups(Name.Tag, Operator, String, Punctuation)),
        ],
    }

Directory Contents

Dirs: 1 × Files: 243

Name Size Perms Modified Actions
- drwxr-xr-x 2026-01-08 12:54:43
Edit Download
11.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.20 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
876 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.64 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.54 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.63 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.08 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
30.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.33 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.20 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.48 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.62 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
40.28 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.16 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
19.35 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.95 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
27.27 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.14 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.82 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.26 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
27.45 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.12 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.06 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.25 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.08 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.37 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
48.90 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.05 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.36 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
15.39 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
16.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
24.73 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
17.53 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
28.52 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.64 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.50 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
26.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.91 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.69 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
36.74 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
35.92 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.08 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.22 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.63 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.08 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.55 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.63 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
18.72 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.20 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
19.07 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.96 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.42 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.58 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.03 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.10 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
25.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
26.28 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.54 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
674 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.64 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
826 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.37 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.70 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.79 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.01 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
38.11 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.47 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.89 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.90 KB lrwxr-xr-x 2024-02-02 13:26:20
Edit Download
32.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
30.25 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
21.99 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.52 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
19.79 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
15.09 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
30.92 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.06 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.87 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
55.78 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.86 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.74 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
61.39 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.01 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.50 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.18 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.37 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
71.22 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.14 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.20 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.52 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
141.01 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
31.42 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.51 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
58.84 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
676 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
129.74 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.65 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.24 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.36 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
13.49 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.50 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
34.49 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
13.21 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
51.83 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.14 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.97 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
62.46 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.27 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.66 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.29 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.07 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
22.42 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.91 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.70 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.66 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
25.30 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
30.16 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.96 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
38.25 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
22.71 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.73 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.17 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.38 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.21 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.54 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
52.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.77 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.58 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
15.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
17.82 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.83 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.94 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.10 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.92 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
18.02 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
22.14 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.02 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.18 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.54 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.47 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
68.37 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.94 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
35.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.38 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.28 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.71 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.67 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.05 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.25 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.33 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.67 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
41.12 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.65 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
6.27 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.61 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.83 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.38 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.44 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
70.91 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
9.49 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.51 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.00 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.43 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
14.95 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
16.27 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.34 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.50 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.21 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.44 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.01 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
8.75 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
18.08 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.90 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.43 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.10 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.79 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.58 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.46 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
894 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
5.57 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
10.27 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
39.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.64 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.92 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.16 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.88 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
902 B lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.39 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
2.37 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
3.86 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.51 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
26.65 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
13.67 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
102.72 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
17.98 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.60 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
131.36 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
105.56 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
7.93 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
66.43 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
24.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
25.24 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
48.24 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
105.40 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
13.04 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
12.30 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
31.80 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
51.18 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
26.15 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
13.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
26.59 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
15.10 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
1.62 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
4.13 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
55.73 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download
11.83 KB lrw-r--r-- 2024-02-02 13:26:20
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).