git: d6f568cf8a0c - main - lang/python311: add port (at 3.11.0.alpha2)

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Wed, 24 Nov 2021 17:01:43 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d6f568cf8a0c57c1280efb31b1b2ab850a87267f

commit d6f568cf8a0c57c1280efb31b1b2ab850a87267f
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2021-10-28 12:26:49 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2021-11-24 17:00:33 +0000

    lang/python311: add port (at 3.11.0.alpha2)
    
    Python is an interpreted object-oriented programming language, and is
    often compared to Tcl, Perl or Scheme.
    
    WWW: https://www.python.org/
    
    PR:             259745
    Approved by:    python
---
 Mk/Uses/python.mk                                  |    2 +-
 Mk/bsd.default-versions.mk                         |    2 +-
 lang/Makefile                                      |    1 +
 lang/python311/Makefile                            |  164 +
 lang/python311/Makefile.version                    |    5 +
 lang/python311/distinfo                            |    3 +
 .../patch-Lib_distutils_command_install__lib.py    |   41 +
 ...patch-Lib_distutils_tests_test__install__lib.py |   33 +
 lang/python311/files/patch-Makefile.pre.in         |   65 +
 .../files/patch-Misc__python-config.sh.in          |   11 +
 lang/python311/files/pkg-message.in                |   12 +
 lang/python311/pkg-descr                           |    4 +
 lang/python311/pkg-plist                           | 7497 ++++++++++++++++++++
 13 files changed, 7838 insertions(+), 2 deletions(-)

diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk
index 9150ba0453a2..19b5fea01b3c 100644
--- a/Mk/Uses/python.mk
+++ b/Mk/Uses/python.mk
@@ -248,7 +248,7 @@ _INCLUDE_USES_PYTHON_MK=	yes
 # What Python version and what Python interpreters are currently supported?
 # When adding a version, please keep the comment in
 # Mk/bsd.default-versions.mk in sync.
-_PYTHON_VERSIONS=		3.8 3.9 3.7 3.6 3.10 2.7 # preferred first
+_PYTHON_VERSIONS=		3.8 3.9 3.7 3.6 3.10 3.11 2.7 # preferred first
 _PYTHON_PORTBRANCH=		3.8		# ${_PYTHON_VERSIONS:[1]}
 _PYTHON_BASECMD=		${LOCALBASE}/bin/python
 _PYTHON_RELPORTDIR=		lang/python
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index 1ee4c9715269..ff5a45ed0b0f 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -109,7 +109,7 @@ PERL5_DEFAULT:=		${_PERL5_FROM_BIN:R}
 PGSQL_DEFAULT?=		13
 # Possible values: 7.3, 7.4, 8.0
 PHP_DEFAULT?=		7.4
-# Possible values: 2.7, 3.6, 3.7, 3.8, 3.9, 3.10
+# Possible values: 2.7, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
 PYTHON_DEFAULT?=	3.8
 # Possible values: 2.7
 PYTHON2_DEFAULT?=	2.7
diff --git a/lang/Makefile b/lang/Makefile
index dd751b907a5f..a65262d81751 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -286,6 +286,7 @@
     SUBDIR += python27
     SUBDIR += python3
     SUBDIR += python310
+    SUBDIR += python311
     SUBDIR += python36
     SUBDIR += python37
     SUBDIR += python38
