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

"""
    pygments.lexers.tnt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for Typographic Number Theory.

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

import re

from pygments.lexer import Lexer
from pygments.token import Text, Comment, Operator, Keyword, Name, Number, \
    Punctuation, Error

__all__ = ['TNTLexer']


class TNTLexer(Lexer):
    """
    Lexer for Typographic Number Theory, as described in the book
    Gödel, Escher, Bach, by Douglas R. Hofstadter

    .. versionadded:: 2.7
    """

    name = 'Typographic Number Theory'
    url = 'https://github.com/Kenny2github/language-tnt'
    aliases = ['tnt']
    filenames = ['*.tnt']

    cur = []

    LOGIC = set('⊃→]&∧^|∨Vv')
    OPERATORS = set('+.⋅*')
    VARIABLES = set('abcde')
    PRIMES = set("'′")
    NEGATORS = set('~!')
    QUANTIFIERS = set('AE∀∃')
    NUMBERS = set('0123456789')
    WHITESPACE = set('\t \v\n')

    RULES = re.compile('''(?xi)
        joining | separation | double-tilde | fantasy\\ rule
        | carry[- ]over(?:\\ of)?(?:\\ line)?\\ ([0-9]+) | detachment
        | contrapositive | De\\ Morgan | switcheroo
        | specification | generalization | interchange
        | existence | symmetry | transitivity
        | add\\ S | drop\\ S | induction
        | axiom\\ ([1-5]) | premise | push | pop
    ''')
    LINENOS = re.compile(r'(?:[0-9]+)(?:(?:, ?|,? and )(?:[0-9]+))*')
    COMMENT = re.compile(r'\[[^\n\]]+\]')

    def __init__(self, *args, **kwargs):
        Lexer.__init__(self, *args, **kwargs)
        self.cur = []

    def whitespace(self, start, text, required=False):
        """Tokenize whitespace."""
        end = start
        try:
            while text[end] in self.WHITESPACE:
                end += 1
        except IndexError:
            end = len(text)
        if required and end == start:
            raise AssertionError
        if end != start:
            self.cur.append((start, Text, text[start:end]))
        return end

    def variable(self, start, text):
        """Tokenize a variable."""
        if text[start] not in self.VARIABLES:
            raise AssertionError
        end = start+1
        while text[end] in self.PRIMES:
            end += 1
        self.cur.append((start, Name.Variable, text[start:end]))
        return end

    def term(self, start, text):
        """Tokenize a term."""
        if text[start] == 'S':  # S...S(...) or S...0
            end = start+1
            while text[end] == 'S':
                end += 1
            self.cur.append((start, Number.Integer, text[start:end]))
            return self.term(end, text)
        if text[start] == '0':  # the singleton 0
            self.cur.append((start, Number.Integer, text[start]))
            return start+1
        if text[start] in self.VARIABLES:  # a''...
            return self.variable(start, text)
        if text[start] == '(':  # (...+...)
            self.cur.append((start, Punctuation, text[start]))
            start = self.term(start+1, text)
            if text[start] not in self.OPERATORS:
                raise AssertionError
            self.cur.append((start, Operator, text[start]))
            start = self.term(start+1, text)
            if text[start] != ')':
                raise AssertionError
            self.cur.append((start, Punctuation, text[start]))
            return start+1
        raise AssertionError  # no matches

    def formula(self, start, text):
        """Tokenize a formula."""
        if text[start] in self.NEGATORS:  # ~<...>
            end = start+1
            while text[end] in self.NEGATORS:
                end += 1
            self.cur.append((start, Operator, text[start:end]))
            return self.formula(end, text)
        if text[start] in self.QUANTIFIERS:  # Aa:<...>
            self.cur.append((start, Keyword.Declaration, text[start]))
            start = self.variable(start+1, text)
            if text[start] != ':':
                raise AssertionError
            self.cur.append((start, Punctuation, text[start]))
            return self.formula(start+1, text)
        if text[start] == '<':  # <...&...>
            self.cur.append((start, Punctuation, text[start]))
            start = self.formula(start+1, text)
            if text[start] not in self.LOGIC:
                raise AssertionError
            self.cur.append((start, Operator, text[start]))
            start = self.formula(start+1, text)
            if text[start] != '>':
                raise AssertionError
            self.cur.append((start, Punctuation, text[start]))
            return start+1
        # ...=...
        start = self.term(start, text)
        if text[start] != '=':
            raise AssertionError
        self.cur.append((start, Operator, text[start]))
        start = self.term(start+1, text)
        return start

    def rule(self, start, text):
        """Tokenize a rule."""
        match = self.RULES.match(text, start)
        if match is None:
            raise AssertionError
        groups = sorted(match.regs[1:])  # exclude whole match
        for group in groups:
            if group[0] >= 0:  # this group matched
                self.cur.append((start, Keyword, text[start:group[0]]))
                self.cur.append((group[0], Number.Integer,
                                 text[group[0]:group[1]]))
                if group[1] != match.end():
                    self.cur.append((group[1], Keyword,
                                     text[group[1]:match.end()]))
                break
        else:
            self.cur.append((start, Keyword, text[start:match.end()]))
        return match.end()

    def lineno(self, start, text):
        """Tokenize a line referral."""
        end = start
        while text[end] not in self.NUMBERS:
            end += 1
        self.cur.append((start, Punctuation, text[start]))
        self.cur.append((start+1, Text, text[start+1:end]))
        start = end
        match = self.LINENOS.match(text, start)
        if match is None:
            raise AssertionError
        if text[match.end()] != ')':
            raise AssertionError
        self.cur.append((match.start(), Number.Integer, match.group(0)))
        self.cur.append((match.end(), Punctuation, text[match.end()]))
        return match.end() + 1

    def error_till_line_end(self, start, text):
        """Mark everything from ``start`` to the end of the line as Error."""
        end = start
        try:
            while text[end] != '\n':  # there's whitespace in rules
                end += 1
        except IndexError:
            end = len(text)
        if end != start:
            self.cur.append((start, Error, text[start:end]))
        end = self.whitespace(end, text)
        return end

    def get_tokens_unprocessed(self, text):
        """Returns a list of TNT tokens."""
        self.cur = []
        start = end = self.whitespace(0, text)
        while start <= end < len(text):
            try:
                # try line number
                while text[end] in self.NUMBERS:
                    end += 1
                if end != start:  # actual number present
                    self.cur.append((start, Number.Integer, text[start:end]))
                    # whitespace is required after a line number
                    orig = len(self.cur)
                    try:
                        start = end = self.whitespace(end, text, True)
                    except AssertionError:
                        del self.cur[orig:]
                        start = end = self.error_till_line_end(end, text)
                        continue
                # at this point it could be a comment
                match = self.COMMENT.match(text, start)
                if match is not None:
                    self.cur.append((start, Comment, text[start:match.end()]))
                    start = end = match.end()
                    # anything after the closing bracket is invalid
                    start = end = self.error_till_line_end(start, text)
                    # do not attempt to process the rest
                    continue
                del match
                if text[start] in '[]':  # fantasy push or pop
                    self.cur.append((start, Keyword, text[start]))
                    start += 1
                    end += 1
                else:
                    # one formula, possibly containing subformulae
                    orig = len(self.cur)
                    try:
                        start = end = self.formula(start, text)
                    except (AssertionError, RecursionError):  # not well-formed
                        del self.cur[orig:]
                        while text[end] not in self.WHITESPACE:
                            end += 1
                        self.cur.append((start, Error, text[start:end]))
                        start = end
                # skip whitespace after formula
                orig = len(self.cur)
                try:
                    start = end = self.whitespace(end, text, True)
                except AssertionError:
                    del self.cur[orig:]
                    start = end = self.error_till_line_end(start, text)
                    continue
                # rule proving this formula a theorem
                orig = len(self.cur)
                try:
                    start = end = self.rule(start, text)
                except AssertionError:
                    del self.cur[orig:]
                    start = end = self.error_till_line_end(start, text)
                    continue
                # skip whitespace after rule
                start = end = self.whitespace(end, text)
                # line marker
                if text[start] == '(':
                    orig = len(self.cur)
                    try:
                        start = end = self.lineno(start, text)
                    except AssertionError:
                        del self.cur[orig:]
                        start = end = self.error_till_line_end(start, text)
                        continue
                    start = end = self.whitespace(start, text)
            except IndexError:
                try:
                    del self.cur[orig:]
                except NameError:
                    pass  # if orig was never defined, fine
                self.error_till_line_end(start, text)
        return self.cur

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).