__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
"""
pygments.lexers.make
~~~~~~~~~~~~~~~~~~~~
Lexers for Makefiles and similar.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re
from pygments.lexer import Lexer, RegexLexer, include, bygroups, \
do_insertions, using
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Punctuation, Whitespace
from pygments.lexers.shell import BashLexer
__all__ = ['MakefileLexer', 'BaseMakefileLexer', 'CMakeLexer']
class MakefileLexer(Lexer):
"""
Lexer for BSD and GNU make extensions (lenient enough to handle both in
the same file even).
*Rewritten in Pygments 0.10.*
"""
name = 'Makefile'
aliases = ['make', 'makefile', 'mf', 'bsdmake']
filenames = ['*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile']
mimetypes = ['text/x-makefile']
r_special = re.compile(
r'^(?:'
# BSD Make
r'\.\s*(include|undef|error|warning|if|else|elif|endif|for|endfor)|'
# GNU Make
r'\s*(ifeq|ifneq|ifdef|ifndef|else|endif|-?include|define|endef|:|vpath)|'
# GNU Automake
r'\s*(if|else|endif))(?=\s)')
r_comment = re.compile(r'^\s*@?#')
def get_tokens_unprocessed(self, text):
ins = []
lines = text.splitlines(keepends=True)
done = ''
lex = BaseMakefileLexer(**self.options)
backslashflag = False
for line in lines:
if self.r_special.match(line) or backslashflag:
ins.append((len(done), [(0, Comment.Preproc, line)]))
backslashflag = line.strip().endswith('\\')
elif self.r_comment.match(line):
ins.append((len(done), [(0, Comment, line)]))
else:
done += line
yield from do_insertions(ins, lex.get_tokens_unprocessed(done))
def analyse_text(text):
# Many makefiles have $(BIG_CAPS) style variables
if re.search(r'\$\([A-Z_]+\)', text):
return 0.1
class BaseMakefileLexer(RegexLexer):
"""
Lexer for simple Makefiles (no preprocessing).
.. versionadded:: 0.10
"""
name = 'Base Makefile'
aliases = ['basemake']
filenames = []
mimetypes = []
tokens = {
'root': [
# recipes (need to allow spaces because of expandtabs)
(r'^(?:[\t ]+.*\n|\n)+', using(BashLexer)),
# special variables
(r'\$[<@$+%?|*]', Keyword),
(r'\s+', Whitespace),
(r'#.*?\n', Comment),
(r'((?:un)?export)(\s+)(?=[\w${}\t -]+\n)',
bygroups(Keyword, Whitespace), 'export'),
(r'(?:un)?export\s+', Keyword),
# assignment
(r'([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)',
bygroups(
Name.Variable, Whitespace, Operator, Whitespace,
using(BashLexer))),
# strings
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
# targets
(r'([^\n:]+)(:+)([ \t]*)', bygroups(
Name.Function, Operator, Whitespace),
'block-header'),
# expansions
(r'\$\(', Keyword, 'expansion'),
],
'expansion': [
(r'[^\w$().-]+', Text),
(r'[\w.-]+', Name.Variable),
(r'\$', Keyword),
(r'\(', Keyword, '#push'),
(r'\)', Keyword, '#pop'),
],
'export': [
(r'[\w${}-]+', Name.Variable),
(r'\n', Text, '#pop'),
(r'\s+', Whitespace),
],
'block-header': [
(r'[,|]', Punctuation),
(r'#.*?\n', Comment, '#pop'),
(r'\\\n', Text), # line continuation
(r'\$\(', Keyword, 'expansion'),
(r'[a-zA-Z_]+', Name),
(r'\n', Whitespace, '#pop'),
(r'.', Text),
],
}
class CMakeLexer(RegexLexer):
"""
Lexer for CMake files.
.. versionadded:: 1.2
"""
name = 'CMake'
url = 'https://cmake.org/documentation/'
aliases = ['cmake']
filenames = ['*.cmake', 'CMakeLists.txt']
mimetypes = ['text/x-cmake']
tokens = {
'root': [
# (r'(ADD_CUSTOM_COMMAND|ADD_CUSTOM_TARGET|ADD_DEFINITIONS|'
# r'ADD_DEPENDENCIES|ADD_EXECUTABLE|ADD_LIBRARY|ADD_SUBDIRECTORY|'
# r'ADD_TEST|AUX_SOURCE_DIRECTORY|BUILD_COMMAND|BUILD_NAME|'
# r'CMAKE_MINIMUM_REQUIRED|CONFIGURE_FILE|CREATE_TEST_SOURCELIST|'
# r'ELSE|ELSEIF|ENABLE_LANGUAGE|ENABLE_TESTING|ENDFOREACH|'
# r'ENDFUNCTION|ENDIF|ENDMACRO|ENDWHILE|EXEC_PROGRAM|'
# r'EXECUTE_PROCESS|EXPORT_LIBRARY_DEPENDENCIES|FILE|FIND_FILE|'
# r'FIND_LIBRARY|FIND_PACKAGE|FIND_PATH|FIND_PROGRAM|FLTK_WRAP_UI|'
# r'FOREACH|FUNCTION|GET_CMAKE_PROPERTY|GET_DIRECTORY_PROPERTY|'
# r'GET_FILENAME_COMPONENT|GET_SOURCE_FILE_PROPERTY|'
# r'GET_TARGET_PROPERTY|GET_TEST_PROPERTY|IF|INCLUDE|'
# r'INCLUDE_DIRECTORIES|INCLUDE_EXTERNAL_MSPROJECT|'
# r'INCLUDE_REGULAR_EXPRESSION|INSTALL|INSTALL_FILES|'
# r'INSTALL_PROGRAMS|INSTALL_TARGETS|LINK_DIRECTORIES|'
# r'LINK_LIBRARIES|LIST|LOAD_CACHE|LOAD_COMMAND|MACRO|'
# r'MAKE_DIRECTORY|MARK_AS_ADVANCED|MATH|MESSAGE|OPTION|'
# r'OUTPUT_REQUIRED_FILES|PROJECT|QT_WRAP_CPP|QT_WRAP_UI|REMOVE|'
# r'REMOVE_DEFINITIONS|SEPARATE_ARGUMENTS|SET|'
# r'SET_DIRECTORY_PROPERTIES|SET_SOURCE_FILES_PROPERTIES|'
# r'SET_TARGET_PROPERTIES|SET_TESTS_PROPERTIES|SITE_NAME|'
# r'SOURCE_GROUP|STRING|SUBDIR_DEPENDS|SUBDIRS|'
# r'TARGET_LINK_LIBRARIES|TRY_COMPILE|TRY_RUN|UNSET|'
# r'USE_MANGLED_MESA|UTILITY_SOURCE|VARIABLE_REQUIRES|'
# r'VTK_MAKE_INSTANTIATOR|VTK_WRAP_JAVA|VTK_WRAP_PYTHON|'
# r'VTK_WRAP_TCL|WHILE|WRITE_FILE|'
# r'COUNTARGS)\b', Name.Builtin, 'args'),
(r'\b(\w+)([ \t]*)(\()', bygroups(Name.Builtin, Whitespace,
Punctuation), 'args'),
include('keywords'),
include('ws')
],
'args': [
(r'\(', Punctuation, '#push'),
(r'\)', Punctuation, '#pop'),
(r'(\$\{)(.+?)(\})', bygroups(Operator, Name.Variable, Operator)),
(r'(\$ENV\{)(.+?)(\})', bygroups(Operator, Name.Variable, Operator)),
(r'(\$<)(.+?)(>)', bygroups(Operator, Name.Variable, Operator)),
(r'(?s)".*?"', String.Double),
(r'\\\S+', String),
(r'\[(?P<level>=*)\[[\w\W]*?\](?P=level)\]', String.Multiline),
(r'[^)$"# \t\n]+', String),
(r'\n', Whitespace), # explicitly legal
include('keywords'),
include('ws')
],
'string': [
],
'keywords': [
(r'\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|'
r'MSVC70|MSVC71|MSVC80|MSVC90)\b', Keyword),
],
'ws': [
(r'[ \t]+', Whitespace),
(r'#\[(?P<level>=*)\[[\w\W]*?\](?P=level)\]', Comment),
(r'#.*\n', Comment),
]
}
def analyse_text(text):
exp = (
r'^[ \t]*CMAKE_MINIMUM_REQUIRED[ \t]*'
r'\([ \t]*VERSION[ \t]*\d+(\.\d+)*[ \t]*'
r'([ \t]FATAL_ERROR)?[ \t]*\)[ \t]*'
r'(#[^\n]*)?$'
)
if re.search(exp, text, flags=re.MULTILINE | re.IGNORECASE):
return 0.8
return 0.0
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 11.83 KB | 0644 |
|
| _ada_builtins.py | File | 1.51 KB | 0644 |
|
| _asy_builtins.py | File | 26.65 KB | 0644 |
|
| _cl_builtins.py | File | 13.67 KB | 0644 |
|
| _cocoa_builtins.py | File | 102.72 KB | 0644 |
|
| _csound_builtins.py | File | 17.98 KB | 0644 |
|
| _css_builtins.py | File | 12.15 KB | 0644 |
|
| _julia_builtins.py | File | 11.6 KB | 0644 |
|
| _lasso_builtins.py | File | 131.36 KB | 0644 |
|
| _lilypond_builtins.py | File | 105.56 KB | 0644 |
|
| _lua_builtins.py | File | 7.93 KB | 0644 |
|
| _mapping.py | File | 66.43 KB | 0644 |
|
| _mql_builtins.py | File | 24.13 KB | 0644 |
|
| _mysql_builtins.py | File | 25.24 KB | 0644 |
|
| _openedge_builtins.py | File | 48.24 KB | 0644 |
|
| _php_builtins.py | File | 105.4 KB | 0644 |
|
| _postgres_builtins.py | File | 13.04 KB | 0644 |
|
| _qlik_builtins.py | File | 12.3 KB | 0644 |
|
| _scheme_builtins.py | File | 31.8 KB | 0644 |
|
| _scilab_builtins.py | File | 51.18 KB | 0644 |
|
| _sourcemod_builtins.py | File | 26.15 KB | 0644 |
|
| _stan_builtins.py | File | 13.13 KB | 0644 |
|
| _stata_builtins.py | File | 26.59 KB | 0644 |
|
| _tsql_builtins.py | File | 15.1 KB | 0644 |
|
| _usd_builtins.py | File | 1.62 KB | 0644 |
|
| _vbscript_builtins.py | File | 4.13 KB | 0644 |
|
| _vim_builtins.py | File | 55.73 KB | 0644 |
|
| actionscript.py | File | 11.4 KB | 0644 |
|
| ada.py | File | 5.2 KB | 0644 |
|
| agile.py | File | 876 B | 0644 |
|
| algebra.py | File | 9.64 KB | 0644 |
|
| ambient.py | File | 2.54 KB | 0644 |
|
| amdgpu.py | File | 1.63 KB | 0644 |
|
| ampl.py | File | 4.08 KB | 0644 |
|
| apdlexer.py | File | 30.04 KB | 0644 |
|
| apl.py | File | 3.33 KB | 0644 |
|
| archetype.py | File | 11.2 KB | 0644 |
|
| arrow.py | File | 3.48 KB | 0644 |
|
| arturo.py | File | 11.15 KB | 0644 |
|
| asc.py | File | 1.62 KB | 0644 |
|
| asm.py | File | 40.28 KB | 0644 |
|
| asn1.py | File | 4.16 KB | 0644 |
|
| automation.py | File | 19.35 KB | 0644 |
|
| bare.py | File | 2.95 KB | 0644 |
|
| basic.py | File | 27.27 KB | 0644 |
|
| bdd.py | File | 1.61 KB | 0644 |
|
| berry.py | File | 3.14 KB | 0644 |
|
| bibtex.py | File | 4.61 KB | 0644 |
|
| blueprint.py | File | 6.04 KB | 0644 |
|
| boa.py | File | 3.82 KB | 0644 |
|
| bqn.py | File | 3.26 KB | 0644 |
|
| business.py | File | 27.45 KB | 0644 |
|
| c_cpp.py | File | 17.53 KB | 0644 |
|
| c_like.py | File | 28.52 KB | 0644 |
|
| capnproto.py | File | 2.12 KB | 0644 |
|
| carbon.py | File | 3.15 KB | 0644 |
|
| cddl.py | File | 5.06 KB | 0644 |
|
| chapel.py | File | 5.04 KB | 0644 |
|
| clean.py | File | 6.25 KB | 0644 |
|
| comal.py | File | 3.08 KB | 0644 |
|
| compiled.py | File | 1.37 KB | 0644 |
|
| configs.py | File | 48.9 KB | 0644 |
|
| console.py | File | 4.05 KB | 0644 |
|
| cplint.py | File | 1.36 KB | 0644 |
|
| crystal.py | File | 15.39 KB | 0644 |
|
| csound.py | File | 16.6 KB | 0644 |
|
| css.py | File | 24.73 KB | 0644 |
|
| d.py | File | 9.64 KB | 0644 |
|
| dalvik.py | File | 4.5 KB | 0644 |
|
| data.py | File | 26.4 KB | 0644 |
|
| dax.py | File | 7.91 KB | 0644 |
|
| devicetree.py | File | 3.93 KB | 0644 |
|
| diff.py | File | 5.15 KB | 0644 |
|
| dns.py | File | 3.69 KB | 0644 |
|
| dotnet.py | File | 36.74 KB | 0644 |
|
| dsls.py | File | 35.92 KB | 0644 |
|
| dylan.py | File | 10.08 KB | 0644 |
|
| ecl.py | File | 6.22 KB | 0644 |
|
| eiffel.py | File | 2.63 KB | 0644 |
|
| elm.py | File | 3.08 KB | 0644 |
|
| elpi.py | File | 6.55 KB | 0644 |
|
| email.py | File | 4.63 KB | 0644 |
|
| erlang.py | File | 18.72 KB | 0644 |
|
| esoteric.py | File | 10.15 KB | 0644 |
|
| ezhil.py | File | 3.2 KB | 0644 |
|
| factor.py | File | 19.07 KB | 0644 |
|
| fantom.py | File | 9.96 KB | 0644 |
|
| felix.py | File | 9.42 KB | 0644 |
|
| fift.py | File | 1.58 KB | 0644 |
|
| floscript.py | File | 2.61 KB | 0644 |
|
| forth.py | File | 7.03 KB | 0644 |
|
| fortran.py | File | 10.1 KB | 0644 |
|
| foxpro.py | File | 25.6 KB | 0644 |
|
| freefem.py | File | 26.28 KB | 0644 |
|
| func.py | File | 3.54 KB | 0644 |
|
| functional.py | File | 674 B | 0644 |
|
| futhark.py | File | 3.64 KB | 0644 |
|
| gcodelexer.py | File | 826 B | 0644 |
|
| gdscript.py | File | 7.37 KB | 0644 |
|
| go.py | File | 3.7 KB | 0644 |
|
| grammar_notation.py | File | 7.79 KB | 0644 |
|
| graph.py | File | 4.01 KB | 0644 |
|
| graphics.py | File | 38.11 KB | 0644 |
|
| graphql.py | File | 5.47 KB | 0644 |
|
| graphviz.py | File | 1.89 KB | 0644 |
|
| gsql.py | File | 3.9 KB | 0755 |
|
| haskell.py | File | 32.13 KB | 0644 |
|
| haxe.py | File | 30.25 KB | 0644 |
|
| hdl.py | File | 21.99 KB | 0644 |
|
| hexdump.py | File | 3.52 KB | 0644 |
|
| html.py | File | 19.79 KB | 0644 |
|
| idl.py | File | 15.09 KB | 0644 |
|
| igor.py | File | 30.92 KB | 0644 |
|
| inferno.py | File | 3.06 KB | 0644 |
|
| installers.py | File | 12.87 KB | 0644 |
|
| int_fiction.py | File | 55.78 KB | 0644 |
|
| iolang.py | File | 1.86 KB | 0644 |
|
| j.py | File | 4.74 KB | 0644 |
|
| javascript.py | File | 61.39 KB | 0644 |
|
| jmespath.py | File | 2.01 KB | 0644 |
|
| jslt.py | File | 3.61 KB | 0644 |
|
| jsonnet.py | File | 5.5 KB | 0644 |
|
| jsx.py | File | 2.18 KB | 0644 |
|
| julia.py | File | 11.37 KB | 0644 |
|
| jvm.py | File | 71.22 KB | 0644 |
|
| kuin.py | File | 11.14 KB | 0644 |
|
| kusto.py | File | 3.4 KB | 0644 |
|
| ldap.py | File | 6.4 KB | 0644 |
|
| lean.py | File | 4.2 KB | 0644 |
|
| lilypond.py | File | 9.52 KB | 0644 |
|
| lisp.py | File | 141.01 KB | 0644 |
|
| macaulay2.py | File | 31.42 KB | 0644 |
|
| make.py | File | 7.51 KB | 0644 |
|
| markup.py | File | 58.84 KB | 0644 |
|
| math.py | File | 676 B | 0644 |
|
| matlab.py | File | 129.74 KB | 0644 |
|
| maxima.py | File | 2.65 KB | 0644 |
|
| meson.py | File | 4.24 KB | 0644 |
|
| mime.py | File | 7.36 KB | 0644 |
|
| minecraft.py | File | 13.49 KB | 0644 |
|
| mips.py | File | 4.5 KB | 0644 |
|
| ml.py | File | 34.49 KB | 0644 |
|
| modeling.py | File | 13.21 KB | 0644 |
|
| modula2.py | File | 51.83 KB | 0644 |
|
| monte.py | File | 6.14 KB | 0644 |
|
| mosel.py | File | 8.97 KB | 0644 |
|
| ncl.py | File | 62.46 KB | 0644 |
|
| nimrod.py | File | 6.27 KB | 0644 |
|
| nit.py | File | 2.66 KB | 0644 |
|
| nix.py | File | 4.29 KB | 0644 |
|
| oberon.py | File | 4.07 KB | 0644 |
|
| objective.py | File | 22.42 KB | 0644 |
|
| ooc.py | File | 2.91 KB | 0644 |
|
| openscad.py | File | 3.61 KB | 0644 |
|
| other.py | File | 1.7 KB | 0644 |
|
| parasail.py | File | 2.66 KB | 0644 |
|
| parsers.py | File | 25.3 KB | 0644 |
|
| pascal.py | File | 30.16 KB | 0644 |
|
| pawn.py | File | 7.96 KB | 0644 |
|
| perl.py | File | 38.25 KB | 0644 |
|
| phix.py | File | 22.71 KB | 0644 |
|
| php.py | File | 12.73 KB | 0644 |
|
| pointless.py | File | 1.93 KB | 0644 |
|
| pony.py | File | 3.17 KB | 0644 |
|
| praat.py | File | 12.38 KB | 0644 |
|
| procfile.py | File | 1.13 KB | 0644 |
|
| prolog.py | File | 12.21 KB | 0644 |
|
| promql.py | File | 4.6 KB | 0644 |
|
| prql.py | File | 8.54 KB | 0644 |
|
| ptx.py | File | 4.4 KB | 0644 |
|
| python.py | File | 52.15 KB | 0644 |
|
| q.py | File | 6.77 KB | 0644 |
|
| qlik.py | File | 3.58 KB | 0644 |
|
| qvt.py | File | 5.93 KB | 0644 |
|
| r.py | File | 6.04 KB | 0644 |
|
| rdf.py | File | 15.61 KB | 0644 |
|
| rebol.py | File | 17.82 KB | 0644 |
|
| resource.py | File | 2.83 KB | 0644 |
|
| ride.py | File | 4.94 KB | 0644 |
|
| rita.py | File | 1.1 KB | 0644 |
|
| rnc.py | File | 1.93 KB | 0644 |
|
| roboconf.py | File | 1.92 KB | 0644 |
|
| robotframework.py | File | 18.02 KB | 0644 |
|
| ruby.py | File | 22.14 KB | 0644 |
|
| rust.py | File | 8.02 KB | 0644 |
|
| sas.py | File | 9.18 KB | 0644 |
|
| savi.py | File | 4.54 KB | 0644 |
|
| scdoc.py | File | 2.47 KB | 0644 |
|
| scripting.py | File | 68.37 KB | 0644 |
|
| sgf.py | File | 1.94 KB | 0644 |
|
| shell.py | File | 35.61 KB | 0644 |
|
| sieve.py | File | 2.38 KB | 0644 |
|
| slash.py | File | 8.28 KB | 0644 |
|
| smalltalk.py | File | 7.04 KB | 0644 |
|
| smithy.py | File | 2.6 KB | 0644 |
|
| smv.py | File | 2.71 KB | 0644 |
|
| snobol.py | File | 2.67 KB | 0644 |
|
| solidity.py | File | 3.05 KB | 0644 |
|
| sophia.py | File | 3.25 KB | 0644 |
|
| special.py | File | 3.33 KB | 0644 |
|
| spice.py | File | 2.67 KB | 0644 |
|
| sql.py | File | 41.12 KB | 0644 |
|
| srcinfo.py | File | 1.65 KB | 0644 |
|
| stata.py | File | 6.27 KB | 0644 |
|
| supercollider.py | File | 3.61 KB | 0644 |
|
| tal.py | File | 2.83 KB | 0644 |
|
| tcl.py | File | 5.38 KB | 0644 |
|
| teal.py | File | 3.44 KB | 0644 |
|
| templates.py | File | 70.91 KB | 0644 |
|
| teraterm.py | File | 9.49 KB | 0644 |
|
| testing.py | File | 10.51 KB | 0644 |
|
| text.py | File | 1 KB | 0644 |
|
| textedit.py | File | 7.43 KB | 0644 |
|
| textfmts.py | File | 14.95 KB | 0644 |
|
| theorem.py | File | 16.27 KB | 0644 |
|
| thingsdb.py | File | 4.13 KB | 0644 |
|
| tlb.py | File | 1.34 KB | 0644 |
|
| tls.py | File | 1.5 KB | 0644 |
|
| tnt.py | File | 10.21 KB | 0644 |
|
| trafficscript.py | File | 1.44 KB | 0644 |
|
| typoscript.py | File | 8.01 KB | 0644 |
|
| ul4.py | File | 8.75 KB | 0644 |
|
| unicon.py | File | 18.08 KB | 0644 |
|
| urbi.py | File | 5.9 KB | 0644 |
|
| usd.py | File | 3.43 KB | 0644 |
|
| varnish.py | File | 7.1 KB | 0644 |
|
| verification.py | File | 3.79 KB | 0644 |
|
| verifpal.py | File | 2.6 KB | 0644 |
|
| vip.py | File | 5.58 KB | 0644 |
|
| vyper.py | File | 5.46 KB | 0644 |
|
| web.py | File | 894 B | 0644 |
|
| webassembly.py | File | 5.57 KB | 0644 |
|
| webidl.py | File | 10.27 KB | 0644 |
|
| webmisc.py | File | 39.6 KB | 0644 |
|
| wgsl.py | File | 11.64 KB | 0644 |
|
| whiley.py | File | 3.92 KB | 0644 |
|
| wowtoc.py | File | 3.93 KB | 0644 |
|
| wren.py | File | 3.16 KB | 0644 |
|
| x10.py | File | 1.88 KB | 0644 |
|
| xorg.py | File | 902 B | 0644 |
|
| yang.py | File | 4.39 KB | 0644 |
|
| yara.py | File | 2.37 KB | 0644 |
|
| zig.py | File | 3.86 KB | 0644 |
|