diff --git a/lang/python311/Makefile b/lang/python311/Makefile
new file mode 100644
index 000000000000..81eca2b4c2dc
--- /dev/null
+++ b/lang/python311/Makefile
@@ -0,0 +1,164 @@
+# Created by: Kubilay Kocak <koobs@FreeBSD.org>
+
+PORTNAME=	python
+DISTVERSION=	${PYTHON_DISTVERSION}
+CATEGORIES=	lang python
+MASTER_SITES=	PYTHON/ftp/python/${DISTVERSION:C/[a-z].*//}
+PKGNAMESUFFIX=	${PYTHON_SUFFIX}
+DISTNAME=	Python-${DISTVERSION}
+DIST_SUBDIR=	python
+
+MAINTAINER=	python@FreeBSD.org
+COMMENT=	Interpreted object-oriented programming language (beta version)
+
+LICENSE=	PSFL
+
+LIB_DEPENDS=	libffi.so:devel/libffi
+
+USES=		compiler:c11 cpe ncurses pathfix pkgconfig readline \
+		shebangfix ssl tar:xz
+PATHFIX_MAKEFILEIN=	Makefile.pre.in
+USE_LDCONFIG=	yes
+GNU_CONFIGURE=	yes
+python_CMD=	${PREFIX}/bin/python${PYTHON_DISTVERSION:R}
+SHEBANG_FILES=	Lib/*.py Lib/*/*.py Lib/*/*/*.py Lib/*/*/*/*.py
+SHEBANG_FILES+=	Lib/test/ziptestdata/exe_with_z64 \
+		Lib/test/ziptestdata/exe_with_zip \
+		Lib/test/ziptestdata/header.sh
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER=		${PYTHON_DISTVERSION:R}
+PYTHON_VERSION=		python${PYTHON_VER}
+PYTHON_SUFFIX=		${PYTHON_VER:S/.//g}
+
+DISABLED_EXTENSIONS=	_sqlite3 _tkinter _gdbm
+CONFIGURE_ARGS+=	--enable-shared --without-ensurepip \
+			--with-system-ffi
+CONFIGURE_ENV+=		OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
+
+INSTALL_TARGET=		altinstall						# Don't want cloberring of unprefixed files
+
+TEST_TARGET=		buildbottest
+TEST_ARGS=		TESTOPTS=-j${MAKE_JOBS_NUMBER}
+
+MAKE_ARGS+=		INSTALL_SHARED="${INSTALL_LIB}"				# Strip shared library
+
+SUB_FILES=		pkg-message
+SUB_LIST=		PYTHON_SUFFIX=${PYTHON_SUFFIX}
+
+PLIST_SUB=		ABI=${ABIFLAGS} \
+			XY=${PYTHON_SUFFIX} \
+			XYDOT=${PYTHON_VER} \
+			XYZDOT=${DISTVERSION:C/[a-z].*//} \
+			OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/}		# For plat-freebsd* in pkg-plist. https://bugs.python.org/issue19554
+
+OPTIONS_DEFINE=		DEBUG IPV6 LIBMPDEC NLS PYMALLOC
+OPTIONS_DEFAULT=	LIBMPDEC PYMALLOC
+OPTIONS_RADIO=		HASH
+OPTIONS_RADIO_HASH=	FNV SIPHASH
+OPTIONS_SUB=		yes
+
+LIBMPDEC_DESC=		Use libmpdec from ports instead of bundled version
+NLS_DESC=		Enable gettext support for the locale module
+PYMALLOC_DESC=		Enable specialized mallocs
+
+HASH_DESC=		Hash Algorithm (PEP-456)
+FNV_DESC=		Modified Fowler-Noll-Vo Algorithm
+SIPHASH_DESC=		SipHash24 Algorithm
+
+FNV_CONFIGURE_ON=	--with-hash-algorithm=fnv
+SIPHASH_CONFIGURE_ON=	--with-hash-algorithm=siphash24
+
+DEBUG_CONFIGURE_WITH=	pydebug
+IPV6_CONFIGURE_ENABLE=	ipv6
+
+LIBMPDEC_CONFIGURE_ON=	--with-system-libmpdec
+LIBMPDEC_LIB_DEPENDS=	libmpdec.so:math/mpdecimal
+
+# Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat
+# to break in Python 2.7, or preprocessor complaints in Python >= 3.3
+# Upstream Issue: https://bugs.python.org/issue6299
+NLS_USES=		gettext
+NLS_CPPFLAGS=		-I${LOCALBASE}/include
+NLS_LIBS=		-L${LOCALBASE}/lib -lintl
+NLS_CONFIGURE_ENV_OFF=	ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
+
+PYMALLOC_CONFIGURE_WITH=	pymalloc
+
+.include "${.CURDIR}/Makefile.version"
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MDEBUG}
+ABIFLAGS:=	d${ABIFLAGS}
+.endif
+
+.if !empty(ABIFLAGS)
+PLIST_FILES+=	bin/python${PYTHON_VER}${ABIFLAGS} \
+		bin/python${PYTHON_VER}${ABIFLAGS}-config \
+		libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}.pc \
+		libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}-embed.pc
+.endif
+
+.if ${ARCH} == sparc64
+CFLAGS+=	-DPYTHON_DEFAULT_RECURSION_LIMIT=900
+.endif
+
+# See https://bugs.freebsd.org/115940 and https://bugs.freebsd.org/193650
+.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
+PLIST_SUB+=	NO_NIS="@comment "
+DISABLED_EXTENSIONS+=	nis
+.else
+PLIST_SUB+=	NO_NIS=""
+.endif
+
+# Python 3.10 requires OpenSSL >= 1.1.1 (PEP 644), so with
+# libressl, some modules are not built
+.if ${SSL_DEFAULT:Mlibressl*}
+PLIST_SUB+=	SUPPORTED_OPENSSL="@comment "
+.else
+PLIST_SUB+=	SUPPORTED_OPENSSL=""
+.endif
+
+post-patch:
+# disable the detection of includes and library from e2fsprogs-libuuid,
+# which introduces hidden dependency and breaks build
+	@${REINPLACE_CMD} -e 's|uuid/uuid.h|ignore_&|' ${WRKSRC}/configure
+	@${REINPLACE_CMD} -e '/find_library_file/ s|uuid|ignore_&|' ${WRKSRC}/setup.py
+# disable detection of multiarch as it breaks with clang >= 13, which adds a
+# major.minor version number in -print-multiarch output, confusing Python
+	@${REINPLACE_CMD} -e 's|^MULTIARCH=.*|MULTIARCH=|' ${WRKSRC}/configure \
+		${WRKSRC}/configure.ac
+# Apply DISABLED_EXTENSIONS
+	@${ECHO_CMD} '*disabled*' > ${WRKSRC}/Modules/Setup.local
+.  for _module in ${DISABLED_EXTENSIONS}
+		@${ECHO_CMD} ${_module} >> ${WRKSRC}/Modules/Setup.local
+.  endfor
+
+post-install:
+.if ! ${PORT_OPTIONS:MDEBUG}
+	${RM} ${STAGEDIR}${PREFIX}/lib/libpython3.so						# Upstream Issue: https://bugs.python.org/issue17975
+.endif
+	${LN} -sf libpython${PYTHON_VER}${ABIFLAGS}.so.1.0 ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1
+# This code block exists for the qemu-user enabled cross build environment.
+# When using this environment in poudriere, CC is not set to the default
+# of /usr/bin/cc and a cross-compile toolchain is used.  We need to hand
+# edit this so that the run time configuration for python matches what the
+# FreeBSD base system provides.  sbruno 02Aug2017
+.if ${CC} == /nxb-bin/usr/bin/cc
+	@${REINPLACE_CMD} -e 's=/nxb-bin==' \
+		${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
+	@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
+		./python -E -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \
+		${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
+	@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
+		./python -E -O -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \
+		${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
+	@${REINPLACE_CMD} -e 's=/nxb-bin==' \
+		${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/config-${PYTHON_VER}${ABIFLAGS}/Makefile
+.endif
+	for i in ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/lib-dynload/*.so; do \
+		${STRIP_CMD} $$i; done								# Strip shared extensions
+	${INSTALL_DATA} ${WRKSRC}/Tools/gdb/libpython.py \
+		${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1.0-gdb.py
+
+.include <bsd.port.mk>
diff --git a/lang/python311/Makefile.version b/lang/python311/Makefile.version
new file mode 100644
index 000000000000..3b5b0700a29e
--- /dev/null
+++ b/lang/python311/Makefile.version
@@ -0,0 +1,5 @@
+# Mk/Uses/python.mk includes this file, don't remove it!
+
+# Do not forget to update python documentation (lang/python-doc-*)
+# Run "make -C lang/python-doc-html makesum"
+PYTHON_DISTVERSION=	3.11.0a2
diff --git a/lang/python311/distinfo b/lang/python311/distinfo
new file mode 100644
index 000000000000..fd8e3b9cc2ce
--- /dev/null
+++ b/lang/python311/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1637148409
+SHA256 (python/Python-3.11.0a2.tar.xz) = 68a8c4d6ce2548a7b617d699fbdb348937bdace0cf96db1aa083849df5dad13f
+SIZE (python/Python-3.11.0a2.tar.xz) = 18714064
diff --git a/lang/python311/files/patch-Lib_distutils_command_install__lib.py b/lang/python311/files/patch-Lib_distutils_command_install__lib.py
new file mode 100644
index 000000000000..6e925311e57d
--- /dev/null
+++ b/lang/python311/files/patch-Lib_distutils_command_install__lib.py
@@ -0,0 +1,41 @@
+From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001
+From: Brendan Molloy <brendan@bbqsrc.net>
+Date: Mon, 4 Jan 2016 23:14:06 +1100
+Subject: [PATCH] Check bytecode file actually exists and tests
+
+Should solve issue 20397, where using the --record argument results
+in files that failed to generate bytecode files are added to the
+record file nonetheless.
+---
+ Lib/distutils/command/install_lib.py    | 17 +++++++++++++----
+ Lib/distutils/tests/test_install_lib.py |  8 ++++++--
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+--- Lib/distutils/command/install_lib.py.orig	2015-12-07 01:39:07 UTC
++++ Lib/distutils/command/install_lib.py
+@@ -164,12 +164,21 @@ class install_lib(Command):
+             ext = os.path.splitext(os.path.normcase(py_file))[1]
+             if ext != PYTHON_SOURCE_EXTENSION:
+                 continue
++
+             if self.compile:
+-                bytecode_files.append(importlib.util.cache_from_source(
+-                    py_file, optimization=''))
++                candidate = importlib.util.cache_from_source(
++                    py_file, optimization='')
++
++                if os.path.isfile(candidate):
++                    bytecode_files.append(candidate)
++
+             if self.optimize > 0:
+-                bytecode_files.append(importlib.util.cache_from_source(
+-                    py_file, optimization=self.optimize))
++                candidate = importlib.util.cache_from_source(
++                    py_file, optimization=self.optimize)
++
++                if os.path.isfile(candidate):
++                    bytecode_files.append(candidate)
++
+ 
+         return bytecode_files
+ 
diff --git a/lang/python311/files/patch-Lib_distutils_tests_test__install__lib.py b/lang/python311/files/patch-Lib_distutils_tests_test__install__lib.py
new file mode 100644
index 000000000000..c5531b92ee92
--- /dev/null
+++ b/lang/python311/files/patch-Lib_distutils_tests_test__install__lib.py
@@ -0,0 +1,33 @@
+From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001
+From: Brendan Molloy <brendan@bbqsrc.net>
+Date: Mon, 4 Jan 2016 23:14:06 +1100
+Subject: [PATCH] Check bytecode file actually exists and tests
+
+Should solve issue 20397, where using the --record argument results
+in files that failed to generate bytecode files are added to the
+record file nonetheless.
+---
+ Lib/distutils/command/install_lib.py    | 17 +++++++++++++----
+ Lib/distutils/tests/test_install_lib.py |  8 ++++++--
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+--- Lib/distutils/tests/test_install_lib.py.orig	2015-12-07 01:39:07 UTC
++++ Lib/distutils/tests/test_install_lib.py
+@@ -64,11 +64,15 @@ class InstallLibTestCase(support.Tempdir
+         cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
+         cmd.distribution.packages = ['spam']
+         cmd.distribution.script_name = 'setup.py'
++        
++        # Create rubbish, uncompilable file
++        f = os.path.join(project_dir, 'spam', 'rubbish.py')
++        self.write_file(f, 'rubbish()')
+ 
+         # get_outputs should return 4 elements: spam/__init__.py and .pyc,
+-        # foo.import-tag-abiflags.so / foo.pyd
++        # foo.import-tag-abiflags.so / foo.pyd and rubbish.py (no .pyc)
+         outputs = cmd.get_outputs()
+-        self.assertEqual(len(outputs), 4, outputs)
++        self.assertEqual(len(outputs), 5, outputs)
+ 
+     def test_get_inputs(self):
+         project_dir, dist = self.create_dist()
diff --git a/lang/python311/files/patch-Makefile.pre.in b/lang/python311/files/patch-Makefile.pre.in
new file mode 100644
index 000000000000..1262d9f1aea6
--- /dev/null
+++ b/lang/python311/files/patch-Makefile.pre.in
@@ -0,0 +1,65 @@
+# Description: Remove duplicate CFLAGS, CPPFLAGS, LDFLAGS by stripping CONFIGURE_*
+# Submitted by: koobs (r326729)
+# TODO: Upstream
+--- Makefile.pre.in.orig	2019-11-04 01:16:37 UTC
++++ Makefile.pre.in
+@@ -80,7 +80,6 @@ MAKESETUP=      $(srcdir)/Modules/makesetup
+ OPT=		@OPT@
+ BASECFLAGS=	@BASECFLAGS@
+ BASECPPFLAGS=	@BASECPPFLAGS@
+-CONFIGURE_CFLAGS=	@CFLAGS@
+ # CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
+ # Use it when a compiler flag should _not_ be part of the distutils CFLAGS
+ # once Python is installed (Issue #21121).
+@@ -89,18 +88,16 @@ CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@
+ # Use it when a linker flag should _not_ be part of the distutils LDFLAGS
+ # once Python is installed (bpo-35257)
+ CONFIGURE_LDFLAGS_NODIST=@LDFLAGS_NODIST@
+-CONFIGURE_CPPFLAGS=	@CPPFLAGS@
+-CONFIGURE_LDFLAGS=	@LDFLAGS@
+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
+ # command line to append to these values without stomping the pre-set
+ # values.
+-PY_CFLAGS=	$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
++PY_CFLAGS=	$(BASECFLAGS) $(OPT) $(CFLAGS) $(EXTRA_CFLAGS)
+ PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal
+ # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
+ # be able to build extension modules using the directories specified in the
+ # environment variables
+-PY_CPPFLAGS=	$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
+-PY_LDFLAGS=	$(CONFIGURE_LDFLAGS) $(LDFLAGS)
++PY_CPPFLAGS=	$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CPPFLAGS)
++PY_LDFLAGS=	$(LDFLAGS)
+ PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)
+ NO_AS_NEEDED=	@NO_AS_NEEDED@
+ SGI_ABI=	@SGI_ABI@
+@@ -1269,14 +1266,6 @@ bininstall: altbininstall
+ 	else true; \
+ 	fi
+ 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE))
+-	-if test "$(VERSION)" != "$(LDVERSION)"; then \
+-		rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \
+-		(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \
+-		rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \
+-		(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \
+-		rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \
+-		(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \
+-	fi
+ 	-rm -f $(DESTDIR)$(BINDIR)/python3-config
+ 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config)
+ 	-rm -f $(DESTDIR)$(LIBPC)/python3.pc
+@@ -1580,6 +1569,14 @@ libainstall:	@DEF_MAKE_RULE@ python-config
+ 	$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
+ 	$(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py
+ 	$(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config
++	-if test "$(VERSION)" != "$(LDVERSION)"; then \
++		rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \
++		(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \
++		rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \
++		(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \
++		rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \
++		(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \
++	fi
+ 	@if [ -s Modules/python.exp -a \
+ 		"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
+ 		echo; echo "Installing support files for building shared extension modules on AIX:"; \
diff --git a/lang/python311/files/patch-Misc__python-config.sh.in b/lang/python311/files/patch-Misc__python-config.sh.in
new file mode 100644
index 000000000000..ebb0c6a51f6d
--- /dev/null
+++ b/lang/python311/files/patch-Misc__python-config.sh.in
@@ -0,0 +1,11 @@
+--- Misc/python-config.sh.in.orig	2018-07-13 21:07:16 UTC
++++ Misc/python-config.sh.in
+@@ -15,7 +15,7 @@ fi
+ # Returns the actual prefix where this script was installed to.
+ installed_prefix ()
+ {
+-    RESULT=$(dirname $(cd $(dirname "$1") && pwd -P))
++    RESULT=$(dirname $(cd $(dirname $(realpath "$1")) && pwd -P))
+     if which readlink >/dev/null 2>&1 ; then
+         if readlink -f "$RESULT" >/dev/null 2>&1; then
+           RESULT=$(readlink -f "$RESULT")
diff --git a/lang/python311/files/pkg-message.in b/lang/python311/files/pkg-message.in
new file mode 100644
index 000000000000..286359c9f272
--- /dev/null
+++ b/lang/python311/files/pkg-message.in
@@ -0,0 +1,12 @@
+[
+{ type: install
+  message: <<EOM
+Note that some standard Python modules are provided as separate ports
+as they require additional dependencies. They are available as:
+
+py%%PYTHON_SUFFIX%%-gdbm       databases/py-gdbm@py%%PYTHON_SUFFIX%%
+py%%PYTHON_SUFFIX%%-sqlite3    databases/py-sqlite3@py%%PYTHON_SUFFIX%%
+py%%PYTHON_SUFFIX%%-tkinter    x11-toolkits/py-tkinter@py%%PYTHON_SUFFIX%%
+EOM
+}
+]
diff --git a/lang/python311/pkg-descr b/lang/python311/pkg-descr
new file mode 100644
index 000000000000..9c7e5a6d284b
--- /dev/null
+++ b/lang/python311/pkg-descr
@@ -0,0 +1,4 @@
+Python is an interpreted object-oriented programming language, and is
+often compared to Tcl, Perl or Scheme.
+
+WWW: https://www.python.org/
diff --git a/lang/python311/pkg-plist b/lang/python311/pkg-plist
new file mode 100644
index 000000000000..26f9bf52dc01
--- /dev/null
+++ b/lang/python311/pkg-plist
@@ -0,0 +1,7497 @@
+bin/2to3-%%XYDOT%%
+bin/idle%%XYDOT%%
+bin/pydoc%%XYDOT%%
+bin/python%%XYDOT%%
+bin/python%%XYDOT%%-config
+include/python%%XYDOT%%%%ABI%%/Python.h
+include/python%%XYDOT%%%%ABI%%/abstract.h
+include/python%%XYDOT%%%%ABI%%/bltinmodule.h
+include/python%%XYDOT%%%%ABI%%/boolobject.h
+include/python%%XYDOT%%%%ABI%%/bytearrayobject.h
+include/python%%XYDOT%%%%ABI%%/bytesobject.h
+include/python%%XYDOT%%%%ABI%%/ceval.h
+include/python%%XYDOT%%%%ABI%%/code.h
+include/python%%XYDOT%%%%ABI%%/codecs.h
+include/python%%XYDOT%%%%ABI%%/compile.h
+include/python%%XYDOT%%%%ABI%%/complexobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/abstract.h
+include/python%%XYDOT%%%%ABI%%/cpython/bytearrayobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/bytesobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/cellobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/ceval.h
+include/python%%XYDOT%%%%ABI%%/cpython/classobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/code.h
+include/python%%XYDOT%%%%ABI%%/cpython/compile.h
+include/python%%XYDOT%%%%ABI%%/cpython/context.h
+include/python%%XYDOT%%%%ABI%%/cpython/dictobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/fileobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/fileutils.h
+include/python%%XYDOT%%%%ABI%%/cpython/floatobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/frameobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/funcobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/genobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/import.h
+include/python%%XYDOT%%%%ABI%%/cpython/initconfig.h
+include/python%%XYDOT%%%%ABI%%/cpython/listobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/longintrepr.h
+include/python%%XYDOT%%%%ABI%%/cpython/longobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/methodobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/object.h
+include/python%%XYDOT%%%%ABI%%/cpython/objimpl.h
+include/python%%XYDOT%%%%ABI%%/cpython/odictobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/picklebufobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/pyctype.h
+include/python%%XYDOT%%%%ABI%%/cpython/pydebug.h
+include/python%%XYDOT%%%%ABI%%/cpython/pyerrors.h
+include/python%%XYDOT%%%%ABI%%/cpython/pyfpe.h
+include/python%%XYDOT%%%%ABI%%/cpython/pylifecycle.h
+include/python%%XYDOT%%%%ABI%%/cpython/pymem.h
+include/python%%XYDOT%%%%ABI%%/cpython/pystate.h
+include/python%%XYDOT%%%%ABI%%/cpython/pythonrun.h
+include/python%%XYDOT%%%%ABI%%/cpython/pytime.h
+include/python%%XYDOT%%%%ABI%%/cpython/sysmodule.h
+include/python%%XYDOT%%%%ABI%%/cpython/traceback.h
+include/python%%XYDOT%%%%ABI%%/cpython/tupleobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/unicodeobject.h
+include/python%%XYDOT%%%%ABI%%/cpython/warnings.h
+include/python%%XYDOT%%%%ABI%%/cpython/weakrefobject.h
+include/python%%XYDOT%%%%ABI%%/datetime.h
+include/python%%XYDOT%%%%ABI%%/descrobject.h
+include/python%%XYDOT%%%%ABI%%/dictobject.h
+include/python%%XYDOT%%%%ABI%%/dynamic_annotations.h
+include/python%%XYDOT%%%%ABI%%/enumobject.h
+include/python%%XYDOT%%%%ABI%%/errcode.h
+include/python%%XYDOT%%%%ABI%%/exports.h
+include/python%%XYDOT%%%%ABI%%/fileobject.h
+include/python%%XYDOT%%%%ABI%%/fileutils.h
+include/python%%XYDOT%%%%ABI%%/floatobject.h
+include/python%%XYDOT%%%%ABI%%/frameobject.h
+include/python%%XYDOT%%%%ABI%%/genericaliasobject.h
+include/python%%XYDOT%%%%ABI%%/import.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_abstract.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_accu.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_asdl.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_ast.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_ast_state.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_atomic.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_atomic_funcs.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_bitutils.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_blocks_output_buffer.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_bytes_methods.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_call.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_ceval.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_code.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_compile.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_condvar.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_context.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_dict.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_dtoa.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_fileutils.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_floatobject.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_format.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_frame.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_gc.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_getopt.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_gil.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_hamt.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_hashtable.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_import.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_initconfig.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_interp.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_interpreteridobject.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_list.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_long.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_moduleobject.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_namespace.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_object.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_parser.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pathconfig.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pyarena.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pyerrors.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pyhash.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pylifecycle.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pymath.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pymem.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_pystate.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_runtime.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_strhex.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_structseq.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_symtable.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_sysmodule.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_traceback.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_tuple.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_ucnhash.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_unionobject.h
+include/python%%XYDOT%%%%ABI%%/internal/pycore_warnings.h
+include/python%%XYDOT%%%%ABI%%/intrcheck.h
+include/python%%XYDOT%%%%ABI%%/iterobject.h
+include/python%%XYDOT%%%%ABI%%/listobject.h
+include/python%%XYDOT%%%%ABI%%/longobject.h
+include/python%%XYDOT%%%%ABI%%/marshal.h
+include/python%%XYDOT%%%%ABI%%/memoryobject.h
+include/python%%XYDOT%%%%ABI%%/methodobject.h
+include/python%%XYDOT%%%%ABI%%/modsupport.h
+include/python%%XYDOT%%%%ABI%%/moduleobject.h
+include/python%%XYDOT%%%%ABI%%/object.h
+include/python%%XYDOT%%%%ABI%%/objimpl.h
+include/python%%XYDOT%%%%ABI%%/opcode.h
+include/python%%XYDOT%%%%ABI%%/osdefs.h
+include/python%%XYDOT%%%%ABI%%/osmodule.h
+include/python%%XYDOT%%%%ABI%%/patchlevel.h
+include/python%%XYDOT%%%%ABI%%/py_curses.h
+include/python%%XYDOT%%%%ABI%%/pycapsule.h
+include/python%%XYDOT%%%%ABI%%/pyconfig.h
+include/python%%XYDOT%%%%ABI%%/pydtrace.h
+include/python%%XYDOT%%%%ABI%%/pyerrors.h
+include/python%%XYDOT%%%%ABI%%/pyexpat.h
+include/python%%XYDOT%%%%ABI%%/pyframe.h
+include/python%%XYDOT%%%%ABI%%/pyhash.h
+include/python%%XYDOT%%%%ABI%%/pylifecycle.h
+include/python%%XYDOT%%%%ABI%%/pymacconfig.h
+include/python%%XYDOT%%%%ABI%%/pymacro.h
+include/python%%XYDOT%%%%ABI%%/pymath.h
+include/python%%XYDOT%%%%ABI%%/pymem.h
+include/python%%XYDOT%%%%ABI%%/pyport.h
+include/python%%XYDOT%%%%ABI%%/pystate.h
+include/python%%XYDOT%%%%ABI%%/pystrcmp.h
+include/python%%XYDOT%%%%ABI%%/pystrtod.h
+include/python%%XYDOT%%%%ABI%%/pythonrun.h
+include/python%%XYDOT%%%%ABI%%/pythread.h
+include/python%%XYDOT%%%%ABI%%/rangeobject.h
+include/python%%XYDOT%%%%ABI%%/setobject.h
+include/python%%XYDOT%%%%ABI%%/sliceobject.h
+include/python%%XYDOT%%%%ABI%%/structmember.h
+include/python%%XYDOT%%%%ABI%%/structseq.h
+include/python%%XYDOT%%%%ABI%%/sysmodule.h
+include/python%%XYDOT%%%%ABI%%/token.h
+include/python%%XYDOT%%%%ABI%%/traceback.h
+include/python%%XYDOT%%%%ABI%%/tracemalloc.h
+include/python%%XYDOT%%%%ABI%%/tupleobject.h
+include/python%%XYDOT%%%%ABI%%/typeslots.h
+include/python%%XYDOT%%%%ABI%%/unicodeobject.h
+include/python%%XYDOT%%%%ABI%%/warnings.h
+include/python%%XYDOT%%%%ABI%%/weakrefobject.h
+lib/libpython%%XYDOT%%%%ABI%%.so
+lib/libpython%%XYDOT%%%%ABI%%.so.1
+lib/libpython%%XYDOT%%%%ABI%%.so.1.0
+lib/libpython%%XYDOT%%%%ABI%%.so.1.0-gdb.py
+lib/python%%XYDOT%%/LICENSE.txt
+lib/python%%XYDOT%%/__future__.py
+lib/python%%XYDOT%%/__hello__.py
+lib/python%%XYDOT%%/__phello__/__init__.py
+lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__phello__/spam.py
+lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_bootsubprocess.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_bootsubprocess.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_bootsubprocess.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_compression.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_compression.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_compression.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd%%OSMAJOR%%_.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd%%OSMAJOR%%_.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd%%OSMAJOR%%_.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/aifc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/aifc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/aifc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/asynchat.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/asynchat.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/asynchat.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/asyncore.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/asyncore.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/asyncore.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/cgi.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/cgi.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/cgi.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/cgitb.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/cgitb.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/cgitb.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/chunk.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/chunk.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/chunk.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/crypt.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/crypt.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/crypt.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/fnmatch.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/fnmatch.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/fnmatch.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/fractions.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/fractions.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/fractions.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/ftplib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/ftplib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/ftplib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/functools.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/functools.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/functools.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/genericpath.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/genericpath.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/genericpath.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/getopt.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/getopt.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/getopt.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/getpass.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/getpass.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/getpass.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/gettext.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/gettext.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/gettext.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/glob.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/glob.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/glob.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/graphlib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/graphlib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/graphlib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/gzip.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/gzip.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/gzip.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/hashlib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/hashlib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/hashlib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/heapq.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/heapq.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/heapq.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/hmac.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/hmac.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/hmac.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/imaplib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/imaplib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/imaplib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/imghdr.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/imghdr.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/imghdr.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/imp.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/imp.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/imp.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/inspect.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/inspect.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/inspect.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/io.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/io.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/io.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/ipaddress.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/ipaddress.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/ipaddress.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/keyword.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/keyword.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/keyword.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/linecache.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/linecache.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/linecache.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/locale.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/locale.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/locale.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/lzma.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/lzma.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/lzma.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/mailbox.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/mailbox.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/mailbox.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/mailcap.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/mailcap.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/mailcap.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/mimetypes.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/mimetypes.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/mimetypes.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/modulefinder.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/modulefinder.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/modulefinder.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/netrc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/netrc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/netrc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/nntplib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/nntplib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/nntplib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/ntpath.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/ntpath.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/ntpath.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/nturl2path.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/nturl2path.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/nturl2path.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/numbers.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/numbers.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/numbers.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/opcode.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/opcode.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/opcode.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/operator.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/operator.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/operator.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/optparse.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/optparse.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/optparse.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/os.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/os.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/os.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pathlib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pathlib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pathlib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pdb.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pdb.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pdb.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pickle.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pickle.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pickle.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pickletools.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pickletools.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pickletools.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pipes.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pipes.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pipes.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pkgutil.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pkgutil.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pkgutil.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/platform.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/platform.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/platform.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/plistlib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/plistlib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/plistlib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/poplib.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/poplib.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/poplib.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/posixpath.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/posixpath.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/posixpath.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pprint.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pprint.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pprint.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/profile.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/profile.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/profile.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pstats.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pstats.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pstats.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pty.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pty.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pty.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/py_compile.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/py_compile.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/py_compile.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pyclbr.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pyclbr.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pyclbr.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/pydoc.cpython-%%XY%%.opt-1.pyc
+lib/python%%XYDOT%%/__pycache__/pydoc.cpython-%%XY%%.opt-2.pyc
+lib/python%%XYDOT%%/__pycache__/pydoc.cpython-%%XY%%.pyc
+lib/python%%XYDOT%%/__pycache__/queue.cpython-%%XY%%.opt-1.pyc
*** 6981 LINES SKIPPED ***