summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Matteo Bernardini2018-05-19 20:16:29 +0200
committer Matteo Bernardini2018-06-09 09:35:05 +0200
commit1d9069c40bedabe9c7eb69ec7fcd30b1b011172d (patch)
tree926ea4dbeb8382d0a5c434ac57e743a2d07db400
parent81c344443219574587ae3d6bccb8f19c1bd346af (diff)
downloadold.slackbuilds-texlive.tar.gz
office/texlive: Removed (added to Slackware).texlive
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r--office/texlive/README15
-rw-r--r--office/texlive/README.tlpkg17
-rw-r--r--office/texlive/doinst.sh4
-rw-r--r--office/texlive/patches/texlive-20170524-source-gcc7-1.patch33
-rw-r--r--office/texlive/patches/texlive-20170524-source-upstream_fixes-2.patch451
-rw-r--r--office/texlive/patches/texlive-poppler-0.59.patch1142
-rw-r--r--office/texlive/prep/dump.unused.internal.libraries.from.sources.sh15
-rw-r--r--office/texlive/prep/texmf_get.sh752
-rw-r--r--office/texlive/slack-desc19
-rw-r--r--office/texlive/texlive.SlackBuild246
-rw-r--r--office/texlive/texlive.info12
11 files changed, 0 insertions, 2706 deletions
diff --git a/office/texlive/README b/office/texlive/README
deleted file mode 100644
index 1498b10711..0000000000
--- a/office/texlive/README
+++ /dev/null
@@ -1,15 +0,0 @@
-TeXLive (TeXLive binaries, support files, TeX formats)
-
-This package contains binaries (including xindy and biber)
-and many support files, TeX formats and packages, and other files included
-in the TeXLive TeX distribution. This should be adequate for the needs of
-most TeX users.
-
-The remaining stuff can be found in texlive-extra, texlive-fonts, and
-texlive-docs, all of which are also available at SlackBuilds.org.
-
-Have a look at the scripts in the prep/ directory to see how the texmf
-archives were created from the original Texlive netarchives.
-
-Note that this package conflicts with the tetex packages in Slackware,
-so you'll need to remove tetex and tetex-doc before installing TeXLive.
diff --git a/office/texlive/README.tlpkg b/office/texlive/README.tlpkg
deleted file mode 100644
index 7a6f790ca8..0000000000
--- a/office/texlive/README.tlpkg
+++ /dev/null
@@ -1,17 +0,0 @@
-The TeXLive Package Manager, i.e. tlmgr(1), is not shipped with this
-TeXLive package, as it's not expected to work properly (if at all).
-The general consensus from the TeXLive users mailing list is that
-distributions should not be shipping tlpkg.
-
-The *proper* way to upgrade the TeXLive Slackware package (or any
-part of it) is through your Slackware's package manager. If you
-elect to try tlmgr(1), and it doesn't work at all, or worse, it messes
-up part of your TeXLive installation, too bad. On the other hand,
-if you are able to document exactly what we need to do in order to
-make it:
- 1) work
- 2) put updates and such in a user-specific directory, i.e.
- *not* alter/replace system package contents
-then we would love to hear from you. :-)
-
---rworkman :-)
diff --git a/office/texlive/doinst.sh b/office/texlive/doinst.sh
deleted file mode 100644
index 2a6c92bace..0000000000
--- a/office/texlive/doinst.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-chroot . /usr/bin/mktexlsr 1>/dev/null 2>/dev/null
-printf "y\n" | chroot . /usr/bin/updmap-sys --syncwithtrees 1>/dev/null 2>/dev/null
-chroot . /usr/bin/fmtutil-sys --all 1>/dev/null 2>/dev/null
-chroot . /usr/bin/mtxrun --generate 1>/dev/null 2>/dev/null
diff --git a/office/texlive/patches/texlive-20170524-source-gcc7-1.patch b/office/texlive/patches/texlive-20170524-source-gcc7-1.patch
deleted file mode 100644
index c2d3521a5b..0000000000
--- a/office/texlive/patches/texlive-20170524-source-gcc7-1.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
-Date: 2017-06-05
-Initial Package Version: 20170524
-Upstream Status: Unknown
-Origin: http://tug.org/pipermail/tex-live/2017-June/040192.html
-Description: From Dr. Werner Fink of SuSe, fixes compilation with gcc-7.1
-
-diff -Naur texlive-20170524-source.orig/texk/web2c/luatexdir/luaffi/ctype.c texlive-20170524-source/texk/web2c/luatexdir/luaffi/ctype.c
---- texlive-20170524-source.orig/texk/web2c/luatexdir/luaffi/ctype.c 2017-02-10 01:03:59.000000000 +0000
-+++ texlive-20170524-source/texk/web2c/luatexdir/luaffi/ctype.c 2017-06-05 02:32:34.548531839 +0100
-@@ -245,6 +245,10 @@
-
- lua_pop(L, 1); /* mt */
- cd = (struct cdata*) lua_touserdata(L, idx);
-+ if (!cd) {
-+ lua_pushnil(L);
-+ return NULL;
-+ }
- *ct = cd->type;
- lua_getuservalue(L, idx);
-
-diff -Naur texlive-20170524-source.orig/texk/web2c/luatexdir/luaffi/ffi.h texlive-20170524-source/texk/web2c/luatexdir/luaffi/ffi.h
---- texlive-20170524-source.orig/texk/web2c/luatexdir/luaffi/ffi.h 2017-03-11 01:04:06.000000000 +0000
-+++ texlive-20170524-source/texk/web2c/luatexdir/luaffi/ffi.h 2017-06-05 02:32:34.548531839 +0100
-@@ -370,7 +370,7 @@
- #endif
- struct cdata {
- const struct ctype type
--#ifdef __GNUC__
-+#if 0 /* def __GNUC__ */
- __attribute__ ((aligned(16)))
- #endif
- ;
diff --git a/office/texlive/patches/texlive-20170524-source-upstream_fixes-2.patch b/office/texlive/patches/texlive-20170524-source-upstream_fixes-2.patch
deleted file mode 100644
index e4ea52e28c..0000000000
--- a/office/texlive/patches/texlive-20170524-source-upstream_fixes-2.patch
+++ /dev/null
@@ -1,451 +0,0 @@
-Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
-Date: 2017-06-13
-Initial Package Version: 2017-05-25
-Upstream Status: Applied
-Origin: Upstream
-Description: Consolidated fixes for luatex.
-
-1. Removes debugging code which was accidentally left in
-luatex, which made the (infrequently needed) io.popen useless. Also
-disables io.saved_popen and changes the reported date of the luatex
-version.
-
-2. Fix for io.lines (fixed in r44572).
-
-diff -Naur a/texk/web2c/luatexdir/lua/liolibext.c b/texk/web2c/luatexdir/lua/liolibext.c
---- a/texk/web2c/luatexdir/lua/liolibext.c 2017-03-11 01:04:06.000000000 +0000
-+++ b/texk/web2c/luatexdir/lua/liolibext.c 2017-06-11 01:49:11.813308882 +0100
-@@ -365,7 +365,7 @@
- lua_pushliteral(L,"all command execution is disabled");
- } else if (restrictedshell == 0) {
- lua_pushboolean(L,1);
-- lua_pushliteral(L,"all commands are permitted");
-+ lua_pushstring(L,filename);
- } else {
- char *safecmd = NULL;
- char *cmdname = NULL;
-@@ -374,10 +374,6 @@
- lua_pushboolean(L,0);
- lua_pushliteral(L, "specific command execution disabled");
- break;
-- case 1:
-- lua_pushboolean(L,1);
-- lua_pushstring(L,filename);
-- break;
- case 2:
- lua_pushboolean(L,1);
- lua_pushstring(L,safecmd);
-diff -Naur a/texk/web2c/luatexdir/lua/luatex-core.c b/texk/web2c/luatexdir/lua/luatex-core.c
---- a/texk/web2c/luatexdir/lua/luatex-core.c 2017-04-19 11:07:10.000000000 +0100
-+++ b/texk/web2c/luatexdir/lua/luatex-core.c 2017-06-12 19:34:37.320003411 +0100
-@@ -52,7 +52,7 @@
- 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f,
- 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
-- 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73,
- 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64,
- 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x69,
-@@ -84,169 +84,175 @@
- 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x2d, 0x2d, 0x20,
- 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
-- 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f,
-- 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20,
-- 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76,
-- 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d,
-- 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c,
-- 0x79, 0x0a, 0x6d, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74,
-- 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73,
-- 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
-- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78,
-- 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f,
-- 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f,
-- 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68,
-- 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64,
-- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69,
-+ 0x0a, 0x2d, 0x2d, 0x20, 0x28, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72,
-+ 0x20, 0x74, 0x6c, 0x31, 0x37, 0x20, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x29, 0x20, 0x69,
-+ 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f,
-+ 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72,
-+ 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64,
-+ 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20,
-+ 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a,
-+ 0x6d, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x5f, 0x6c,
-+ 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72,
-+ 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66,
-+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69,
- 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29,
-- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x68,
-- 0x6f, 0x77, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20,
-- 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, 0x27,
-- 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c,
-- 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63,
-- 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65,
-- 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
-- 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
-- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
-- 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65,
-- 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e,
-- 0x6c, 0x79, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20,
-- 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27,
-- 0x5b, 0x5e, 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20,
-- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20,
-+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77,
-+ 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f,
- 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66,
-- 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27,
-- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
-- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
-- 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65,
-- 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c,
-- 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f,
-- 0x6b, 0x61, 0x79, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f,
-- 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
-- 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b,
-- 0x61, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65,
-- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
-- 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c,
-- 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64,
-- 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
-- 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73,
-- 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
-- 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d,
-- 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20,
-- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
-- 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x68, 0x6f, 0x77,
-+ 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, 0x61, 0x6e,
-+ 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x20,
-+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e,
-+ 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72,
-+ 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27,
-+ 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
-+ 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
-+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f,
-+ 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79,
-+ 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69,
-+ 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f,
-+ 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x5b, 0x5e,
-+ 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68,
-+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68,
-+ 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70,
-+ 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c,
-+ 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
-+ 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
-+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f,
-+ 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e,
-+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61,
-+ 0x79, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x63,
-+ 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e,
-+ 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, 0x61, 0x79,
-+ 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
-+ 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x2e, 0x2e,
-+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
-+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c,
-+ 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e,
-+ 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20,
-+ 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f,
-+ 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20,
-+ 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20,
-+ 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
-+ 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f,
-+ 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
-+ 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
-+ 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75,
-+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f,
-+ 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
-+ 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
- 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66,
-- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
-- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78,
-- 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a,
-- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
-- 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
-- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e,
-- 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64,
-- 0x0a, 0x0a, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61,
-- 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, 0x74, 0x2e,
-- 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69,
-- 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x57,
-- 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
-- 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
-- 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,
-- 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x20, 0x54,
-- 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x61,
-- 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, 0x0a, 0x0a,
-- 0x69, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31,
-- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70,
-- 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f,
-- 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65,
-- 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f,
-- 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66,
-- 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68,
-- 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
-- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e,
-- 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e,
-- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76,
-- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74,
-- 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e,
-- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20,
-- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e,
-- 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e,
-- 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69,
-- 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e,
-- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20,
-- 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20,
-- 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b,
-- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73,
-- 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e,
-- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72,
-- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e,
-- 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6e, 0x69,
-- 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6f,
-- 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f,
-- 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a,
-- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74,
-- 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x68, 0x65, 0x6c,
-- 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65,
-- 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71,
-- 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
-- 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74,
-- 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, 0x27, 0x20, 0x74, 0x68,
-- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66,
-- 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
-- 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x65,
-- 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75,
-- 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65,
-- 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x72, 0x65,
-- 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x61, 0x77, 0x61,
-- 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, 0x20, 0x74, 0x68, 0x65,
-- 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d,
-- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d,
-- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20,
-- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d,
-- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20,
-- 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73,
-- 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73,
-- 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
-- 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61,
-- 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29,
-- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a,
-- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e,
-- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58,
-- 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
-- 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29,
-- 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
-- 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,
-- 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30,
-- 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20,
-- 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
-- 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00
-+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
-+ 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78,
-+ 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, 0x74, 0x2e, 0x6c, 0x69, 0x6e,
-+ 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x72,
-+ 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, 0x61,
-+ 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
-+ 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20,
-+ 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65,
-+ 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73,
-+ 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20,
-+ 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, 0x0a, 0x0a, 0x69, 0x66, 0x20,
-+ 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68,
-+ 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20,
-+ 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
-+ 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d,
-+ 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e,
-+ 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f,
-+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20,
-+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61,
-+ 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f,
-+ 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d,
-+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70,
-+ 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69,
-+ 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x3d,
-+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e,
-+ 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f,
-+ 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20,
-+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74,
-+ 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20,
-+ 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20,
-+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f,
-+ 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c,
-+ 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d,
-+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76,
-+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65,
-+ 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e,
-+ 0x6c, 0x79, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65,
-+ 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20,
-+ 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, 0x31,
-+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d,
-+ 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20,
-+ 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63,
-+ 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
-+ 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69,
-+ 0x6c, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65,
-+ 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c,
-+ 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79,
-+ 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65,
-+ 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35,
-+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
-+ 0x20, 0x73, 0x75, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75,
-+ 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62,
-+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61,
-+ 0x74, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
-+ 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65,
-+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65,
-+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d,
-+ 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73,
-+ 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20,
-+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66,
-+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74,
-+ 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
-+ 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20,
-+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75,
-+ 0x6d, 0x48, 0x45, 0x58, 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75,
-+ 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
-+ 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
-+ 0x28, 0x22, 0x25, 0x30, 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29,
-+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20,
-+ 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00
- };
- return luaL_dostring(L, (const char*) luatex_core_lua);
- }
-\ No newline at end of file
-diff -Naur a/texk/web2c/luatexdir/lua/luatex-core.lua b/texk/web2c/luatexdir/lua/luatex-core.lua
---- a/texk/web2c/luatexdir/lua/luatex-core.lua 2017-04-19 11:07:10.000000000 +0100
-+++ b/texk/web2c/luatexdir/lua/luatex-core.lua 2017-06-12 19:34:37.320003411 +0100
-@@ -16,7 +16,7 @@
-
- local io_open = io.open
- local io_popen = io.popen
--local io_line = io.lines
-+local io_lines = io.lines
-
- local fio_readline = fio.readline
- local fio_checkpermission = fio.checkpermission
-@@ -29,7 +29,7 @@
- local kpseused = status.kpse_used -- 0 1
-
- io.saved_open = io_open -- can be protected
--io.saved_popen = io_popen -- can be protected
-+-- (deleted for tl17 rebuild) io.saved_popen = io_popen -- can be protected
- io.saved_lines = io_lines -- always readonly
- mt.saved_lines = mt_lines -- always readonly
-
-@@ -71,12 +71,16 @@
- end
- end
-
--local function luatex_io_lines(name)
-- local f = io_open(name,'r')
-- if f then
-- return function()
-- return fio_readline(f)
-+local function luatex_io_lines(name,how)
-+ if name then
-+ local f = io_open(name,how or 'r')
-+ if f then
-+ return function()
-+ return fio_readline(f)
-+ end
- end
-+ else
-+ return io_lines()
- end
- end
-
-@@ -122,7 +126,6 @@
- lfs.rmdir = nil
- lfs.mkdir = nil
-
-- io.saved_popen = nil
- io.saved_open = luatex_io_open_readonly
-
- end
-diff -Naur a/texk/web2c/luatexdir/luatex.c b/texk/web2c/luatexdir/luatex.c
---- a/texk/web2c/luatexdir/luatex.c 2017-03-31 14:27:09.000000000 +0100
-+++ b/texk/web2c/luatexdir/luatex.c 2017-06-11 01:49:11.813308882 +0100
-@@ -28,9 +28,11 @@
-
- #define TeX
-
-+/* for tl17 update, change luatex_date_info but nothing else,
-+ as context depends on the numeric version number. */
- int luatex_version = 100; /* \.{\\luatexversion} */
- int luatex_revision = '4'; /* \.{\\luatexrevision} */
--int luatex_date_info = 2017033109; /* the compile date is now hardwired :YEAR MONTH DAY HOUR*/
-+int luatex_date_info = 2017060901; /* the compile date is now hardwired :YEAR MONTH DAY HOUR*/
- const char *luatex_version_string = "1.0.4";
- const char *engine_name = my_name; /* the name of this engine */
-
diff --git a/office/texlive/patches/texlive-poppler-0.59.patch b/office/texlive/patches/texlive-poppler-0.59.patch
deleted file mode 100644
index 401315a64c..0000000000
--- a/office/texlive/patches/texlive-poppler-0.59.patch
+++ /dev/null
@@ -1,1142 +0,0 @@
-diff -ur source.orig/texk/web2c/luatexdir/image/pdftoepdf.w source/texk/web2c/luatexdir/image/pdftoepdf.w
---- source.orig/texk/web2c/luatexdir/image/pdftoepdf.w 2017-05-08 22:39:36.639375783 +0200
-+++ source/texk/web2c/luatexdir/image/pdftoepdf.w 2017-09-19 11:23:36.586768739 +0200
-@@ -224,7 +224,7 @@
- free(checksum);
- }
- if (pdf_doc->doc == NULL) {
-- docmemstream = new MemStream( docstream,0,streamsize, obj.initNull() );
-+ docmemstream = new MemStream( docstream,0,streamsize, Object(objNull) );
- doc = new PDFDoc(docmemstream); /* takes ownership of docmemstream */
- pdf_doc->pc++;
- if (!doc->isOk() || !doc->okToPrint()) {
-@@ -408,9 +408,8 @@
- Object obj1;
- pdf_begin_array(pdf);
- for (i = 0, l = array->getLength(); i < l; ++i) {
-- array->getNF(i, &obj1);
-+ obj1 = array->getNF(i);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- }
- pdf_end_array(pdf);
- }
-@@ -422,9 +421,8 @@
- pdf_begin_dict(pdf);
- for (i = 0, l = dict->getLength(); i < l; ++i) {
- copyName(pdf, dict->getKey(i));
-- dict->getValNF(i, &obj1);
-+ obj1 = dict->getValNF(i);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- }
- pdf_end_dict(pdf);
- }
-@@ -510,13 +508,12 @@
- PDFDoc *doc = pdf_doc->doc;
- xref = doc->getXRef();
- for (r = pdf_doc->inObjList; r != NULL;) {
-- xref->fetch(r->ref.num, r->ref.gen, &obj1);
-+ obj1 = xref->fetch(r->ref.num, r->ref.gen);
- if (obj1.isStream())
- pdf_begin_obj(pdf, r->num, OBJSTM_NEVER);
- else
- pdf_begin_obj(pdf, r->num, 2);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- pdf_end_obj(pdf);
- n = r->next;
- delete r;
-@@ -740,7 +737,7 @@
- catalog = doc->getCatalog();
- page = catalog->getPage(img_pagenum(idict));
- pageref = catalog->getPageRef(img_pagenum(idict));
-- doc->getXRef()->fetch(pageref->num, pageref->gen, &pageobj);
-+ pageobj = doc->getXRef()->fetch(pageref->num, pageref->gen);
- pageDict = pageobj.getDict();
- /* write the Page header */
- pdf_begin_obj(pdf, img_objnum(idict), OBJSTM_NEVER);
-@@ -757,12 +754,11 @@
- pdf_dict_add_int(pdf, "PTEX.PageNumber", (int) img_pagenum(idict));
- }
- if ((suppress_optional_info & 8) == 0) {
-- doc->getDocInfoNF(&obj1);
-+ obj1 = doc->getDocInfoNF();
- if (obj1.isRef()) {
- /* the info dict must be indirect (PDF Ref p. 61) */
- pdf_dict_add_ref(pdf, "PTEX.InfoDict", addInObj(pdf, pdf_doc, obj1.getRef()));
- }
-- obj1.free();
- }
- if (img_is_bbox(idict)) {
- bbox[0] = sp2bp(img_bbox(idict)[0]);
-@@ -788,19 +784,17 @@
- Now all relevant parts of the Page dictionary are copied. Metadata validity
- check is needed(as a stream it must be indirect).
- */
-- pageDict->lookupNF("Metadata", &obj1);
-+ obj1 = pageDict->lookupNF("Metadata");
- if (!obj1.isNull() && !obj1.isRef())
- formatted_warning("pdf inclusion","/Metadata must be indirect object");
-- obj1.free();
- /* copy selected items in Page dictionary */
- for (i = 0; pagedictkeys[i] != NULL; i++) {
-- pageDict->lookupNF(pagedictkeys[i], &obj1);
-+ obj1 = pageDict->lookupNF(pagedictkeys[i]);
- if (!obj1.isNull()) {
- pdf_add_name(pdf, pagedictkeys[i]);
- /* preserves indirection */
- copyObject(pdf, pdf_doc, &obj1);
- }
-- obj1.free();
- }
- /*
- If there are no Resources in the Page dict of the embedded page,
-@@ -808,32 +802,28 @@
- PDF file, climbing up the tree until the Resources are found.
- (This fixes a problem with Scribus 1.3.3.14.)
- */
-- pageDict->lookupNF("Resources", &obj1);
-+ obj1 = pageDict->lookupNF("Resources");
- if (obj1.isNull()) {
- op1 = &pagesobj1;
- op2 = &pagesobj2;
-- pageDict->lookup("Parent", op1);
-+ *op1 = pageDict->lookup("Parent");
- while (op1->isDict()) {
-- obj1.free();
-- op1->dictLookupNF("Resources", &obj1);
-+ obj1 = op1->dictLookupNF("Resources");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "Resources");
- copyObject(pdf, pdf_doc, &obj1);
- break;
- }
-- op1->dictLookup("Parent", op2);
-+ *op2 = op1->dictLookup("Parent");
- optmp = op1;
- op1 = op2;
- op2 = optmp;
-- op2->free();
- };
- if (!op1->isDict())
- formatted_warning("pdf inclusion","Page /Resources missing");
-- op1->free();
- }
-- obj1.free();
- /* Write the Page contents. */
-- page->getContents(&contents);
-+ contents = page->getContents();
- if (contents.isStream()) {
- /*
- Variant A: get stream and recompress under control of \pdfcompresslevel
-@@ -844,27 +834,23 @@
-
- Variant B: copy stream without recompressing
- */
-- contents.streamGetDict()->lookup("F", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("F");
- if (!obj1.isNull()) {
- normal_error("pdf inclusion","unsupported external stream");
- }
-- obj1.free();
-- contents.streamGetDict()->lookup("Length", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("Length");
- pdf_add_name(pdf, "Length");
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
-- contents.streamGetDict()->lookup("Filter", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("Filter");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "Filter");
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
-- contents.streamGetDict()->lookup("DecodeParms", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "DecodeParms");
- copyObject(pdf, pdf_doc, &obj1);
- }
- }
-- obj1.free();
- pdf_end_dict(pdf);
- pdf_begin_stream(pdf);
- copyStreamStream(pdf, contents.getStream()->getUndecodedStream());
-@@ -875,8 +861,8 @@
- pdf_end_dict(pdf);
- pdf_begin_stream(pdf);
- for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
-- copyStreamStream(pdf, (contents.arrayGet(i, &obj1))->getStream());
-- obj1.free();
-+ obj1 = contents.arrayGet(i);
-+ copyStreamStream(pdf, obj1.getStream());
- if (i < (l - 1)) {
- /*
- Put a space between streams to be on the safe side (streams
-@@ -897,8 +883,6 @@
- }
- /* write out all indirect objects */
- writeRefs(pdf, pdf_doc);
-- contents.free();
-- pageobj.free();
- /*
- unrefPdfDocument() must come after contents.free() and pageobj.free()!
- TH: The next line makes repeated pdf inclusion unacceptably slow
-diff -ur source.orig/texk/web2c/luatexdir/lua/lepdflib.cc source/texk/web2c/luatexdir/lua/lepdflib.cc
---- source.orig/texk/web2c/luatexdir/lua/lepdflib.cc 2017-05-08 22:39:36.689375107 +0200
-+++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2017-09-19 09:48:19.658021769 +0200
-@@ -538,7 +538,7 @@
- pdfdoc_changed_error(L); \
- uout = new_Object_userdata(L); \
- uout->d = new Object(); \
-- ((in *) uin->d)->function((Object *) uout->d); \
-+ *((Object *)uout->d) = ((in *) uin->d)->function(); \
- uout->atype = ALLOC_LEPDF; \
- uout->pc = uin->pc; \
- uout->pd = uin->pd; \
-@@ -668,13 +668,11 @@
-
- static int m_Array_incRef(lua_State * L)
- {
-- int i;
- udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Array);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Array *) uin->d)->incRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -685,8 +683,7 @@
- uin = (udstruct *) luaL_checkudata(L, 1, M_Array);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Array *) uin->d)->decRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -702,7 +699,7 @@
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uobj->pd != NULL && uobj->pd->pc != uobj->pc))
- pdfdoc_changed_error(L);
-- ((Array *) uin->d)->add(((Object *) uobj->d));
-+ ((Array *) uin->d)->add(std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -718,7 +715,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Array *) uin->d)->get(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Array *) uin->d)->get(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -739,7 +736,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Array *) uin->d)->getNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -953,25 +950,21 @@
-
- static int m_Dict_incRef(lua_State * L)
- {
-- int i;
- udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Dict *) uin->d)->incRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
- static int m_Dict_decRef(lua_State * L)
- {
-- int i;
- udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Dict *) uin->d)->decRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -986,7 +979,7 @@
- pdfdoc_changed_error(L);
- s = copyString(luaL_checkstring(L, 2));
- uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
-- ((Dict *) uin->d)->add(s, ((Object *) uobj->d));
-+ ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -999,7 +992,7 @@
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
- uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
-- ((Dict *) uin->d)->set(s, ((Object *) uobj->d));
-+ ((Dict *) uin->d)->set(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1027,7 +1020,7 @@
- s = luaL_checkstring(L, 2);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->lookup(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->lookup(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1044,7 +1037,7 @@
- s = luaL_checkstring(L, 2);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->lookupNF(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1096,7 +1089,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->getVal(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->getVal(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1117,7 +1110,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->getValNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1381,9 +1374,9 @@
- pdfdoc_changed_error(L);
- luaL_checktype(L, 2, LUA_TBOOLEAN);
- if (lua_toboolean(L, 2) != 0)
-- ((Object *) uin->d)->initBool(gTrue);
-+ *((Object *) uin->d) = Object(gTrue);
- else
-- ((Object *) uin->d)->initBool(gFalse);
-+ *((Object *) uin->d) = Object(gFalse);
- return 0;
- }
-
-@@ -1395,7 +1388,7 @@
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- i = luaL_checkint(L, 2);
-- ((Object *) uin->d)->initInt(i);
-+ *((Object *) uin->d) = Object(i);
- return 0;
- }
-
-@@ -1407,7 +1400,7 @@
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- d = luaL_checknumber(L, 2);
-- ((Object *) uin->d)->initReal(d);
-+ *((Object *) uin->d) = Object(d);
- return 0;
- }
-
-@@ -1422,7 +1415,7 @@
- pdfdoc_changed_error(L);
- s = luaL_checklstring(L, 2, &len);
- gs = new GooString(s, len);
-- ((Object *) uin->d)->initString(gs);
-+ *((Object *) uin->d) = Object(gs);
- return 0;
- }
-
-@@ -1434,7 +1427,7 @@
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
-- ((Object *) uin->d)->initName(s);
-+ *((Object *) uin->d) = Object(objName, s);
- return 0;
- }
-
-@@ -1444,13 +1437,14 @@
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initNull();
-+ *((Object *) uin->d) = Object(objNull);
- return 0;
- }
-
- static int m_Object_initArray(lua_State * L)
- {
- udstruct *uin, *uxref;
-+ Array *a;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef);
- if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd)
-@@ -1458,7 +1452,8 @@
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uxref->pd != NULL && uxref->pd->pc != uxref->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initArray((XRef *) uxref->d);
-+ a = new Array((XRef *) uxref->d);
-+ *((Object *) uin->d) = Object(a);
- return 0;
- }
-
-@@ -1469,6 +1464,7 @@
- static int m_Object_initDict(lua_State * L)
- {
- udstruct *uin, *uxref;
-+ Dict *d;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef);
- if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd)
-@@ -1476,7 +1472,8 @@
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uxref->pd != NULL && uxref->pd->pc != uxref->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initDict((XRef *) uxref->d);
-+ d = new Dict((XRef *) uxref->d);
-+ *((Object *) uin->d) = Object(d);
- return 0;
- }
-
-@@ -1490,7 +1487,7 @@
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (ustream->pd != NULL && ustream->pd->pc != ustream->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initStream((Stream *) ustream->d);
-+ *((Object *) uin->d) = Object((Stream *) ustream->d);
- return 0;
- }
-
-@@ -1503,7 +1500,7 @@
- pdfdoc_changed_error(L);
- num = luaL_checkint(L, 2);
- gen = luaL_checkint(L, 3);
-- ((Object *) uin->d)->initRef(num, gen);
-+ *((Object *) uin->d) = Object(num, gen);
- return 0;
- }
-
-@@ -1515,7 +1512,7 @@
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
-- ((Object *) uin->d)->initCmd(CHARP_CAST s);
-+ *((Object *) uin->d) = Object(objCmd, CHARP_CAST s);
- return 0;
- }
-
-@@ -1525,7 +1522,7 @@
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initError();
-+ *((Object *) uin->d) = Object(objError);
- return 0;
- }
-
-@@ -1535,7 +1532,7 @@
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initEOF();
-+ *((Object *) uin->d) = Object(objEOF);
- return 0;
- }
-
-@@ -1551,7 +1548,7 @@
- pdfdoc_changed_error(L);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->fetch((XRef *) uxref->d, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->fetch((XRef *) uxref->d);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1816,7 +1813,7 @@
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isArray())
- luaL_error(L, "Object is not an Array");
-- ((Object *) uin->d)->arrayAdd((Object *) uobj->d);
-+ ((Object *) uin->d)->arrayAdd(std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1833,7 +1830,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->arrayGet(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGet(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1857,7 +1854,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->arrayGetNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1897,7 +1894,7 @@
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isDict())
- luaL_error(L, "Object is not a Dict");
-- ((Object *) uin->d)->dictAdd(copyString(s), (Object *) uobj->d);
-+ ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1915,7 +1912,7 @@
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isDict())
- luaL_error(L, "Object is not a Dict");
-- ((Object *) uin->d)->dictSet(s, (Object *) uobj->d);
-+ ((Object *) uin->d)->dictSet(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1930,7 +1927,7 @@
- if (((Object *) uin->d)->isDict()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictLookup(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookup(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1950,7 +1947,7 @@
- if (((Object *) uin->d)->isDict()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictLookupNF(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1991,7 +1988,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictGetVal(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetVal(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2015,7 +2012,7 @@
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictGetValNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2243,7 +2240,7 @@
- m_poppler_get_poppler(Page, Dict, getPieceInfo);
- m_poppler_get_poppler(Page, Dict, getSeparationInfo);
- m_poppler_get_poppler(Page, Dict, getResourceDict);
--m_poppler_get_OBJECT(Page, getAnnots);
-+m_poppler_get_OBJECT(Page, getAnnotsObject);
-
- m_poppler_get_OBJECT(Page, getContents);
-
-@@ -2270,7 +2267,7 @@
- {"getPieceInfo", m_Page_getPieceInfo},
- {"getSeparationInfo", m_Page_getSeparationInfo},
- {"getResourceDict", m_Page_getResourceDict},
-- {"getAnnots", m_Page_getAnnots},
-+ {"getAnnots", m_Page_getAnnotsObject},
- {"getContents", m_Page_getContents},
- {"__tostring", m_Page__tostring},
- {NULL, NULL} // sentinel
-@@ -2520,7 +2517,7 @@
- if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((PdfDocument *) uin->d)->doc->getDocInfo((Object *) uout->d);
-+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfo();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2538,7 +2535,7 @@
- if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((PdfDocument *) uin->d)->doc->getDocInfoNF((Object *) uout->d);
-+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfoNF();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2841,7 +2838,7 @@
- uout = new_Object_userdata(L);
- uout->d = new Object();
- origin = (Object *) (((Attribute *) uin->d)->getValue());
-- origin->copy ( ((Object *)uout->d) );
-+ *((Object *) uout->d) = origin->copy();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -3320,7 +3317,7 @@
- parent = root->findParentElement(i-1);
- if (parent != NULL) {
- uout = new_StructElement_userdata(L);
-- uout->d = new StructElement( *parent );
-+ uout->d = (StructElement *) parent;
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -3370,7 +3367,7 @@
- gen = luaL_checkint(L, 3);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((XRef *) uin->d)->fetch(num, gen, (Object *) uout->d);
-+ *((Object *) uout->d) = ((XRef *) uin->d)->fetch(num, gen);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-diff -ur source.orig/texk/web2c/luatexdir/lua/lpdfscannerlib.cc source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc
---- source.orig/texk/web2c/luatexdir/lua/lpdfscannerlib.cc 2017-05-08 22:39:36.692708395 +0200
-+++ source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc 2017-09-19 09:48:19.658021769 +0200
-@@ -634,7 +634,7 @@
- int i;
- for (i=0;i<count;i++) {
- Object *val = new Object();
-- arrayref->get(i, val);
-+ *val = arrayref->get(i);
- if (val->isStream()) {
- ObjectList *rover = self->_streams;
- ObjectList *item = (ObjectList *)priv_xmalloc (sizeof(ObjectList));
-diff -ur source.orig/texk/web2c/pdftexdir/pdftoepdf.cc source/texk/web2c/pdftexdir/pdftoepdf.cc
---- source.orig/texk/web2c/pdftexdir/pdftoepdf.cc 2017-06-16 21:49:09.293857387 +0200
-+++ source/texk/web2c/pdftexdir/pdftoepdf.cc 2017-09-19 09:48:19.661355046 +0200
-@@ -84,31 +84,6 @@
- #define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04
- #define MASK_SUPPRESS_PTEX_INFODICT 0x08
-
--// PdfObject encapsulates the xpdf Object type,
--// and properly frees its resources on destruction.
--// Use obj-> to access members of the Object,
--// and &obj to get a pointer to the object.
--// It is no longer necessary to call Object::free explicitely.
--
--class PdfObject {
-- public:
-- PdfObject() { // nothing
-- } ~PdfObject() {
-- iObject.free();
-- }
-- Object *operator->() {
-- return &iObject;
-- }
-- Object *operator&() {
-- return &iObject;
-- }
-- private: // no copying or assigning
-- PdfObject(const PdfObject &);
-- void operator=(const PdfObject &);
-- public:
-- Object iObject;
--};
--
- // When copying the Resources of the selected page, all objects are copied
- // recusively top-down. Indirect objects however are not fetched during
- // copying, but get a new object number from pdfTeX and then will be
-@@ -212,18 +187,6 @@
- delete pdf_doc;
- }
-
--// Replacement for
--// Object *initDict(Dict *dict1){ initObj(objDict); dict = dict1; return this; }
--
--static void initDictFromDict(PdfObject & obj, Dict * dict)
--{
-- obj->initDict(xref);
-- for (int i = 0, l = dict->getLength(); i < l; i++) {
-- Object obj1;
-- obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
-- }
--}
--
- // --------------------------------------------------------------------
-
- static int addEncoding(GfxFont * gfont)
-@@ -320,10 +283,10 @@
-
- static void copyDictEntry(Object * obj, int i)
- {
-- PdfObject obj1;
-+ Object obj1;
- copyName(obj->dictGetKey(i));
- pdf_puts(" ");
-- obj->dictGetValNF(i, &obj1);
-+ obj1 = obj->dictGetValNF(i);
- copyObject(&obj1);
- pdf_puts("\n");
- }
-@@ -376,17 +339,17 @@
- static void copyProcSet(Object * obj)
- {
- int i, l;
-- PdfObject procset;
-+ Object procset;
- if (!obj->isArray())
- pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>",
- obj->getTypeName());
- pdf_puts("/ProcSet [ ");
- for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
-- obj->arrayGetNF(i, &procset);
-- if (!procset->isName())
-+ procset = obj->arrayGetNF(i);
-+ if (!procset.isName())
- pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
-- procset->getTypeName());
-- copyName(procset->getName());
-+ procset.getTypeName());
-+ copyName(procset.getName());
- pdf_puts(" ");
- }
- pdf_puts("]\n");
-@@ -394,10 +357,29 @@
-
- #define REPLACE_TYPE1C true
-
-+static bool embeddableFont(Object * fontdesc)
-+{
-+ Object fontfile, ffsubtype;
-+
-+ if (!fontdesc->isDict())
-+ return false;
-+ fontfile = fontdesc->dictLookup("FontFile");
-+ if (fontfile.isStream())
-+ return true;
-+ if (REPLACE_TYPE1C) {
-+ fontfile = fontdesc->dictLookup("FontFile3");
-+ if (!fontfile.isStream())
-+ return false;
-+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype");
-+ return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C");
-+ }
-+ return false;
-+}
-+
- static void copyFont(char *tag, Object * fontRef)
- {
-- PdfObject fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
-- fontfile, ffsubtype, stemV;
-+ Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
-+ stemV;
- GfxFont *gfont;
- fd_entry *fd;
- fm_entry *fontmap;
-@@ -413,33 +395,39 @@
- }
- // Only handle included Type1 (and Type1C) fonts; anything else will be copied.
- // Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true.
-- if (!fixedinclusioncopyfont && fontRef->fetch(xref, &fontdict)->isDict()
-- && fontdict->dictLookup("Subtype", &subtype)->isName()
-- && !strcmp(subtype->getName(), "Type1")
-- && fontdict->dictLookup("BaseFont", &basefont)->isName()
-- && fontdict->dictLookupNF("FontDescriptor", &fontdescRef)->isRef()
-- && fontdescRef->fetch(xref, &fontdesc)->isDict()
-- && (fontdesc->dictLookup("FontFile", &fontfile)->isStream()
-- || (REPLACE_TYPE1C
-- && fontdesc->dictLookup("FontFile3", &fontfile)->isStream()
-- && fontfile->streamGetDict()->lookup("Subtype",
-- &ffsubtype)->isName()
-- && !strcmp(ffsubtype->getName(), "Type1C")))
-- && (fontmap = lookup_fontmap(basefont->getName())) != NULL) {
-+ fontdict = fontRef->fetch(xref);
-+ fontdesc = Object(objNull);
-+ if (fontdict.isDict()) {
-+ subtype = fontdict.dictLookup("Subtype");
-+ basefont = fontdict.dictLookup("BaseFont");
-+ fontdescRef = fontdict.dictLookupNF("FontDescriptor");
-+ if (fontdescRef.isRef()) {
-+ fontdesc = fontdescRef.fetch(xref);
-+ }
-+ }
-+ if (!fixedinclusioncopyfont && fontdict.isDict()
-+ && subtype.isName()
-+ && !strcmp(subtype.getName(), "Type1")
-+ && basefont.isName()
-+ && fontdescRef.isRef()
-+ && fontdesc.isDict()
-+ && embeddableFont(&fontdesc)
-+ && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
- // round /StemV value, since the PDF input is a float
- // (see Font Descriptors in PDF reference), but we only store an
- // integer, since we don't want to change the struct.
-- fontdesc->dictLookup("StemV", &stemV);
-- fd = epdf_create_fontdescriptor(fontmap, zround(stemV->getNum()));
-- if (fontdesc->dictLookup("CharSet", &charset) &&
-- charset->isString() && is_subsetable(fontmap))
-- epdf_mark_glyphs(fd, charset->getString()->getCString());
-+ stemV = fontdesc.dictLookup("StemV");
-+ fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum()));
-+ charset = fontdesc.dictLookup("CharSet");
-+ if (!charset.isNull() &&
-+ charset.isString() && is_subsetable(fontmap))
-+ epdf_mark_glyphs(fd, charset.getString()->getCString());
- else
- embed_whole_font(fd);
-- addFontDesc(fontdescRef->getRef(), fd);
-+ addFontDesc(fontdescRef.getRef(), fd);
- copyName(tag);
- gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(),
-- fontdict->getDict());
-+ fontdict.getDict());
- pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd,
- addEncoding(gfont)));
- } else {
-@@ -451,24 +439,24 @@
-
- static void copyFontResources(Object * obj)
- {
-- PdfObject fontRef;
-+ Object fontRef;
- int i, l;
- if (!obj->isDict())
- pdftex_fail("PDF inclusion: invalid font resources dict type <%s>",
- obj->getTypeName());
- pdf_puts("/Font << ");
- for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-- obj->dictGetValNF(i, &fontRef);
-- if (fontRef->isRef())
-+ fontRef = obj->dictGetValNF(i);
-+ if (fontRef.isRef())
- copyFont(obj->dictGetKey(i), &fontRef);
-- else if (fontRef->isDict()) { // some programs generate pdf with embedded font object
-+ else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
- copyName(obj->dictGetKey(i));
- pdf_puts(" ");
- copyObject(&fontRef);
- }
- else
- pdftex_fail("PDF inclusion: invalid font in reference type <%s>",
-- fontRef->getTypeName());
-+ fontRef.getTypeName());
- }
- pdf_puts(">>\n");
- }
-@@ -557,7 +545,7 @@
-
- static void copyObject(Object * obj)
- {
-- PdfObject obj1;
-+ Object obj1;
- int i, l, c;
- Ref ref;
- char *p;
-@@ -601,8 +589,8 @@
- } else if (obj->isArray()) {
- pdf_puts("[");
- for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
-- obj->arrayGetNF(i, &obj1);
-- if (!obj1->isName())
-+ obj1 = obj->arrayGetNF(i);
-+ if (!obj1.isName())
- pdf_puts(" ");
- copyObject(&obj1);
- }
-@@ -612,9 +600,8 @@
- copyDict(obj);
- pdf_puts(">>");
- } else if (obj->isStream()) {
-- initDictFromDict(obj1, obj->streamGetDict());
- pdf_puts("<<\n");
-- copyDict(&obj1);
-+ copyDict(obj->getStream()->getDictObject());
- pdf_puts(">>\n");
- pdf_puts("stream\n");
- copyStream(obj->getStream()->getUndecodedStream());
-@@ -638,9 +625,8 @@
- InObj *r;
- for (r = inObjList; r != 0; r = r->next) {
- if (!r->written) {
-- Object obj1;
- r->written = 1;
-- xref->fetch(r->ref.num, r->ref.gen, &obj1);
-+ Object obj1 = xref->fetch(r->ref.num, r->ref.gen);
- if (r->type == objFont) {
- assert(!obj1.isStream());
- pdfbeginobj(r->num, 2); // \pdfobjcompresslevel = 2 is for this
-@@ -656,7 +642,6 @@
- pdf_puts("\n");
- pdfendobj();
- }
-- obj1.free();
- }
- }
- }
-@@ -839,8 +824,8 @@
- Page *page;
- Ref *pageRef;
- Dict *pageDict;
-- PdfObject contents, obj1, obj2, pageObj, dictObj;
-- PdfObject groupDict;
-+ Object contents, obj1, obj2, pageObj, dictObj;
-+ Object groupDict;
- bool writeSepGroup = false;
- Object info;
- char *key;
-@@ -867,8 +852,8 @@
- encodingList = 0;
- page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page);
- pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page);
-- xref->fetch(pageRef->num, pageRef->gen, &pageObj);
-- pageDict = pageObj->getDict();
-+ pageObj = xref->fetch(pageRef->num, pageRef->gen);
-+ pageDict = pageObj.getDict();
- rotate = page->getRotate();
- PDFRectangle *pagebox;
- // write the Page header
-@@ -886,7 +871,7 @@
- pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page);
- }
- if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) {
-- pdf_doc->doc->getDocInfoNF(&info);
-+ info = pdf_doc->doc->getDocInfoNF();
- if (info.isRef()) {
- // the info dict must be indirect (PDF Ref p. 61)
- pdf_printf("/%s.InfoDict ", pdfkeyprefix);
-@@ -942,14 +927,14 @@
- pdf_puts(stripzeros(s));
-
- // Metadata validity check (as a stream it must be indirect)
-- pageDict->lookupNF("Metadata", &dictObj);
-- if (!dictObj->isNull() && !dictObj->isRef())
-+ dictObj = pageDict->lookupNF("Metadata");
-+ if (!dictObj.isNull() && !dictObj.isRef())
- pdftex_warn("PDF inclusion: /Metadata must be indirect object");
-
- // copy selected items in Page dictionary except Resources & Group
- for (i = 0; pageDictKeys[i] != NULL; i++) {
-- pageDict->lookupNF(pageDictKeys[i], &dictObj);
-- if (!dictObj->isNull()) {
-+ dictObj = pageDict->lookupNF(pageDictKeys[i]);
-+ if (!dictObj.isNull()) {
- pdf_newline();
- pdf_printf("/%s ", pageDictKeys[i]);
- copyObject(&dictObj); // preserves indirection
-@@ -957,8 +942,8 @@
- }
-
- // handle page group
-- pageDict->lookupNF("Group", &dictObj);
-- if (!dictObj->isNull()) {
-+ dictObj = pageDict->lookupNF("Group");
-+ if (!dictObj.isNull()) {
- if (pdfpagegroupval == 0) {
- // another pdf with page group was included earlier on the
- // same page; copy the Group entry as is. See manual for
-@@ -972,11 +957,11 @@
- copyObject(&dictObj);
- } else {
- // write Group dict as a separate object, since the Page dict also refers to it
-- pageDict->lookup("Group", &dictObj);
-- if (!dictObj->isDict())
-+ dictObj = pageDict->lookup("Group");
-+ if (!dictObj.isDict())
- pdftex_fail("PDF inclusion: /Group dict missing");
- writeSepGroup = true;
-- initDictFromDict(groupDict, page->getGroup());
-+ groupDict = Object(page->getGroup());
- pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
- }
- }
-@@ -989,14 +974,14 @@
- pdftex_warn
- ("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)");
- } else {
-- initDictFromDict(obj1, page->getResourceDict());
-+ Object *obj1 = page->getResourceDictObject();
- if (!obj1->isDict())
- pdftex_fail("PDF inclusion: invalid resources dict type <%s>",
- obj1->getTypeName());
- pdf_newline();
- pdf_puts("/Resources <<\n");
- for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
-- obj1->dictGetVal(i, &obj2);
-+ obj2 = obj1->dictGetVal(i);
- key = obj1->dictGetKey(i);
- if (strcmp("Font", key) == 0)
- copyFontResources(&obj2);
-@@ -1009,8 +994,8 @@
- }
-
- // write the page contents
-- page->getContents(&contents);
-- if (contents->isStream()) {
-+ contents = page->getContents();
-+ if (contents.isStream()) {
-
- // Variant A: get stream and recompress under control
- // of \pdfcompresslevel
-@@ -1021,36 +1006,35 @@
-
- // Variant B: copy stream without recompressing
- //
-- contents->streamGetDict()->lookup("F", &obj1);
-- if (!obj1->isNull()) {
-+ obj1 = contents.streamGetDict()->lookup("F");
-+ if (!obj1.isNull()) {
- pdftex_fail("PDF inclusion: Unsupported external stream");
- }
-- contents->streamGetDict()->lookup("Length", &obj1);
-- assert(!obj1->isNull());
-+ obj1 = contents.streamGetDict()->lookup("Length");
-+ assert(!obj1.isNull());
- pdf_puts("/Length ");
- copyObject(&obj1);
- pdf_puts("\n");
-- contents->streamGetDict()->lookup("Filter", &obj1);
-- if (!obj1->isNull()) {
-+ obj1 = contents.streamGetDict()->lookup("Filter");
-+ if (!obj1.isNull()) {
- pdf_puts("/Filter ");
- copyObject(&obj1);
- pdf_puts("\n");
-- contents->streamGetDict()->lookup("DecodeParms", &obj1);
-- if (!obj1->isNull()) {
-+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
-+ if (!obj1.isNull()) {
- pdf_puts("/DecodeParms ");
- copyObject(&obj1);
- pdf_puts("\n");
- }
- }
- pdf_puts(">>\nstream\n");
-- copyStream(contents->getStream()->getUndecodedStream());
-+ copyStream(contents.getStream()->getUndecodedStream());
- pdfendstream();
-- } else if (contents->isArray()) {
-+ } else if (contents.isArray()) {
- pdfbeginstream();
-- for (i = 0, l = contents->arrayGetLength(); i < l; ++i) {
-- Object contentsobj;
-- copyStream((contents->arrayGet(i, &contentsobj))->getStream());
-- contentsobj.free();
-+ for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
-+ Object contentsobj = contents.arrayGet(i);
-+ copyStream(contentsobj.getStream());
- if (i < l - 1)
- pdf_newline(); // add a newline after each stream except the last
- }
-diff -ur source.orig/texk/web2c/pdftexdir/pdftosrc.cc source/texk/web2c/pdftexdir/pdftosrc.cc
---- source.orig/texk/web2c/pdftexdir/pdftosrc.cc 2017-06-16 21:49:09.297190679 +0200
-+++ source/texk/web2c/pdftexdir/pdftosrc.cc 2017-09-19 09:48:19.661355046 +0200
-@@ -86,22 +86,20 @@
- objgen = atoi(argv[3]);
- }
- xref = doc->getXRef();
-- catalogDict.initNull();
-- xref->getCatalog(&catalogDict);
-+ catalogDict = xref->getCatalog();
- if (!catalogDict.isDict("Catalog")) {
- fprintf(stderr, "No Catalog found\n");
- exit(1);
- }
-- srcStream.initNull();
-+ srcStream = Object(objNull);
- if (objnum == 0) {
-- catalogDict.dictLookup("SourceObject", &srcStream);
-+ srcStream = catalogDict.dictLookup("SourceObject");
- static char const_SourceFile[] = "SourceFile";
- if (!srcStream.isStream(const_SourceFile)) {
- fprintf(stderr, "No SourceObject found\n");
- exit(1);
- }
-- srcName.initNull();
-- srcStream.getStream()->getDict()->lookup("SourceName", &srcName);
-+ srcName = srcStream.getStream()->getDict()->lookup("SourceName");
- if (!srcName.isString()) {
- fprintf(stderr, "No SourceName found\n");
- exit(1);
-@@ -110,7 +108,7 @@
- // We cannot free srcName, as objname shares its string.
- // srcName.free();
- } else if (objnum > 0) {
-- xref->fetch(objnum, objgen, &srcStream);
-+ srcStream = xref->fetch(objnum, objgen);
- if (!srcStream.isStream()) {
- fprintf(stderr, "Not a Stream object\n");
- exit(1);
-@@ -159,29 +157,26 @@
- int localOffset = 0;
- Guint firstOffset;
-
-- assert(xref->fetch(e->offset, 0, &objStr)->isStream());
-- nObjects = objStr.streamGetDict()->lookup("N", &obj1)->getInt();
-- obj1.free();
-- first = objStr.streamGetDict()->lookup("First", &obj1)->getInt();
-- obj1.free();
-+ objStr = xref->fetch(e->offset, 0);
-+ assert(objStr.isStream());
-+ obj1 = objStr.streamGetDict()->lookup("N");
-+ nObjects = obj1.getInt();
-+ obj1 = objStr.streamGetDict()->lookup("First");
-+ first = obj1.getInt();
- firstOffset = objStr.getStream()->getBaseStream()->getStart() + first;
-
- // parse the header: object numbers and offsets
- objStr.streamReset();
-- obj1.initNull();
-- str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first);
-+ str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
- parser = new Parser(xref, new Lexer(xref, str), gFalse);
- for (n = 0; n < nObjects; ++n) {
-- parser->getObj(&obj1);
-- parser->getObj(&obj2);
-+ obj1 = parser->getObj();
-+ obj2 = parser->getObj();
- if (n == e->gen)
- localOffset = obj2.getInt();
-- obj1.free();
-- obj2.free();
- }
- while (str->getChar() != EOF) ;
- delete parser;
-- objStr.free();
-
- fprintf(outfile, "%.10lu 00000 n\n",
- (long unsigned)(firstOffset + localOffset));
-@@ -192,7 +187,6 @@
- s->reset();
- while ((c = s->getChar()) != EOF)
- fputc(c, outfile);
-- srcStream.free();
- }
- if (objnum == 0)
- fprintf(stderr, "Source file extracted to %s\n", outname);
-@@ -201,7 +195,6 @@
- else
- fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
- fclose(outfile);
-- catalogDict.free();
- delete doc;
- delete globalParams;
- }
diff --git a/office/texlive/prep/dump.unused.internal.libraries.from.sources.sh b/office/texlive/prep/dump.unused.internal.libraries.from.sources.sh
deleted file mode 100644
index 71ab0b53db..0000000000
--- a/office/texlive/prep/dump.unused.internal.libraries.from.sources.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-# Repacks the texlive tarball to remove unused sources.
-
-VERSION=${VERSION:-$(echo texlive-*source.tar.?z* | rev | cut -f 2 -d - | cut -f 1 -d - | rev)}
-
-tar xf texlive-${VERSION}-source.tar.xz || exit 1
-mv texlive-${VERSION}-source.tar.xz texlive-${VERSION}-source.tar.xz.orig
-( cd texlive-${VERSION}-source/libs && rm -rf cairo freetype2 gd gmp mpfr icu libpng pixman zlib )
-( cd texlive-${VERSION}-source/utils && rm -rf asymptote )
-tar cf texlive-${VERSION}-source.tar texlive-${VERSION}-source
-rm -r texlive-${VERSION}-source
-#xz -9 texlive-${VERSION}-source.tar
-xz texlive-${VERSION}-source.tar
-touch -r texlive-${VERSION}-source.tar.xz.orig texlive-${VERSION}-source.tar.xz
-rm texlive-${VERSION}-source.tar.xz.orig
diff --git a/office/texlive/prep/texmf_get.sh b/office/texlive/prep/texmf_get.sh
deleted file mode 100644
index 396fdcebf8..0000000000
--- a/office/texlive/prep/texmf_get.sh
+++ /dev/null
@@ -1,752 +0,0 @@
-#!/bin/bash
-
-# texmf_get.sh (c) 2016-2017 Johannes Schoepfer, Germany, slackbuilds[at]schoepfer[dot]info
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# V 0.14.2
-#
-# Prepare xz-compressed tarballs of texlive-texmf-trees based on texlive.tlpdb
-# This script takes care of dependencies(as far as these are present in texlive.tlpdb) of collections and packages,
-# and that every texlive-package is included only once.
-# The editions(base/extra/fonts/docs) should contain nobinaries(exception biber)
-# -base: the most usefull stuff, all metafonts, all manpages, the most
-# binaries/scripts, 65mb 2017-11-07
-# -docs: -base documentation only, no manpages/GNU infofiles
-# -fonts: fonts only, no metafonts
-# -extra: remaining stuff
-#
-# texlive netarchive policy: Every package is included as dependency
-# in exactly one collection. A package may have dependencies on other
-# packages from any collection.
-
-# package source: http://mirror.ctan.org/systems/texlive/tlnet/archive/
-
-#set -e
-MAJORVERSION=2017
-
-# globally excluded packages, which e.g. are
-# -useless without tlmgr-installer
-# -non-linux
-# -covered by an external package
-# -obsolete
-
-global_exclude="
- asymptote
- tlcockpit
- tlshell
- texosquery
- aleph
- omega
- antomega
- omegaware
- lambda
- otibet
- cslatex
- "
-
-texmf_editions () {
- # At first, $corepackages for the base, and other essentials
- PACKAGES="
- $(cat $corepackages)
- collection-basic
- collection-latex
- collection-metapost
- collection-plaingeneric
- collection-fontutils
- collection-luatex
- collection-context
- cbfonts-fd
- xetex-devanagari
- " texmfget base || exit 1
-
- # Now the fonts package to make sure that big fonts like cm-super are not included elsewhere as dependency
- PACKAGES="
- cm-super
- cbfonts
- ipaex
- wadalab
- ethiop-t1
- fonts-tlwg
- uhc
- fandol
- arphic
- arphic-ttf
- nanumtype1
- baekmuk
- unfonts-extra
- unfonts-core
- " texmfget fonts || exit 1
-
- # put some stuff in "extra" to before these make their way into "base" as dependency
- PACKAGES="
- $(grep ^"name biblatex" $db | grep -v '\.' | cut -d' ' -f2 )
- biber.x86_64-linux
- biber.i386-linux
- bib2gls
- bibarts
- arara
- latex2nemeth
- ghsystem
- adobemapping
- knitting
- pgfornament
- pgfplots
- arabi
- nwejm
- uantwerpendocs
- sduthesis
- stellenbosch
- fithesis
- gregoriotex
- lilyglyphs
- musixtex-fonts
- beebe
- velthuis
- mwe
- pdfx
- media9
- pst-cox
- pst-poker
- pst-vectorian
- pst-geo
- quran
- ijsra
- fibeamer
- udesoftec
- xduthesis
- hustthesis
- bangorcsthesis
- sapthesis
- uowthesis
- cs
- pl
- cc-pl
- tipa
- kerkis
- amiri
- cns
- vntex
- montex
- xcharter
- fonts-churchslavonic
- japanese-otf
- sanskrit-t1
- skaknew
- padauk
- " texmfget extra || exit 1
-
- # Completing the base
- PACKAGES="
- collection-langcyrillic
- collection-langczechslovak
- collection-langeuropean
- collection-langenglish
- collection-langfrench
- collection-langgerman
- collection-langgreek
- collection-langitalian
- collection-langpolish
- collection-langportuguese
- collection-langspanish
- collection-langjapanese
- collection-langkorean
- collection-langarabic
- collection-langchinese
- collection-langcjk
- collection-langother
- collection-xetex
- collection-humanities
- collection-mathscience
- collection-pictures
- collection-publishers
- collection-music
- collection-games
- collection-fontsrecommended
- collection-latexrecommended
- collection-binextra
- collection-bibtexextra
- collection-formatsextra
- collection-latexextra
- acro
- acronym
- acroterm
- enumitem
- enumitem-zref
- yfonts
- doublestroke
- was
- xypic
- barcodes
- qrcode
- lastpage
- appendix
- changebar
- footmisc
- multirow
- overpic
- subfigure
- titlesec
- siunitx
- combelow
- csquotes
- etoolbox
- etextools
- idxlayout
- bidi
- filecontents
- eplain
- texsis
- mltex
- lollipop
- moreverb
- indextools
- splitindex
- eepic
- bigfoot
- xstring
- showexpl
- cweb-latex
- hypdvips
- ptex
- perltex
- collection-pstricks
- $(collection_by_size fontsextra 20000 || exit 1)
- " texmfget base || exit 1
-
- # Put all remaining stuff in "extra"
- # Pull some bin-packages from tlnet, which aren't provided by the texlive source tarball
- PACKAGES="
- collection-texworks
- collection-wintools
- wasy2-ps
- " texmfget extra || exit 1
-
- # Call "fonts" at the end to add remaining fonts
- PACKAGES="
- collection-fontsextra
- " texmfget fonts || exit 1
-
-}
-
-# ==== Nothing to edit beyond this line ====
-
-usage () {
- echo
- echo "Generate texmf trees/editions based on collections/packages and their dependencies."
- echo "./texmf_get.sh [base|docs|extra|fonts]"
- echo
- echo "-base: texfiles, no docs"
- echo "-docs: docs of -base"
- echo "-extra: remaining texfiles and docs"
- echo "-fonts: fonts and docs"
- echo
- echo "Only new/updated/missing tex packages are downloaded."
- echo "The first run takes \"long\", tex packages(about 2500Mb)"
- echo "need to be downloaded and metafiles are generated."
- echo "To check out a new version/release, delete"
- echo "$db"
- echo "A new ascii database is pulled on the next run,"
- echo "and a new version yymmdd is set."
- echo
- echo "All generated tarballs, logs etc. are going to"
- echo "$TMP"
- echo
-}
-
-collection_by_size () {
- # from collection $1, pull packages smaller $2 bytes
- start_n="$(grep -n ^"name collection-$1"$ $db | cut -d':' -f1)"
- # find end of package/collection
- for emptyline in $emptylines
- do
- if [ "$emptyline" -gt "$start_n" ]
- then
- end_n=$emptyline
- break
- fi
- done
- extrapackages="$(sed "${start_n},${end_n}!d" $db | grep ^"depend " | grep -v ^"depend collection" | sed "s/^depend//g" )"
-
- # add if smaller than ...
- for checksize in $extrapackages
- do
- package_meta $checksize || exit 1
- size=$(grep ^"containersize " $texmf/$checksize.meta | cut -d' ' -f2)
- # for $2, e.g. 3000 means 3kb
- [ $size -lt $2 ] && echo $checksize
- done
-}
-
-package_meta () {
- if [ ! -s "$texmf/$1.meta" ]
- then
- # collection start linenumer
- start_n="$(grep -n ^"name ${1}"$ $db | cut -d':' -f1)"
- [ -z "$start_n" ] && echo "$1 was not found in $db, bye." && exit 1
- # find end of package/collection
- for emptyline in $emptylines
- do
- if [ "$emptyline" -gt "$start_n" ]
- then
- end_n=$emptyline
- break
- fi
- done
- # Don't handle collections as dependency of other collections
- sed "${start_n},${end_n}!d;/^depend collection/d" $db > $texmf/$1.meta
- fi
-}
-
-download () {
- # Download packages, if not already available. Not every packages has a corresponding .doc package.
- # Try three times if package isn't present, with -t1 to get another mirror the second time
- cd $texmf
- if [ ! -s "${1}${flavour}.tar.xz" ]
- then
- for run in {1..10}
- do
- wget -t1 -c ${mirror}archive/${1}${flavour}.tar.xz
- [ -s "${1}${flavour}.tar.xz" ] && break
- done
- fi
- # If no success by downloading, write error log
- [ ! -s ${1}${flavour}.tar.xz ] && echo "Downloading ${1}${flavour}.tar.xz did not work, writing to $errorlog" && echo "$VERSION" >> $errorlog && echo "Error downloading ${1}${flavour}.tar.xz" >> $errorlog && exit 1
-
- # check sha512, give three tries for downloading again(diffrent mirrors are used automatically)
- if [ "$flavour" = ".doc" ]
- then
- sha512="$(grep ^doccontainerchecksum $texmf/$1.meta | cut -d' ' -f2 )"
- else
- sha512="$(grep ^containerchecksum $texmf/$1.meta | cut -d' ' -f2 )"
- fi
-
- for run in {1..10}
- do
- if [ "$(sha512sum ${1}${flavour}.tar.xz | cut -d' ' -f1 )" != "$sha512" ]
- then
- # Download (hopefully) newer file
- rm ${1}${flavour}.tar.xz
- wget -t1 -c ${mirror}archive/${1}${flavour}.tar.xz
- else
- break
- fi
- done
- # check sha512 again, exit if it fails
- if [ "$(sha512sum ${1}${flavour}.tar.xz | cut -d' ' -f1 )" != "$sha512" ]
- then
- echo "sha512sum $(sha512sum ${1}${flavour}.tar.xz | cut -d' ' -f1 ) of"
- echo "${package}${flavour}.tar.xz doesn't match with $db"
- # delete metafile on failure to get generated again on next run, where new $db may be in use
- rm $texmf/$1.meta
- echo "sha512sum $sha512"
- echo "Delete ${db}* to be current again, and try again."
- exit 1
- fi
-}
-
-untar () {
- # leave if $1 has no content. Therea collections with basically no used package, e.g. texworks
- if [ -s "$1" ]
- then
- while read package
- do
- # untar all packages, check for relocation, "relocate 1" -> untar in texmf-dist
- download $package || exit 1
- # untar the tex package
- unset relocated
- [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] && relocated="-C texmf-dist"
- tar vxf ${package}${flavour}.tar.xz --exclude tlpkg $relocated || exit 1
-
- # if binaries are present, put them in texmf-dist
- [ -d bin ] && cp -a bin texmf-dist && rm -rf bin
- if [ "$flavour" = ".doc" ]
- then
- size=$(( $(grep ^doccontainersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
- else
- size=$(( $(grep ^containersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
- fi
- shortdesc="$(grep ^shortdesc $texmf/$package.meta | cut -d' ' -f2- )"
- echo "$size Kb, $package$flavour: $shortdesc" >> $output.meta
- #grep ^"execute addMap" $texmf/$package.meta | sed "s/^execute //g" >> $output.updmap.cfg
- done < $1
-
- # copy packages index to texmf-dist, so included packages are known in later installation
- cat $output.meta >> $output.$edition.meta
-
- # cleanup
- [ -f $output.meta ] && rm $output.meta
- fi
-}
-
-remove_cruft () {
- # Remove m$-stuff, ConTeXt single-user-system stuff, source leftovers and pdf-versions of manpages
- rm -rf texmf-dist/source
- rm -rf texmf-dist/scripts/context/stubs/source/
- find texmf-dist/ -type d -name 'win32' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'win64' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'mswin' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'win' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'setup' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'install' -exec rm -rf {} +
- find texmf-dist/ -type f -name '*.bat' -delete
- find texmf-dist/ -type f -name '*.bat.w95' -delete
- find texmf-dist/ -type f -name '*win32*' -delete
- find texmf-dist/ -type f -name 'winansi*' -delete
- find texmf-dist/ -type f -name '*-man.pdf' -delete
- # Remove zero-length files, as these appear e.g. in hyph-utf8 tex-package.
- find . -type f -size 0c -delete
-}
-
-texmfget () {
- # make sure no package is added more than once.
- echo "Preparing index of packages to be added to -${1} ..."
- echo "$PACKAGES" | sed "s/[[:space:]]//g;/^$/d" > $collections_tobedone
- # Remove outputfile if already present
- >$output
- >$output_doc
-
- # Only do something if $collection wasn't already done before
- while [ -s $collections_tobedone ]
- do
- collection=$(tail -n1 $collections_tobedone)
-
- # continue with next collection if collection was already done
- if [ -s "$collections_done" ]
- then
- grep -w "^${collection}$" $collections_done &> /dev/null
- if [ $? = 0 ]
- then
- # remove from $collections_tobedone
- sed -i "/^$collection$/d" $collections_tobedone
- if [ -n "$(grep "^${collection} added to" $logfile)" ]
- then
- echo "$collection already added " >> $logfile
- fi
- continue
- fi
- fi
-
- package_meta $collection || exit 1
-
- # Don't handle collections as dependency of other collections, as this destroys control over what packages to be added
- # If $collection is a singel package(not a collection-), add it here
- if [ -n "$(head -n1 $texmf/$collection.meta | fgrep -v "name collection" )" ]
- then
- # if package contains only docs, add to docpackages
- if [ -z "$(grep ^runfiles $texmf/$collection.meta)" -a -n "$(grep ^docfiles $texmf/$collection.meta)" ]
- then
- sed -i "/^$collection$/d" $collections_tobedone
- echo "$collection" >> $collections_done
- echo "$collection" >> $output_doc
- echo "$collection added to -docs $1" >> $logfile
- continue
- fi
- # if package contains also docs, add also to docpackages
- if [ -n "$(grep ^docfiles $texmf/$collection.meta)" ]
- then
- echo "$collection" >> $output_doc
- echo "$collection added to -docs $1" >> $logfile
- fi
- echo "$collection" >> $output
- echo "$collection added to -$1" >> $logfile
- fi
- # add dependend packages, but no binary(ARCH) and no packages conataining a '.'. Packges with dot indicate binary/texlive-manager/windows packages
- grep ^"depend " $texmf/$collection.meta | grep -v "ARCH$" | grep -v '\.' | cut -d' ' -f2- > $dependencies
- if [ -s "$dependencies" ]
- then
- echo "----------------" >> $logfile
- echo "Dependencies of $collection: $(cat $dependencies | tr '\n' ' ')" >> $logfile
- for dependency in $(cat $dependencies)
- do
- if [ -n "$(grep ^"${dependency}"$ $collections_done)" ]
- then
- sed -i "/^${dependency}$/d" $dependencies
- continue
- else
- for exclude in $global_exclude
- do
- if [ "$exclude" = "$dependency" ]
- then
- sed -i "/^${exclude}$/d" $dependencies
- echo "$exclude excluded, see \$global_exclude" >> $logfile
- fi
- done
- fi
- done
- cat $dependencies >> $collections_tobedone
- echo "----------------" >> $logfile
- fi
-
- sed -i "/^${collection}$/d" $collections_tobedone
- echo "$collection" >> $collections_done
- done
- # handle package index list per edition
- cat $output >> $TMP/packages.$1
- # handle doc package index, one for each edition
- cat $output_doc >> $TMP/packages.$1.doc
-
- # untar only one $edition, untar docs together with -extra/-fonts edition
- if [ "$1" = $edition -o docs = $edition ]
- then
- cd $texmf
-
- # Cleanup tar-directory
- [ -d $texmf/texmf-dist ] && rm -rf $texmf/texmf-dist
- mkdir $texmf/texmf-dist
-
- # Make tarball/checksum reproducible by setting mtime(clamp-mtime), owner, group and sort content
- # --clamp-mtime --mtime doesn't work with tar 1.13, when makepkg creates the tarball:
- # tar-1.13: time_t value 9223372036854775808 too large (max=68719476735)
- case $edition in
- base)
- unset flavour
- untar $output || exit 1
- remove_cruft || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- rm -rf texmf-dist
- ;;
- extra|fonts)
- unset flavour
- untar $output || exit 1
- export flavour=".doc"
- untar $output_doc || exit 1
- remove_cruft || exit 1
- #tar vrf $tarball --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- rm -rf texmf-dist
- ;;
- docs)
- export flavour=".doc"
- # only add -base docs to -docs
- if [ $1 = base ]
- then
- untar $output_doc || exit 1
- remove_cruft || exit 1
- #tar vrf $tarball --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- rm -rf texmf-dist
- fi
- ;;
- esac
- fi
-}
-
-# Main
-
-# release mirror
-mirror="http://mirror.ctan.org/systems/texlive/tlnet/"
-# pre-test mirror 2016
-# mirror="http://ftp.cstug.cz/pub/tex/local/tlpretest/"
-LANG=C
-TMP=$PWD/tmp
-output=$TMP/packages
-output_doc=$TMP/packages.doc.tmp
-errorlog=$TMP/error.log
-texmf=$TMP/texmf
-db=$TMP/texlive.tlpdb
-tmpfile=$TMP/tmpfile
-collections_done=$TMP/done
-collections_tobedone=$TMP/tobedone
-corepackages=$TMP/corepackages
-allcollections=$TMP/allcollections
-metafonts=$TMP/metafonts
-manpages=$TMP/manpages
-dependencies=$TMP/deps
-packages_base=$TMP/packages.base
-packages_extra=$TMP/packages.extra
-packages_fonts=$TMP/packages.fonts
-packages_metafont=$TMP/packages.metafont
-packages_manpages=$TMP/packages.manpages
-
-case "$1" in
- base|docs|extra|fonts) edition=$1; echo "Building $edition tarball ...";;
- *) usage; exit 0 ;;
-esac
-
-mkdir -p $texmf
-cd $TMP
-
-# Set VERSION, get texlive.tlpdb and keep unshorten $db.orig
-if [ ! -s ${db}.orig -o ! -s $db ]
-then
- echo $MAJORVERSION.$(date +%y%m%d) > VERSION
- wget -c -O ${db}.orig ${mirror}tlpkg/texlive.tlpdb
- # remove most content from $db to be faster on later processing.
- # keep dependencies/manpages/metafonts/binfiles/shortdesc/sizes
- egrep '^\S|^ RELOC/doc/man|^ texmf-dist/doc/man/man|^ RELOC/doc/info/|^ texmf-dist/doc/info/|^ texmf-dist/fonts/source/public/|^ RELOC/fonts/source/public|^ bin|^$' ${db}.orig | grep -v ^longdesc > $db
-
- # As $db (might be)/is new, remove the meta-files, might created again with (pontentionally) new content
- rm -rf $texmf/*.meta
-fi
-
-# Get linenumbers of empty lines from $db
-emptylines="$(grep -n ^$ $db | cut -d':' -f1)"
-
-# Provide TLCore packages for -base, as these packages(and their dependencies) should be present in any case.
-grep -B1 ^'category TLCore' $db | grep -v ^'category TLCore' | grep -v ^-- | grep -v '\.' | cut -d' ' -f2 > $corepackages
-
-# Make a list of all collections
-grep ^"name collection-" $db | cut -d' ' -f2 > $allcollections
-
-# globally exclude from $corepackages
-for exclude in $global_exclude
-do
- sed -i "/^${exclude}$/d" $corepackages
-done
-
-VERSION=$(cat $TMP/VERSION)
-tarball=$TMP/texlive-$edition-$VERSION.tar
-# set logfile
-logfile=$TMP/$VERSION.log
-
-# reset some files
->$logfile
->$tarball
->$collections_done
->$metafonts
->$manpages
->$packages_metafont
->$packages_manpages
->$packages_base
->$packages_extra
->$packages_fonts
->$packages_base.doc
->$packages_extra.doc
->$packages_fonts.doc
->$TMP/packages.$edition.meta
-
-# put the editions base/extra/fonts together
-texmf_editions || exit 1
-
-# Check if all collections ar part in at least one edition
-while read collection
-do
- grep -w "$collection" $collections_done &> /dev/null
- if [ $? != 0 ]
- then
- echo "Error: $collection was not handled, edit packages/collections inthe texmfget function in $0." | tee -a $logfile
- exit 1
- fi
-done < $allcollections
-
-# meta data about added packages
-sort -n $output.$edition.meta > $tmpfile
-mv $tmpfile $output.$edition.meta
-
-# cleanup
-rm $allcollections
-rm $corepackages
-rm $collections_done
-rm $collections_tobedone
-rm $output
-rm $output_doc
-rm $dependencies
-
-[ ! -d texmf-dist ] && mkdir texmf-dist
-# include all metafonts in base package, plus packages which misses font-mf tag on CTAN
-echo "Looking for metafont files to be included in -base ..."
-for metafont in $(paste -s $packages_extra $packages_fonts )
-do
- if [ -n "$(egrep "(fonts/source/public/)" $texmf/$metafont.meta )" ]
- then
- # include all metafonts in -base, write index for later exclution from other editions.
- package_meta $metafont || exit 1
- echo "Adding metafonts from $metafont to -base"
- unset flavour
- download $metafont || exit 1
- unset relocated
- pathprefix="texmf-dist/"
- [ -n "$(grep -w ^"relocated 1" $texmf/$metafont.meta)" ] && relocated="-C texmf-dist" && unset pathprefix
- tar vxf $texmf/$metafont.tar.xz $relocated ${pathprefix}fonts/source ${pathprefix}tex/latex 2>/dev/null | sed "s/^fonts/texmf-dist\/fonts/g;s/^tex\//texmf-dist\/tex\//g" >> $metafonts
- echo $metafont >> $packages_metafont
- fi
-done
-
-# include manpages/GNU infofiles in -base, write index for later exclution from other editions.
-# In -extra there should not be any manpage left.
-echo "Looking for manpages/GNU infofiles to be included in -base ..."
-for package in $(paste -s $packages_metafont $packages_base.doc | sort -u)
-do
- if [ -n "$(egrep "(doc/man/man|doc/info/)" $texmf/$package.meta )" ]
- then
- echo "Adding manpage from $package to -base"
- flavour=".doc" download $package || exit 1
- unset relocated
- pathprefix="texmf-dist/"
- [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] && relocated="-C texmf-dist" && unset pathprefix
- tar vxf $texmf/${package}.doc.tar.xz --exclude "*.man[15].pdf" $relocated ${pathprefix}doc/man/ ${pathprefix}doc/info 2>/dev/null | sed "s/^doc/texmf-dist\/doc/g" >> $manpages
- echo "$package" >> $packages_manpages
- fi
-done
-
-case $edition in
- base)
- # Content info
- cat << EOF | gzip -9 >> $texmf/texmf-dist/packages.$edition.gz
-Content of -$edition:
-$(sort $packages_base)
-
-Metafonts from packages:
-$(sort $packages_metafont)
-
-Manpages from packages:
-$(sort $packages_manpages)
-EOF
-
- # add manpages/metafonts to the tarball
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- # handle koma-script docs, the author wants the docs to be shipped along, html doc seems sufficient
- tar f $tarball --delete $(tar tf $tarball | grep /doc/.*koma-script.*pdf)
- ;;
- extra|fonts)
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- echo "Removing manpages/metafonts from -extra/-fonts/-docs which now reside in -base"
- tar -f $tarball --delete $(paste $manpages $metafonts) 2>/dev/null
- # content info
- mkdir texmf-dist
- echo "Content of -$edition, including documentation:" > $texmf/texmf-dist/packages.$edition
- sort $TMP/packages.$edition >> $texmf/texmf-dist/packages.$edition
- gzip -9 $texmf/texmf-dist/packages.$edition
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- ;;
- docs)
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- echo "Removing manpages/metafonts from -extra/-fonts/-docs which no reside in -base"
- tar -f $tarball --delete $(paste $manpages $metafonts) 2>/dev/null
- # content info, this edition conains all docs from -base
- mkdir texmf-dist
- echo "Content of -$edition, documentation for -base:" > $texmf/texmf-dist/packages.$edition
- sort $packages_base.doc >> $texmf/texmf-dist/packages.$edition
- gzip -9 $texmf/texmf-dist/packages.$edition
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- ;;
-esac
-
-# compress the tarball as everything is in place now
-echo "Compressing $tarball ..."
-[ -f $tarball.xz ] && rm $tarball.xz
-xz -9 -T0 $tarball || exit 1
-md5sum $tarball.xz
-ls -lh $tarball.xz
-echo "Logfile: $logfile"
diff --git a/office/texlive/slack-desc b/office/texlive/slack-desc
deleted file mode 100644
index 9646823dfe..0000000000
--- a/office/texlive/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-texlive: texlive (TeX binaries, support files, and formats)
-texlive:
-texlive: This package contains binaries, support files, TeX formats and
-texlive: packages,and other files included in the TeXLive TeX distribution.
-texlive: Included are input files for TeX, runtime configuration files,
-texlive: hyphenation tables, manpages, and the computer modern fonts.
-texlive:
-texlive: SlackBuilds.org has more texmf files and documentation in the
-texlive: texlive-extra, texlive-fonts, and texlive-docs packages.
-texlive:
-texlive:
diff --git a/office/texlive/texlive.SlackBuild b/office/texlive/texlive.SlackBuild
deleted file mode 100644
index a140c9d9c8..0000000000
--- a/office/texlive/texlive.SlackBuild
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/bin/sh
-
-# TeXLive build script for Slackware
-
-# Copyright 2009, 2017 Patrick J. Volkerding, Sebeka, MN, USA
-# Copyright 2009-2014 Robby Workman, Northport, AL, USA
-# Copyright 2016-2017 Johannes Schoepfer, Germany
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# URL: ftp://tug.org/historic/systems/texlive/
-# Testrelease: ftp://tug.org/texlive/Images/test/
-
-PRGNAM=texlive
-SOURCEVERSION=20170520
-VERSION=${VERSION:-2017.171108}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-texlive
-OUTPUT=${OUTPUT:-/tmp}
-
-set -e
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-# NOTE: Using the system version of poppler will require texlive to be
-# recompiled with pretty much every poppler update, as they almost always
-# bump the shared library version. But sometimes you do what you have
-# to do...
-SYSTEMPOPPLER=${SYSTEMPOPPLER:-YES}
-if [ "$SYSTEMPOPPLER" = "NO" ]; then
- POPPLER="--without-system-poppler --without-system-xpdf"
-else
- POPPLER="--with-system-poppler --with-system-xpdf"
-fi
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf texlive-$SOURCEVERSION-source
-tar xvf $CWD/texlive-${SOURCEVERSION}-source.tar.xz || exit 1
-cd texlive-$SOURCEVERSION-source || exit 1
-chown -R root:root .
-chmod -R u+w,go-w,a+rX-st .
-
-export LANG=C
-export PATH="$PKG/usr/bin:$PATH"
-export LD_LIBRARY_PATH="$PKG/usr/lib${LIBDIRSUFFIX}:$LD_LIBRARY_PATH"
-
-# set TEXMFROOT and TEXMFLOCAL
-sed -i \
- -e 's|^TEXMFROOT.*|TEXMFROOT = $SELFAUTODIR/share|' \
- -e 's|^TEXMFLOCAL.*|TEXMFLOCAL = $TEXMFROOT/texmf-local|' \
- texk/kpathsea/texmf.cnf
-
-# prevent compiling Xdvi with libXp
-sed -i 's|-lXp ||' texk/xdvik/configure
-
-# Thanks to the lfs-folks ...
-patch -Np1 -i $CWD/patches/texlive-20170524-source-gcc7-1.patch || exit 1
-patch -Np1 -i $CWD/patches/texlive-20170524-source-upstream_fixes-2.patch || exit 1
-
-## Needed on -current, 2017-10-06
-## Thanks to archlinux for the poppler-0.59 API fixup patch:
-#if [ ! "$SYSTEMPOPPLER" = "NO" ]; then
-# patch -Np1 -i $CWD/patches/texlive-poppler-0.59.patch || exit 1
-#fi
-
-# --with-system-harfbuzz requires graphite2 (and harfbuzz linked to it)
-mkdir build
-cd build
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
- ../configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --with-banner-add=' on Slackware (SlackBuilds.org)' \
- --disable-native-texlive-build \
- --enable-largefile \
- --enable-shared \
- --disable-static \
- --disable-missing \
- --disable-multiplatform \
- --disable-debug \
- --with-x \
- --enable-xindy \
- --disable-xindy-docs \
- --disable-xindy-rules \
- --with-clisp-runtime=system \
- --enable-gc=system \
- --with-system-zlib \
- --with-system-libpng \
- --with-system-t1lib \
- --with-system-gd \
- --with-system-freetype2 \
- --with-system-libgs \
- --with-system-icu \
- --with-system-pixman \
- --with-system-cairo \
- --with-system-gmp \
- --with-system-mpfr \
- --with-system-fontconfig \
- --with-system-ncurses \
- --without-system-harfbuzz \
- --disable-aleph \
- --disable-dump-share \
- $POPPLER \
- --build=$ARCH-slackware-linux || exit 1
-
- make || exit 1
- # make check || exit 1
- make install-strip DESTDIR=$PKG || exit 1
-
- # Don't ship .la files:
- rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
-
- # Remove all files which are covered by tlnet
- rm -rf $PKG/usr/share $PKG/usr/man $PKG/usr/info
-
- # install the tlnet stuff
- mkdir -p $PKG/usr/share
- tar xvf $CWD/texlive-base-$VERSION.tar.xz -C $PKG/usr/share || exit 1
- chown -R root:root $PKG
- chmod -R u+w,go-w,a+rX-st $PKG
-
- # Create symlinks
- make texlinks DESTDIR=$PKG || exit 1
-
-cd ..
-
-# set some paths
-sed -i \
- -e 's|^TEXMFROOT.*|TEXMFROOT = $SELFAUTODIR/share|' \
- -e 's|^TEXMFLOCAL.*|TEXMFLOCAL = $TEXMFROOT/texmf-local|' \
- -e 's|^OSFONTDIR.*|OSFONTDIR = ~/.fonts:/usr/share/fonts|' \
- -e 's|texlive20[0-9][0-9]|texlive|g' \
- $PKG/usr/share/texmf-dist/web2c/texmf.cnf
-
-# disable obsolete aleph/lamed/cslatex/pdfcslatex
-sed -i \
- -e 's|^aleph|#! aleph|' \
- -e 's|^lamed|#! lamed|' \
- -e 's|^cslatex|#! cslatex|' \
- -e 's|^pdfcslatex|#! pdfcslatex|' \
- $PKG/usr/share/texmf-dist/web2c/fmtutil.cnf
-
-# make ConTeXt work, and remove unused settings
-sed -i \
- -e 's|selfautoparent:|/usr/share/|g' \
- -e 's|\(TEXMFLOCAL[ ]*=[ ]*\)[^,]*|\1"/usr/share/texmf-local"|' \
- -e 's|texlive20[0-9][0-9]|texlive|g' \
- -e '/selfautodir/d' \
- -e '/texmflocal/d' \
- $PKG/usr/share/texmf-dist/web2c/texmfcnf.lua
-
-# provide texlive fonts optionally for other system apps
-mkdir -p $PKG/etc/fonts/conf.avail
-cat > $PKG/etc/fonts/conf.avail/09-texlive.conf << EOF
-<?xml version='1.0'?>
-<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-<fontconfig>
- <dir>/usr/share/texmf-dist/fonts/opentype</dir>
- <dir>/usr/share/texmf-dist/fonts/truetype</dir>
-</fontconfig>
-EOF
-
-# Install the docs while we're still here
-mkdir -p $PKG/usr/doc/texlive-$VERSION
-cp -a ChangeLog README* $PKG/usr/doc/texlive-$VERSION
-# Install index of provided tex packages to the docs
-mv $PKG/usr/share/texmf-dist/packages.base.gz $PKG/usr/doc/texlive-$VERSION
-
-# Put a symlink to /usr/share/texmf-dist/doc in our Slackware docdir
-ln -s ../../share/texmf-dist/doc $PKG/usr/doc/texlive-$VERSION/doc
-
-# We won't make tlmgr easily available; it's still there, but
-# we'll make it harder to void the warranty :-)
-rm -f $PKG/usr/bin/tlmgr
-cat $CWD/README.tlpkg > $PKG/usr/doc/texlive-$VERSION/README.tlpkg
-
-# Create some directories to make it clear that they're owned by this package
-mkdir -p $PKG/usr/share/{texmf-config,texmf-var,texmf-local}
-
-# Add some perl modules, at least one of which is required by updmap
-mkdir -p $PKG/usr/share/perl5
-mv texk/tests/TeXLive $PKG/usr/share/perl5/
-
-# Move manual pages to the correct place
-mkdir $PKG/usr/man
-mv $PKG/usr/share/texmf-dist/doc/man/man1 $PKG/usr/man
-mv $PKG/usr/share/texmf-dist/doc/man/man5 $PKG/usr/man
-rmdir $PKG/usr/share/texmf-dist/doc/man
-mv $PKG/usr/share/texmf-dist/doc/info $PKG/usr
-
-# Handle the man pages
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $(find $PKG/usr/man -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
-
-# Handle the GNU info pages
-rm -f $PKG/usr/info/dir
-gzip -9 $PKG/usr/info/*
-
-mkdir -p $PKG/install
-cat $CWD/doinst.sh > $PKG/install/doinst.sh
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -p -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/office/texlive/texlive.info b/office/texlive/texlive.info
deleted file mode 100644
index b0c9538eea..0000000000
--- a/office/texlive/texlive.info
+++ /dev/null
@@ -1,12 +0,0 @@
-PRGNAM="texlive"
-VERSION="2017.171108"
-HOMEPAGE="http://tug.org/texlive/"
-DOWNLOAD="http://ponce.cc/slackware/sources/repo/texlive-20170520-source.tar.xz \
- http://slackware.schoepfer.info/slackbuilds/texlive/2017/texlive/texlive-base-2017.171108.tar.xz"
-MD5SUM="5456dfd7858fe53cdd0fda5f0eb4fd35 \
- a6cb0fdd5fbc870f3b728ec717d3a092"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Johannes Schoepfer"
-EMAIL="slackbuilds[at]schoepfer[dot]info"