diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2023-05-25 00:24:33 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2023-05-25 03:50:00 +0200 |
commit | ed49432ad9d734d447d1bda6657b2d221a7fb3a8 (patch) | |
tree | fbd372b018ab43e211a275280da8a02597203800 | |
parent | b2fa3fdbd7ee8367f9ea371367850e010a58dfee (diff) | |
download | current-ed49432ad9d734d447d1bda6657b2d221a7fb3a8.tar.gz current-ed49432ad9d734d447d1bda6657b2d221a7fb3a8.tar.xz |
Thu May 25 00:24:33 UTC 202320230525002433
a/elilo-3.16-x86_64-16.txz: Rebuilt.
eliloconfig: don't mess with mounting efivarfs. This should be handled by
rc.S, or by whatever the admin put in /etc/fstab.
a/kernel-firmware-20230523_1ba3519-noarch-1.txz: Upgraded.
a/kernel-generic-6.1.30-x86_64-1.txz: Upgraded.
a/kernel-huge-6.1.30-x86_64-1.txz: Upgraded.
a/kernel-modules-6.1.30-x86_64-1.txz: Upgraded.
a/sysvinit-scripts-15.1-noarch-5.txz: Rebuilt.
rc.S: mount efivarfs rw, may be overridden in /etc/default/efivarfs.
ap/sc-im-0.8.3-x86_64-1.txz: Upgraded.
d/kernel-headers-6.1.30-x86-1.txz: Upgraded.
d/parallel-20230522-noarch-1.txz: Upgraded.
k/kernel-source-6.1.30-noarch-1.txz: Upgraded.
l/enchant-2.4.0-x86_64-1.txz: Upgraded.
l/glib2-2.76.3-x86_64-1.txz: Upgraded.
l/gtk+3-3.24.38-x86_64-1.txz: Upgraded.
l/qt5-5.15.9_20230523_245f369c-x86_64-1.txz: Upgraded.
This update fixes a security issue.
Qt-based clients may mismatch HSTS headers (Strict-Transport-Security),
which would prevent the client from switching to a secure HTTPS
connection as requested by a server.
For more information, see:
https://www.cve.org/CVERecord?id=CVE-2023-32762
(* Security fix *)
n/curl-8.1.1-x86_64-1.txz: Upgraded.
This is a bugfix release.
t/texlive-2023.230322-x86_64-3.txz: Rebuilt.
This update patches a security issue:
LuaTeX before 1.17.0 allows execution of arbitrary shell commands when
compiling a TeX file obtained from an untrusted source. This occurs
because luatex-core.lua lets the original io.popen be accessed. This also
affects TeX Live before 2023 r66984 and MiKTeX before 23.5.
Thanks to Johannes Schoepfer.
For more information, see:
https://www.cve.org/CVERecord?id=CVE-2023-32700
(* Security fix *)
xap/mozilla-firefox-113.0.2-x86_64-1.txz: Upgraded.
This is a bugfix release.
For more information, see:
https://www.mozilla.org/en-US/firefox/113.0.2/releasenotes/
xfce/libxfce4ui-4.18.4-x86_64-1.txz: Upgraded.
xfce/xfce4-panel-4.18.4-x86_64-1.txz: Upgraded.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
29 files changed, 2449 insertions, 205 deletions
diff --git a/ChangeLog.rss b/ChangeLog.rss index 7f8ae3c9f..16c6845cf 100644 --- a/ChangeLog.rss +++ b/ChangeLog.rss @@ -11,10 +11,65 @@ <description>Tracking Slackware development in git.</description> <language>en-us</language> <id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id> - <pubDate>Mon, 22 May 2023 19:05:02 GMT</pubDate> - <lastBuildDate>Mon, 22 May 2023 19:32:39 GMT</lastBuildDate> + <pubDate>Thu, 25 May 2023 00:24:33 GMT</pubDate> + <lastBuildDate>Thu, 25 May 2023 01:49:54 GMT</lastBuildDate> <generator>maintain_current_git.sh v 1.17</generator> <item> + <title>Thu, 25 May 2023 00:24:33 GMT</title> + <pubDate>Thu, 25 May 2023 00:24:33 GMT</pubDate> + <link>https://git.slackware.nl/current/tag/?h=20230525002433</link> + <guid isPermaLink="false">20230525002433</guid> + <description> + <![CDATA[<pre> +a/elilo-3.16-x86_64-16.txz: Rebuilt. + eliloconfig: don't mess with mounting efivarfs. This should be handled by + rc.S, or by whatever the admin put in /etc/fstab. +a/kernel-firmware-20230523_1ba3519-noarch-1.txz: Upgraded. +a/kernel-generic-6.1.30-x86_64-1.txz: Upgraded. +a/kernel-huge-6.1.30-x86_64-1.txz: Upgraded. +a/kernel-modules-6.1.30-x86_64-1.txz: Upgraded. +a/sysvinit-scripts-15.1-noarch-5.txz: Rebuilt. + rc.S: mount efivarfs rw, may be overridden in /etc/default/efivarfs. +ap/sc-im-0.8.3-x86_64-1.txz: Upgraded. +d/kernel-headers-6.1.30-x86-1.txz: Upgraded. +d/parallel-20230522-noarch-1.txz: Upgraded. +k/kernel-source-6.1.30-noarch-1.txz: Upgraded. +l/enchant-2.4.0-x86_64-1.txz: Upgraded. +l/glib2-2.76.3-x86_64-1.txz: Upgraded. +l/gtk+3-3.24.38-x86_64-1.txz: Upgraded. +l/qt5-5.15.9_20230523_245f369c-x86_64-1.txz: Upgraded. + This update fixes a security issue. + Qt-based clients may mismatch HSTS headers (Strict-Transport-Security), + which would prevent the client from switching to a secure HTTPS + connection as requested by a server. + For more information, see: + https://www.cve.org/CVERecord?id=CVE-2023-32762 + (* Security fix *) +n/curl-8.1.1-x86_64-1.txz: Upgraded. + This is a bugfix release. +t/texlive-2023.230322-x86_64-3.txz: Rebuilt. + This update patches a security issue: + LuaTeX before 1.17.0 allows execution of arbitrary shell commands when + compiling a TeX file obtained from an untrusted source. This occurs + because luatex-core.lua lets the original io.popen be accessed. This also + affects TeX Live before 2023 r66984 and MiKTeX before 23.5. + Thanks to Johannes Schoepfer. + For more information, see: + https://www.cve.org/CVERecord?id=CVE-2023-32700 + (* Security fix *) +xap/mozilla-firefox-113.0.2-x86_64-1.txz: Upgraded. + This is a bugfix release. + For more information, see: + https://www.mozilla.org/en-US/firefox/113.0.2/releasenotes/ +xfce/libxfce4ui-4.18.4-x86_64-1.txz: Upgraded. +xfce/xfce4-panel-4.18.4-x86_64-1.txz: Upgraded. +isolinux/initrd.img: Rebuilt. +kernels/*: Upgraded. +usb-and-pxe-installers/usbboot.img: Rebuilt. + </pre>]]> + </description> + </item> + <item> <title>Mon, 22 May 2023 19:05:02 GMT</title> <pubDate>Mon, 22 May 2023 19:05:02 GMT</pubDate> <link>https://git.slackware.nl/current/tag/?h=20230522190502</link> diff --git a/ChangeLog.txt b/ChangeLog.txt index 51d1bde1a..1f8d1ca47 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,50 @@ +Thu May 25 00:24:33 UTC 2023 +a/elilo-3.16-x86_64-16.txz: Rebuilt. + eliloconfig: don't mess with mounting efivarfs. This should be handled by + rc.S, or by whatever the admin put in /etc/fstab. +a/kernel-firmware-20230523_1ba3519-noarch-1.txz: Upgraded. +a/kernel-generic-6.1.30-x86_64-1.txz: Upgraded. +a/kernel-huge-6.1.30-x86_64-1.txz: Upgraded. +a/kernel-modules-6.1.30-x86_64-1.txz: Upgraded. +a/sysvinit-scripts-15.1-noarch-5.txz: Rebuilt. + rc.S: mount efivarfs rw, may be overridden in /etc/default/efivarfs. +ap/sc-im-0.8.3-x86_64-1.txz: Upgraded. +d/kernel-headers-6.1.30-x86-1.txz: Upgraded. +d/parallel-20230522-noarch-1.txz: Upgraded. +k/kernel-source-6.1.30-noarch-1.txz: Upgraded. +l/enchant-2.4.0-x86_64-1.txz: Upgraded. +l/glib2-2.76.3-x86_64-1.txz: Upgraded. +l/gtk+3-3.24.38-x86_64-1.txz: Upgraded. +l/qt5-5.15.9_20230523_245f369c-x86_64-1.txz: Upgraded. + This update fixes a security issue. + Qt-based clients may mismatch HSTS headers (Strict-Transport-Security), + which would prevent the client from switching to a secure HTTPS + connection as requested by a server. + For more information, see: + https://www.cve.org/CVERecord?id=CVE-2023-32762 + (* Security fix *) +n/curl-8.1.1-x86_64-1.txz: Upgraded. + This is a bugfix release. +t/texlive-2023.230322-x86_64-3.txz: Rebuilt. + This update patches a security issue: + LuaTeX before 1.17.0 allows execution of arbitrary shell commands when + compiling a TeX file obtained from an untrusted source. This occurs + because luatex-core.lua lets the original io.popen be accessed. This also + affects TeX Live before 2023 r66984 and MiKTeX before 23.5. + Thanks to Johannes Schoepfer. + For more information, see: + https://www.cve.org/CVERecord?id=CVE-2023-32700 + (* Security fix *) +xap/mozilla-firefox-113.0.2-x86_64-1.txz: Upgraded. + This is a bugfix release. + For more information, see: + https://www.mozilla.org/en-US/firefox/113.0.2/releasenotes/ +xfce/libxfce4ui-4.18.4-x86_64-1.txz: Upgraded. +xfce/xfce4-panel-4.18.4-x86_64-1.txz: Upgraded. +isolinux/initrd.img: Rebuilt. +kernels/*: Upgraded. +usb-and-pxe-installers/usbboot.img: Rebuilt. ++--------------------------+ Mon May 22 19:05:02 UTC 2023 ap/qpdf-11.4.0-x86_64-1.txz: Upgraded. l/exiv2-0.27.7-x86_64-1.txz: Upgraded. diff --git a/FILELIST.TXT b/FILELIST.TXT index ec6af8358..36e22dca3 100644 --- a/FILELIST.TXT +++ b/FILELIST.TXT @@ -1,35 +1,35 @@ -Mon May 22 19:09:16 UTC 2023 +Thu May 25 01:20:03 UTC 2023 Here is the file list for this directory. If you are using a mirror site and find missing or extra files in the disk subdirectories, please have the archive administrator refresh the mirror. -drwxr-xr-x 12 root root 4096 2023-05-22 19:05 . +drwxr-xr-x 12 root root 4096 2023-05-25 00:35 . -rw-r--r-- 1 root root 5767 2022-02-02 22:44 ./ANNOUNCE.15.0 -rw-r--r-- 1 root root 16617 2022-02-02 23:27 ./CHANGES_AND_HINTS.TXT --rw-r--r-- 1 root root 1115935 2023-05-21 17:30 ./CHECKSUMS.md5 --rw-r--r-- 1 root root 163 2023-05-21 17:30 ./CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 1116239 2023-05-25 00:35 ./CHECKSUMS.md5 +-rw-r--r-- 1 root root 163 2023-05-25 00:35 ./CHECKSUMS.md5.asc -rw-r--r-- 1 root root 17976 1994-06-10 02:28 ./COPYING -rw-r--r-- 1 root root 35147 2007-06-30 04:21 ./COPYING3 -rw-r--r-- 1 root root 19573 2016-06-23 20:08 ./COPYRIGHT.TXT -rw-r--r-- 1 root root 616 2006-10-02 04:37 ./CRYPTO_NOTICE.TXT --rw-r--r-- 1 root root 640505 2023-05-22 19:05 ./ChangeLog.txt +-rw-r--r-- 1 root root 642665 2023-05-25 01:19 ./ChangeLog.txt drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI -drwxr-xr-x 2 root root 4096 2023-05-17 20:59 ./EFI/BOOT +drwxr-xr-x 2 root root 4096 2023-05-25 00:23 ./EFI/BOOT -rw-r--r-- 1 root root 1187840 2021-06-15 19:16 ./EFI/BOOT/bootx64.efi -rw-r--r-- 1 root root 78 2013-09-23 20:35 ./EFI/BOOT/grub-embedded.cfg -rw-r--r-- 1 root root 893 2018-04-17 21:17 ./EFI/BOOT/grub.cfg --rw-r--r-- 2 root root 12081664 2023-05-17 20:06 ./EFI/BOOT/huge.s --rw-r--r-- 2 root root 45989656 2023-05-17 20:59 ./EFI/BOOT/initrd.img +-rw-r--r-- 2 root root 12113824 2023-05-24 19:18 ./EFI/BOOT/huge.s +-rw-r--r-- 2 root root 46008160 2023-05-25 00:23 ./EFI/BOOT/initrd.img -rwxr-xr-x 1 root root 2504 2019-07-05 18:54 ./EFI/BOOT/make-grub.sh -rw-r--r-- 1 root root 10722 2013-09-21 19:02 ./EFI/BOOT/osdetect.cfg -rw-r--r-- 1 root root 1273 2013-08-12 21:08 ./EFI/BOOT/tools.cfg --rw-r--r-- 1 root root 1455280 2023-05-21 17:30 ./FILELIST.TXT +-rw-r--r-- 1 root root 1455645 2023-05-25 00:34 ./FILELIST.TXT -rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY --rw-r--r-- 1 root root 872197 2023-05-22 19:08 ./PACKAGES.TXT +-rw-r--r-- 1 root root 872186 2023-05-25 00:34 ./PACKAGES.TXT -rw-r--r-- 1 root root 8034 2022-02-02 03:36 ./README.TXT --rw-r--r-- 1 root root 3629 2023-05-17 20:24 ./README.initrd +-rw-r--r-- 1 root root 3629 2023-05-25 00:09 ./README.initrd -rw-r--r-- 1 root root 34162 2022-01-30 20:35 ./README_CRYPT.TXT -rw-r--r-- 1 root root 8754 2022-03-30 19:05 ./README_LVM.TXT -rw-r--r-- 1 root root 19658 2013-06-18 04:34 ./README_RAID.TXT @@ -643,16 +643,16 @@ drwxr-xr-x 2 root root 4096 2022-02-25 00:07 ./extra/xv -rw-r--r-- 1 root root 233 2022-02-24 20:04 ./extra/xv/xv-3.10a-x86_64-10.txt -rw-r--r-- 1 root root 942524 2022-02-24 20:04 ./extra/xv/xv-3.10a-x86_64-10.txz -rw-r--r-- 1 root root 163 2022-02-24 20:04 ./extra/xv/xv-3.10a-x86_64-10.txz.asc -drwxr-xr-x 3 root root 4096 2023-05-17 20:59 ./isolinux +drwxr-xr-x 3 root root 4096 2023-05-25 00:23 ./isolinux -rw-r--r-- 1 root root 6185 2022-02-03 06:53 ./isolinux/README.TXT -rw-r--r-- 1 root root 788 2007-03-17 19:50 ./isolinux/README_SPLIT.TXT -rw-r--r-- 1 root root 1474560 2021-06-15 19:16 ./isolinux/efiboot.img -rw-r--r-- 1 root root 574 2013-10-24 00:19 ./isolinux/f2.txt --rw-r--r-- 2 root root 45989656 2023-05-17 20:59 ./isolinux/initrd.img +-rw-r--r-- 2 root root 46008160 2023-05-25 00:23 ./isolinux/initrd.img -rw-r--r-- 1 root root 50 2003-01-18 00:02 ./isolinux/iso.sort -rw-r--r-- 1 root root 24576 2016-05-27 20:36 ./isolinux/isolinux.bin -rw-r--r-- 1 root root 578 2013-03-27 03:29 ./isolinux/isolinux.cfg --rw-r--r-- 1 root root 682 2023-05-17 20:24 ./isolinux/message.txt +-rw-r--r-- 1 root root 682 2023-05-25 00:09 ./isolinux/message.txt drwxr-xr-x 2 root root 4096 2003-03-17 07:31 ./isolinux/sbootmgr -rwxr-xr-x 1 root root 36064 1995-05-12 01:23 ./isolinux/sbootmgr/RAWRITE.EXE -rw-r--r-- 1 root root 2138 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.DOC @@ -663,12 +663,12 @@ lrwxrwxrwx 1 root root 11 2009-08-23 23:37 ./isolinux/sbootmgr/RAWRITE13 -rw-r--r-- 1 root root 1291 2003-03-17 07:31 ./isolinux/sbootmgr/README.TXT -rw-r--r-- 1 root root 110592 2003-03-16 08:38 ./isolinux/sbootmgr/sbootmgr.dsk -rw-r--r-- 1 root root 2879 2020-12-07 20:48 ./isolinux/setpkg -drwxr-xr-x 5 root root 4096 2023-05-17 20:24 ./kernels --rw-r--r-- 1 root root 36 2023-05-17 20:24 ./kernels/VERSIONS.TXT -drwxr-xr-x 2 root root 4096 2023-05-17 20:06 ./kernels/huge.s --rw-r--r-- 1 root root 1198766 2023-05-17 20:06 ./kernels/huge.s/System.map.gz --rw-r--r-- 2 root root 12081664 2023-05-17 20:06 ./kernels/huge.s/bzImage --rw-r--r-- 1 root root 252472 2023-05-17 18:04 ./kernels/huge.s/config +drwxr-xr-x 5 root root 4096 2023-05-25 00:09 ./kernels +-rw-r--r-- 1 root root 36 2023-05-25 00:09 ./kernels/VERSIONS.TXT +drwxr-xr-x 2 root root 4096 2023-05-24 19:18 ./kernels/huge.s +-rw-r--r-- 1 root root 1198753 2023-05-24 19:18 ./kernels/huge.s/System.map.gz +-rw-r--r-- 2 root root 12113824 2023-05-24 19:18 ./kernels/huge.s/bzImage +-rw-r--r-- 1 root root 252505 2023-05-24 17:36 ./kernels/huge.s/config drwxr-xr-x 2 root root 4096 2011-03-25 03:15 ./kernels/memtest -rw-r--r-- 1 root root 60 2011-03-24 00:19 ./kernels/memtest/README -rw-r--r-- 1 root root 150024 2013-10-17 04:15 ./kernels/memtest/memtest @@ -687,13 +687,13 @@ drwxr-xr-x 2 root root 4096 2022-02-03 07:02 ./patches -rw-r--r-- 1 root root 575 2022-02-03 07:02 ./patches/FILE_LIST -rw-r--r-- 1 root root 14 2022-02-03 07:02 ./patches/MANIFEST.bz2 -rw-r--r-- 1 root root 224 2022-02-03 07:02 ./patches/PACKAGES.TXT -drwxr-xr-x 17 root root 4096 2023-05-22 19:08 ./slackware64 --rw-r--r-- 1 root root 340415 2023-05-22 19:08 ./slackware64/CHECKSUMS.md5 --rw-r--r-- 1 root root 163 2023-05-22 19:08 ./slackware64/CHECKSUMS.md5.asc --rw-r--r-- 1 root root 422021 2023-05-22 19:08 ./slackware64/FILE_LIST --rw-r--r-- 1 root root 4308748 2023-05-22 19:08 ./slackware64/MANIFEST.bz2 +drwxr-xr-x 17 root root 4096 2023-05-25 00:34 ./slackware64 +-rw-r--r-- 1 root root 340382 2023-05-25 00:34 ./slackware64/CHECKSUMS.md5 +-rw-r--r-- 1 root root 163 2023-05-25 00:34 ./slackware64/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 421990 2023-05-25 00:33 ./slackware64/FILE_LIST +-rw-r--r-- 1 root root 4308964 2023-05-25 00:33 ./slackware64/MANIFEST.bz2 lrwxrwxrwx 1 root root 15 2009-08-23 23:34 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT -drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a +drwxr-xr-x 2 root root 32768 2023-05-25 00:32 ./slackware64/a -rw-r--r-- 1 root root 327 2022-02-15 18:16 ./slackware64/a/aaa_base-15.1-x86_64-2.txt -rw-r--r-- 1 root root 10720 2022-02-15 18:16 ./slackware64/a/aaa_base-15.1-x86_64-2.txz -rw-r--r-- 1 root root 163 2022-02-15 18:16 ./slackware64/a/aaa_base-15.1-x86_64-2.txz.asc @@ -769,9 +769,9 @@ drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a -rw-r--r-- 1 root root 312 2021-03-13 19:13 ./slackware64/a/efivar-20201015_cff88dd-x86_64-1.txt -rw-r--r-- 1 root root 118768 2021-03-13 19:13 ./slackware64/a/efivar-20201015_cff88dd-x86_64-1.txz -rw-r--r-- 1 root root 163 2021-03-13 19:13 ./slackware64/a/efivar-20201015_cff88dd-x86_64-1.txz.asc --rw-r--r-- 1 root root 445 2023-03-21 21:03 ./slackware64/a/elilo-3.16-x86_64-15.txt --rw-r--r-- 1 root root 153468 2023-03-21 21:03 ./slackware64/a/elilo-3.16-x86_64-15.txz --rw-r--r-- 1 root root 163 2023-03-21 21:03 ./slackware64/a/elilo-3.16-x86_64-15.txz.asc +-rw-r--r-- 1 root root 445 2023-05-25 00:04 ./slackware64/a/elilo-3.16-x86_64-16.txt +-rw-r--r-- 1 root root 153504 2023-05-25 00:04 ./slackware64/a/elilo-3.16-x86_64-16.txz +-rw-r--r-- 1 root root 163 2023-05-25 00:04 ./slackware64/a/elilo-3.16-x86_64-16.txz.asc -rw-r--r-- 1 root root 260 2023-05-18 02:04 ./slackware64/a/elogind-252.9-x86_64-1.txt -rw-r--r-- 1 root root 1167760 2023-05-18 02:04 ./slackware64/a/elogind-252.9-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-18 02:04 ./slackware64/a/elogind-252.9-x86_64-1.txz.asc @@ -858,18 +858,18 @@ drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a -rw-r--r-- 1 root root 461 2021-02-13 11:08 ./slackware64/a/kbd-1.15.3-x86_64-6.txt -rw-r--r-- 1 root root 1137072 2021-02-13 11:08 ./slackware64/a/kbd-1.15.3-x86_64-6.txz -rw-r--r-- 1 root root 163 2021-02-13 11:08 ./slackware64/a/kbd-1.15.3-x86_64-6.txz.asc --rw-r--r-- 1 root root 422 2023-05-17 16:43 ./slackware64/a/kernel-firmware-20230517_601c181-noarch-1.txt --rw-r--r-- 1 root root 252250648 2023-05-17 16:43 ./slackware64/a/kernel-firmware-20230517_601c181-noarch-1.txz --rw-r--r-- 1 root root 163 2023-05-17 16:43 ./slackware64/a/kernel-firmware-20230517_601c181-noarch-1.txz.asc --rw-r--r-- 1 root root 624 2023-05-17 20:09 ./slackware64/a/kernel-generic-6.1.29-x86_64-1.txt --rw-r--r-- 1 root root 8802288 2023-05-17 20:09 ./slackware64/a/kernel-generic-6.1.29-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-05-17 20:09 ./slackware64/a/kernel-generic-6.1.29-x86_64-1.txz.asc --rw-r--r-- 1 root root 636 2023-05-17 20:06 ./slackware64/a/kernel-huge-6.1.29-x86_64-1.txt --rw-r--r-- 1 root root 12933344 2023-05-17 20:06 ./slackware64/a/kernel-huge-6.1.29-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-05-17 20:06 ./slackware64/a/kernel-huge-6.1.29-x86_64-1.txz.asc --rw-r--r-- 1 root root 567 2023-05-17 20:23 ./slackware64/a/kernel-modules-6.1.29-x86_64-1.txt --rw-r--r-- 1 root root 53291264 2023-05-17 20:23 ./slackware64/a/kernel-modules-6.1.29-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-05-17 20:23 ./slackware64/a/kernel-modules-6.1.29-x86_64-1.txz.asc +-rw-r--r-- 1 root root 422 2023-05-24 17:22 ./slackware64/a/kernel-firmware-20230523_1ba3519-noarch-1.txt +-rw-r--r-- 1 root root 252428772 2023-05-24 17:22 ./slackware64/a/kernel-firmware-20230523_1ba3519-noarch-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 17:22 ./slackware64/a/kernel-firmware-20230523_1ba3519-noarch-1.txz.asc +-rw-r--r-- 1 root root 624 2023-05-24 19:21 ./slackware64/a/kernel-generic-6.1.30-x86_64-1.txt +-rw-r--r-- 1 root root 8778224 2023-05-24 19:21 ./slackware64/a/kernel-generic-6.1.30-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 19:21 ./slackware64/a/kernel-generic-6.1.30-x86_64-1.txz.asc +-rw-r--r-- 1 root root 636 2023-05-24 19:18 ./slackware64/a/kernel-huge-6.1.30-x86_64-1.txt +-rw-r--r-- 1 root root 12965776 2023-05-24 19:18 ./slackware64/a/kernel-huge-6.1.30-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 19:18 ./slackware64/a/kernel-huge-6.1.30-x86_64-1.txz.asc +-rw-r--r-- 1 root root 567 2023-05-24 19:35 ./slackware64/a/kernel-modules-6.1.30-x86_64-1.txt +-rw-r--r-- 1 root root 53325164 2023-05-24 19:35 ./slackware64/a/kernel-modules-6.1.30-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 19:35 ./slackware64/a/kernel-modules-6.1.30-x86_64-1.txz.asc -rw-r--r-- 1 root root 508 2023-03-08 02:13 ./slackware64/a/kmod-30-x86_64-2.txt -rw-r--r-- 1 root root 118348 2023-03-08 02:13 ./slackware64/a/kmod-30-x86_64-2.txz -rw-r--r-- 1 root root 163 2023-03-08 02:13 ./slackware64/a/kmod-30-x86_64-2.txz.asc @@ -915,8 +915,8 @@ drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a -rw-r--r-- 1 root root 405 2022-01-27 19:11 ./slackware64/a/lzlib-1.13-x86_64-1.txt -rw-r--r-- 1 root root 58460 2022-01-27 19:11 ./slackware64/a/lzlib-1.13-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-01-27 19:11 ./slackware64/a/lzlib-1.13-x86_64-1.txz.asc --rw-r--r-- 1 root root 9970 2023-05-17 20:24 ./slackware64/a/maketag --rw-r--r-- 1 root root 9970 2023-05-17 20:24 ./slackware64/a/maketag.ez +-rw-r--r-- 1 root root 9970 2023-05-25 00:09 ./slackware64/a/maketag +-rw-r--r-- 1 root root 9970 2023-05-25 00:09 ./slackware64/a/maketag.ez -rw-r--r-- 1 root root 591 2023-04-09 18:44 ./slackware64/a/mcelog-194-x86_64-1.txt -rw-r--r-- 1 root root 353332 2023-04-09 18:44 ./slackware64/a/mcelog-194-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-09 18:44 ./slackware64/a/mcelog-194-x86_64-1.txz.asc @@ -1022,10 +1022,10 @@ drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a -rw-r--r-- 1 root root 694 2022-09-06 18:43 ./slackware64/a/sysvinit-functions-8.53-x86_64-6.txt -rw-r--r-- 1 root root 36308 2022-09-06 18:43 ./slackware64/a/sysvinit-functions-8.53-x86_64-6.txz -rw-r--r-- 1 root root 163 2022-09-06 18:43 ./slackware64/a/sysvinit-functions-8.53-x86_64-6.txz.asc --rw-r--r-- 1 root root 378 2023-05-09 18:53 ./slackware64/a/sysvinit-scripts-15.1-noarch-4.txt --rw-r--r-- 1 root root 16444 2023-05-09 18:53 ./slackware64/a/sysvinit-scripts-15.1-noarch-4.txz --rw-r--r-- 1 root root 163 2023-05-09 18:53 ./slackware64/a/sysvinit-scripts-15.1-noarch-4.txz.asc --rw-r--r-- 1 root root 1569 2023-05-17 20:24 ./slackware64/a/tagfile +-rw-r--r-- 1 root root 378 2023-05-24 23:58 ./slackware64/a/sysvinit-scripts-15.1-noarch-5.txt +-rw-r--r-- 1 root root 16840 2023-05-24 23:58 ./slackware64/a/sysvinit-scripts-15.1-noarch-5.txz +-rw-r--r-- 1 root root 163 2023-05-24 23:58 ./slackware64/a/sysvinit-scripts-15.1-noarch-5.txz.asc +-rw-r--r-- 1 root root 1569 2023-05-25 00:09 ./slackware64/a/tagfile -rw-r--r-- 1 root root 395 2023-03-24 18:56 ./slackware64/a/tar-1.34-x86_64-3.txt -rw-r--r-- 1 root root 803840 2023-03-24 18:56 ./slackware64/a/tar-1.34-x86_64-3.txz -rw-r--r-- 1 root root 163 2023-03-24 18:56 ./slackware64/a/tar-1.34-x86_64-3.txz.asc @@ -1080,7 +1080,7 @@ drwxr-xr-x 2 root root 32768 2023-05-19 19:02 ./slackware64/a -rw-r--r-- 1 root root 540 2021-02-13 11:22 ./slackware64/a/zoo-2.10_22-x86_64-4.txt -rw-r--r-- 1 root root 56160 2021-02-13 11:22 ./slackware64/a/zoo-2.10_22-x86_64-4.txz -rw-r--r-- 1 root root 163 2021-02-13 11:22 ./slackware64/a/zoo-2.10_22-x86_64-4.txz.asc -drwxr-xr-x 2 root root 20480 2023-05-22 19:08 ./slackware64/ap +drwxr-xr-x 2 root root 20480 2023-05-25 00:32 ./slackware64/ap -rw-r--r-- 1 root root 291 2023-05-10 18:06 ./slackware64/ap/a2ps-4.15.4-x86_64-1.txt -rw-r--r-- 1 root root 653388 2023-05-10 18:06 ./slackware64/ap/a2ps-4.15.4-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-10 18:06 ./slackware64/ap/a2ps-4.15.4-x86_64-1.txz.asc @@ -1271,9 +1271,9 @@ drwxr-xr-x 2 root root 20480 2023-05-22 19:08 ./slackware64/ap -rw-r--r-- 1 root root 123 2021-02-13 11:43 ./slackware64/ap/sc-7.16-x86_64-10.txt -rw-r--r-- 1 root root 187088 2021-02-13 11:43 ./slackware64/ap/sc-7.16-x86_64-10.txz -rw-r--r-- 1 root root 163 2021-02-13 11:43 ./slackware64/ap/sc-7.16-x86_64-10.txz.asc --rw-r--r-- 1 root root 533 2021-10-10 21:42 ./slackware64/ap/sc-im-20210927_64b1a41-x86_64-1.txt --rw-r--r-- 1 root root 157840 2021-10-10 21:42 ./slackware64/ap/sc-im-20210927_64b1a41-x86_64-1.txz --rw-r--r-- 1 root root 163 2021-10-10 21:42 ./slackware64/ap/sc-im-20210927_64b1a41-x86_64-1.txz.asc +-rw-r--r-- 1 root root 533 2023-05-24 05:22 ./slackware64/ap/sc-im-0.8.3-x86_64-1.txt +-rw-r--r-- 1 root root 159320 2023-05-24 05:22 ./slackware64/ap/sc-im-0.8.3-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 05:22 ./slackware64/ap/sc-im-0.8.3-x86_64-1.txz.asc -rw-r--r-- 1 root root 653 2022-02-02 02:13 ./slackware64/ap/screen-4.9.0-x86_64-1.txt -rw-r--r-- 1 root root 550196 2022-02-02 02:13 ./slackware64/ap/screen-4.9.0-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-02-02 02:13 ./slackware64/ap/screen-4.9.0-x86_64-1.txz.asc @@ -1335,7 +1335,7 @@ drwxr-xr-x 2 root root 20480 2023-05-22 19:08 ./slackware64/ap -rw-r--r-- 1 root root 506 2022-05-15 17:09 ./slackware64/ap/zsh-5.9-x86_64-1.txt -rw-r--r-- 1 root root 3156392 2022-05-15 17:09 ./slackware64/ap/zsh-5.9-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-05-15 17:09 ./slackware64/ap/zsh-5.9-x86_64-1.txz.asc -drwxr-xr-x 2 root root 20480 2023-05-21 17:28 ./slackware64/d +drwxr-xr-x 2 root root 20480 2023-05-25 00:33 ./slackware64/d -rw-r--r-- 1 root root 360 2022-03-09 03:58 ./slackware64/d/Cython-0.29.28-x86_64-1.txt -rw-r--r-- 1 root root 2393012 2022-03-09 03:58 ./slackware64/d/Cython-0.29.28-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-03-09 03:58 ./slackware64/d/Cython-0.29.28-x86_64-1.txz.asc @@ -1446,9 +1446,9 @@ drwxr-xr-x 2 root root 20480 2023-05-21 17:28 ./slackware64/d -rw-r--r-- 1 root root 279 2021-02-13 09:57 ./slackware64/d/intltool-0.51.0-x86_64-6.txt -rw-r--r-- 1 root root 48024 2021-02-13 09:57 ./slackware64/d/intltool-0.51.0-x86_64-6.txz -rw-r--r-- 1 root root 163 2021-02-13 09:57 ./slackware64/d/intltool-0.51.0-x86_64-6.txz.asc --rw-r--r-- 1 root root 332 2023-05-17 20:23 ./slackware64/d/kernel-headers-6.1.29-x86-1.txt --rw-r--r-- 1 root root 1144812 2023-05-17 20:23 ./slackware64/d/kernel-headers-6.1.29-x86-1.txz --rw-r--r-- 1 root root 163 2023-05-17 20:23 ./slackware64/d/kernel-headers-6.1.29-x86-1.txz.asc +-rw-r--r-- 1 root root 332 2023-05-24 19:35 ./slackware64/d/kernel-headers-6.1.30-x86-1.txt +-rw-r--r-- 1 root root 1144856 2023-05-24 19:35 ./slackware64/d/kernel-headers-6.1.30-x86-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 19:35 ./slackware64/d/kernel-headers-6.1.30-x86-1.txz.asc -rw-r--r-- 1 root root 498 2022-09-06 18:30 ./slackware64/d/libtool-2.4.7-x86_64-4.txt -rw-r--r-- 1 root root 438292 2022-09-06 18:30 ./slackware64/d/libtool-2.4.7-x86_64-4.txz -rw-r--r-- 1 root root 163 2022-09-06 18:30 ./slackware64/d/libtool-2.4.7-x86_64-4.txz.asc @@ -1487,9 +1487,9 @@ drwxr-xr-x 2 root root 20480 2023-05-21 17:28 ./slackware64/d -rw-r--r-- 1 root root 529 2023-04-15 18:36 ./slackware64/d/pahole-1.25-x86_64-1.txt -rw-r--r-- 1 root root 327656 2023-04-15 18:36 ./slackware64/d/pahole-1.25-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-15 18:36 ./slackware64/d/pahole-1.25-x86_64-1.txz.asc --rw-r--r-- 1 root root 398 2023-04-24 19:57 ./slackware64/d/parallel-20230422-noarch-1.txt --rw-r--r-- 1 root root 507864 2023-04-24 19:57 ./slackware64/d/parallel-20230422-noarch-1.txz --rw-r--r-- 1 root root 163 2023-04-24 19:57 ./slackware64/d/parallel-20230422-noarch-1.txz.asc +-rw-r--r-- 1 root root 398 2023-05-23 18:10 ./slackware64/d/parallel-20230522-noarch-1.txt +-rw-r--r-- 1 root root 510120 2023-05-23 18:10 ./slackware64/d/parallel-20230522-noarch-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:10 ./slackware64/d/parallel-20230522-noarch-1.txz.asc -rw-r--r-- 1 root root 469 2023-04-24 19:58 ./slackware64/d/patchelf-0.18.0-x86_64-1.txt -rw-r--r-- 1 root root 94892 2023-04-24 19:58 ./slackware64/d/patchelf-0.18.0-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-24 19:58 ./slackware64/d/patchelf-0.18.0-x86_64-1.txz.asc @@ -1584,15 +1584,15 @@ drwxr-xr-x 2 root root 4096 2016-04-01 21:41 ./slackware64/f -rw-r--r-- 1 root root 1075 2018-03-01 07:54 ./slackware64/f/maketag -rw-r--r-- 1 root root 1075 2018-03-01 07:54 ./slackware64/f/maketag.ez -rw-r--r-- 1 root root 32 2018-03-01 07:54 ./slackware64/f/tagfile -drwxr-xr-x 2 root root 4096 2023-05-17 21:06 ./slackware64/k +drwxr-xr-x 2 root root 4096 2023-05-25 00:32 ./slackware64/k -rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/k/install-packages -rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/k/install.end --rw-r--r-- 1 root root 317 2023-05-17 20:02 ./slackware64/k/kernel-source-6.1.29-noarch-1.txt --rw-r--r-- 1 root root 131378620 2023-05-17 20:02 ./slackware64/k/kernel-source-6.1.29-noarch-1.txz --rw-r--r-- 1 root root 163 2023-05-17 20:02 ./slackware64/k/kernel-source-6.1.29-noarch-1.txz.asc --rw-r--r-- 1 root root 1170 2023-05-17 20:24 ./slackware64/k/maketag --rw-r--r-- 1 root root 1170 2023-05-17 20:24 ./slackware64/k/maketag.ez --rw-r--r-- 1 root root 18 2023-05-17 20:24 ./slackware64/k/tagfile +-rw-r--r-- 1 root root 317 2023-05-24 19:15 ./slackware64/k/kernel-source-6.1.30-noarch-1.txt +-rw-r--r-- 1 root root 131390156 2023-05-24 19:15 ./slackware64/k/kernel-source-6.1.30-noarch-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 19:15 ./slackware64/k/kernel-source-6.1.30-noarch-1.txz.asc +-rw-r--r-- 1 root root 1170 2023-05-25 00:09 ./slackware64/k/maketag +-rw-r--r-- 1 root root 1170 2023-05-25 00:09 ./slackware64/k/maketag.ez +-rw-r--r-- 1 root root 18 2023-05-25 00:09 ./slackware64/k/tagfile drwxr-xr-x 2 root root 86016 2023-05-21 17:28 ./slackware64/kde -rw-r--r-- 1 root root 382 2023-05-14 04:49 ./slackware64/kde/akonadi-23.04.1-x86_64-1.txt -rw-r--r-- 1 root root 2581320 2023-05-14 04:49 ./slackware64/kde/akonadi-23.04.1-x86_64-1.txz @@ -2711,7 +2711,7 @@ drwxr-xr-x 2 root root 86016 2023-05-21 17:28 ./slackware64/kde -rw-r--r-- 1 root root 164 2023-05-14 05:16 ./slackware64/kde/svgpart-23.04.1-x86_64-1.txt -rw-r--r-- 1 root root 32108 2023-05-14 05:16 ./slackware64/kde/svgpart-23.04.1-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-14 05:16 ./slackware64/kde/svgpart-23.04.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 277 2023-05-14 05:11 ./slackware64/kde/sweeper-23.04.1-x86_64-1.txt +-rw-r--r-- 1 root root 277 2023-05-14 05:11 ./slackware64/kde/sweeper-23.04.1-x86_64-1.txt -rw-r--r-- 1 root root 412632 2023-05-14 05:11 ./slackware64/kde/sweeper-23.04.1-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-14 05:11 ./slackware64/kde/sweeper-23.04.1-x86_64-1.txz.asc -rw-r--r-- 1 root root 440 2023-05-14 04:35 ./slackware64/kde/syndication-5.106.0-x86_64-1.txt @@ -2748,7 +2748,7 @@ drwxr-xr-x 2 root root 86016 2023-05-21 17:28 ./slackware64/kde -rw-r--r-- 1 root root 403 2023-04-20 20:52 ./slackware64/kde/zxing-cpp-2.0.0-x86_64-1.txt -rw-r--r-- 1 root root 713544 2023-04-20 20:52 ./slackware64/kde/zxing-cpp-2.0.0-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-20 20:52 ./slackware64/kde/zxing-cpp-2.0.0-x86_64-1.txz.asc -drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l +drwxr-xr-x 2 root root 86016 2023-05-25 00:33 ./slackware64/l -rw-r--r-- 1 root root 329 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txt -rw-r--r-- 1 root root 928144 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txz -rw-r--r-- 1 root root 163 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txz.asc @@ -2911,9 +2911,9 @@ drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l -rw-r--r-- 1 root root 527 2023-03-03 19:46 ./slackware64/l/elfutils-0.189-x86_64-1.txt -rw-r--r-- 1 root root 907176 2023-03-03 19:46 ./slackware64/l/elfutils-0.189-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-03-03 19:46 ./slackware64/l/elfutils-0.189-x86_64-1.txz.asc --rw-r--r-- 1 root root 343 2023-02-19 19:38 ./slackware64/l/enchant-2.3.4-x86_64-1.txt --rw-r--r-- 1 root root 55956 2023-02-19 19:38 ./slackware64/l/enchant-2.3.4-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-02-19 19:38 ./slackware64/l/enchant-2.3.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 343 2023-05-23 18:06 ./slackware64/l/enchant-2.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 56008 2023-05-23 18:06 ./slackware64/l/enchant-2.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:06 ./slackware64/l/enchant-2.4.0-x86_64-1.txz.asc -rw-r--r-- 1 root root 504 2021-02-13 06:26 ./slackware64/l/esound-0.2.41-x86_64-5.txt -rw-r--r-- 1 root root 100980 2021-02-13 06:26 ./slackware64/l/esound-0.2.41-x86_64-5.txz -rw-r--r-- 1 root root 163 2021-02-13 06:26 ./slackware64/l/esound-0.2.41-x86_64-5.txz.asc @@ -2998,9 +2998,9 @@ drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l -rw-r--r-- 1 root root 300 2023-04-12 17:45 ./slackware64/l/glib-networking-2.76.0-x86_64-1.txt -rw-r--r-- 1 root root 143548 2023-04-12 17:45 ./slackware64/l/glib-networking-2.76.0-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-12 17:45 ./slackware64/l/glib-networking-2.76.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 407 2023-04-24 19:41 ./slackware64/l/glib2-2.76.2-x86_64-1.txt --rw-r--r-- 1 root root 4227544 2023-04-24 19:41 ./slackware64/l/glib2-2.76.2-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-04-24 19:41 ./slackware64/l/glib2-2.76.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 407 2023-05-23 18:12 ./slackware64/l/glib2-2.76.3-x86_64-1.txt +-rw-r--r-- 1 root root 4227732 2023-05-23 18:12 ./slackware64/l/glib2-2.76.3-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:12 ./slackware64/l/glib2-2.76.3-x86_64-1.txz.asc -rw-r--r-- 1 root root 313 2023-02-03 19:17 ./slackware64/l/glibc-2.37-x86_64-2.txt -rw-r--r-- 1 root root 5422916 2023-02-03 19:17 ./slackware64/l/glibc-2.37-x86_64-2.txz -rw-r--r-- 1 root root 163 2023-02-03 19:17 ./slackware64/l/glibc-2.37-x86_64-2.txz.asc @@ -3070,9 +3070,9 @@ drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l -rw-r--r-- 1 root root 328 2022-02-20 22:10 ./slackware64/l/gtk+2-2.24.33-x86_64-3.txt -rw-r--r-- 1 root root 6887800 2022-02-20 22:10 ./slackware64/l/gtk+2-2.24.33-x86_64-3.txz -rw-r--r-- 1 root root 163 2022-02-20 22:10 ./slackware64/l/gtk+2-2.24.33-x86_64-3.txz.asc --rw-r--r-- 1 root root 328 2023-03-03 19:51 ./slackware64/l/gtk+3-3.24.37-x86_64-1.txt --rw-r--r-- 1 root root 11272472 2023-03-03 19:51 ./slackware64/l/gtk+3-3.24.37-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-03-03 19:51 ./slackware64/l/gtk+3-3.24.37-x86_64-1.txz.asc +-rw-r--r-- 1 root root 328 2023-05-24 05:21 ./slackware64/l/gtk+3-3.24.38-x86_64-1.txt +-rw-r--r-- 1 root root 11304884 2023-05-24 05:21 ./slackware64/l/gtk+3-3.24.38-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 05:21 ./slackware64/l/gtk+3-3.24.38-x86_64-1.txz.asc -rw-r--r-- 1 root root 315 2023-05-09 19:51 ./slackware64/l/gtk4-4.10.3-x86_64-1.txt -rw-r--r-- 1 root root 9784628 2023-05-09 19:51 ./slackware64/l/gtk4-4.10.3-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-09 19:51 ./slackware64/l/gtk4-4.10.3-x86_64-1.txz.asc @@ -3794,9 +3794,9 @@ drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l -rw-r--r-- 1 root root 437 2021-02-13 07:44 ./slackware64/l/qrencode-4.1.1-x86_64-3.txt -rw-r--r-- 1 root root 58388 2021-02-13 07:44 ./slackware64/l/qrencode-4.1.1-x86_64-3.txz -rw-r--r-- 1 root root 163 2021-02-13 07:44 ./slackware64/l/qrencode-4.1.1-x86_64-3.txz.asc --rw-r--r-- 1 root root 260 2023-04-14 21:54 ./slackware64/l/qt5-5.15.9_20230412_abff5c39-x86_64-1.txt --rw-r--r-- 1 root root 97363780 2023-04-14 21:54 ./slackware64/l/qt5-5.15.9_20230412_abff5c39-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-04-14 21:54 ./slackware64/l/qt5-5.15.9_20230412_abff5c39-x86_64-1.txz.asc +-rw-r--r-- 1 root root 260 2023-05-24 06:38 ./slackware64/l/qt5-5.15.9_20230523_245f369c-x86_64-1.txt +-rw-r--r-- 1 root root 97353004 2023-05-24 06:38 ./slackware64/l/qt5-5.15.9_20230523_245f369c-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-24 06:38 ./slackware64/l/qt5-5.15.9_20230523_245f369c-x86_64-1.txz.asc -rw-r--r-- 1 root root 470 2023-04-14 20:15 ./slackware64/l/qt5-webkit-5.212.0_alpha4-x86_64-11.txt -rw-r--r-- 1 root root 16277596 2023-04-14 20:15 ./slackware64/l/qt5-webkit-5.212.0_alpha4-x86_64-11.txz -rw-r--r-- 1 root root 163 2023-04-14 20:15 ./slackware64/l/qt5-webkit-5.212.0_alpha4-x86_64-11.txz.asc @@ -3930,7 +3930,7 @@ drwxr-xr-x 2 root root 86016 2023-05-22 19:08 ./slackware64/l -rw-r--r-- 1 root root 463 2023-04-05 18:12 ./slackware64/l/zstd-1.5.5-x86_64-1.txt -rw-r--r-- 1 root root 465608 2023-04-05 18:12 ./slackware64/l/zstd-1.5.5-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-05 18:12 ./slackware64/l/zstd-1.5.5-x86_64-1.txz.asc -drwxr-xr-x 2 root root 36864 2023-05-22 19:08 ./slackware64/n +drwxr-xr-x 2 root root 36864 2023-05-25 00:32 ./slackware64/n -rw-r--r-- 1 root root 357 2023-03-09 19:11 ./slackware64/n/ModemManager-1.20.6-x86_64-1.txt -rw-r--r-- 1 root root 1517848 2023-03-09 19:11 ./slackware64/n/ModemManager-1.20.6-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-03-09 19:11 ./slackware64/n/ModemManager-1.20.6-x86_64-1.txz.asc @@ -3979,9 +3979,9 @@ drwxr-xr-x 2 root root 36864 2023-05-22 19:08 ./slackware64/n -rw-r--r-- 1 root root 409 2021-02-13 11:57 ./slackware64/n/crda-4.14-x86_64-3.txt -rw-r--r-- 1 root root 69208 2021-02-13 11:57 ./slackware64/n/crda-4.14-x86_64-3.txz -rw-r--r-- 1 root root 163 2021-02-13 11:57 ./slackware64/n/crda-4.14-x86_64-3.txz.asc --rw-r--r-- 1 root root 552 2023-05-17 16:45 ./slackware64/n/curl-8.1.0-x86_64-1.txt --rw-r--r-- 1 root root 1351080 2023-05-17 16:45 ./slackware64/n/curl-8.1.0-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-05-17 16:45 ./slackware64/n/curl-8.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 552 2023-05-23 16:52 ./slackware64/n/curl-8.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 1351540 2023-05-23 16:52 ./slackware64/n/curl-8.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 16:52 ./slackware64/n/curl-8.1.1-x86_64-1.txz.asc -rw-r--r-- 1 root root 373 2023-03-08 02:08 ./slackware64/n/cyrus-sasl-2.1.28-x86_64-3.txt -rw-r--r-- 1 root root 994312 2023-03-08 02:08 ./slackware64/n/cyrus-sasl-2.1.28-x86_64-3.txz -rw-r--r-- 1 root root 163 2023-03-08 02:08 ./slackware64/n/cyrus-sasl-2.1.28-x86_64-3.txz.asc @@ -4401,7 +4401,7 @@ drwxr-xr-x 2 root root 36864 2023-05-22 19:08 ./slackware64/n -rw-r--r-- 1 root root 648 2021-02-13 12:34 ./slackware64/n/zd1211-firmware-1.5-fw-4.txt -rw-r--r-- 1 root root 31144 2021-02-13 12:34 ./slackware64/n/zd1211-firmware-1.5-fw-4.txz -rw-r--r-- 1 root root 163 2021-02-13 12:34 ./slackware64/n/zd1211-firmware-1.5-fw-4.txz.asc -drwxr-xr-x 2 root root 4096 2023-04-15 03:27 ./slackware64/t +drwxr-xr-x 2 root root 4096 2023-05-25 00:33 ./slackware64/t -rw-r--r-- 1 root root 484 2021-08-23 17:49 ./slackware64/t/fig2dev-3.2.8b-x86_64-1.txt -rw-r--r-- 1 root root 290424 2021-08-23 17:49 ./slackware64/t/fig2dev-3.2.8b-x86_64-1.txz -rw-r--r-- 1 root root 163 2021-08-23 17:49 ./slackware64/t/fig2dev-3.2.8b-x86_64-1.txz.asc @@ -4410,9 +4410,9 @@ drwxr-xr-x 2 root root 4096 2023-04-15 03:27 ./slackware64/t -rw-r--r-- 1 root root 1102 2018-03-01 07:55 ./slackware64/t/maketag -rw-r--r-- 1 root root 1102 2018-03-01 07:55 ./slackware64/t/maketag.ez -rw-r--r-- 1 root root 33 2018-03-01 07:55 ./slackware64/t/tagfile --rw-r--r-- 1 root root 508 2023-04-14 20:32 ./slackware64/t/texlive-2023.230322-x86_64-2.txt --rw-r--r-- 1 root root 68376204 2023-04-14 20:32 ./slackware64/t/texlive-2023.230322-x86_64-2.txz --rw-r--r-- 1 root root 163 2023-04-14 20:32 ./slackware64/t/texlive-2023.230322-x86_64-2.txz.asc +-rw-r--r-- 1 root root 508 2023-05-23 18:45 ./slackware64/t/texlive-2023.230322-x86_64-3.txt +-rw-r--r-- 1 root root 68386636 2023-05-23 18:45 ./slackware64/t/texlive-2023.230322-x86_64-3.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:45 ./slackware64/t/texlive-2023.230322-x86_64-3.txz.asc -rw-r--r-- 1 root root 457 2021-08-23 18:15 ./slackware64/t/xfig-3.2.8b-x86_64-1.txt -rw-r--r-- 1 root root 3386488 2021-08-23 18:15 ./slackware64/t/xfig-3.2.8b-x86_64-1.txz -rw-r--r-- 1 root root 163 2021-08-23 18:15 ./slackware64/t/xfig-3.2.8b-x86_64-1.txz.asc @@ -5325,7 +5325,7 @@ drwxr-xr-x 2 root root 65536 2023-05-18 15:21 ./slackware64/x -rw-r--r-- 1 root root 213 2022-07-11 18:36 ./slackware64/x/xwud-1.0.6-x86_64-1.txt -rw-r--r-- 1 root root 25896 2022-07-11 18:36 ./slackware64/x/xwud-1.0.6-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-07-11 18:36 ./slackware64/x/xwud-1.0.6-x86_64-1.txz.asc -drwxr-xr-x 2 root root 16384 2023-05-22 19:08 ./slackware64/xap +drwxr-xr-x 2 root root 16384 2023-05-25 00:32 ./slackware64/xap -rw-r--r-- 1 root root 625 2022-10-09 18:00 ./slackware64/xap/MPlayer-20221009-x86_64-1.txt -rw-r--r-- 1 root root 2750024 2022-10-09 18:00 ./slackware64/xap/MPlayer-20221009-x86_64-1.txz -rw-r--r-- 1 root root 163 2022-10-09 18:00 ./slackware64/xap/MPlayer-20221009-x86_64-1.txz.asc @@ -5402,9 +5402,9 @@ drwxr-xr-x 2 root root 16384 2023-05-22 19:08 ./slackware64/xap -rw-r--r-- 1 root root 163 2023-01-09 19:24 ./slackware64/xap/libnma-1.10.6-x86_64-1.txz.asc -rw-r--r-- 1 root root 4491 2021-09-23 19:14 ./slackware64/xap/maketag -rw-r--r-- 1 root root 4491 2021-09-23 19:14 ./slackware64/xap/maketag.ez --rw-r--r-- 1 root root 570 2023-05-14 00:37 ./slackware64/xap/mozilla-firefox-113.0.1-x86_64-1.txt --rw-r--r-- 1 root root 59367472 2023-05-14 00:37 ./slackware64/xap/mozilla-firefox-113.0.1-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-05-14 00:37 ./slackware64/xap/mozilla-firefox-113.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 570 2023-05-23 18:34 ./slackware64/xap/mozilla-firefox-113.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 59350088 2023-05-23 18:34 ./slackware64/xap/mozilla-firefox-113.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:34 ./slackware64/xap/mozilla-firefox-113.0.2-x86_64-1.txz.asc -rw-r--r-- 1 root root 663 2023-05-10 19:04 ./slackware64/xap/mozilla-thunderbird-102.11.0-x86_64-1.txt -rw-r--r-- 1 root root 54982920 2023-05-10 19:04 ./slackware64/xap/mozilla-thunderbird-102.11.0-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-05-10 19:04 ./slackware64/xap/mozilla-thunderbird-102.11.0-x86_64-1.txz.asc @@ -5484,7 +5484,7 @@ drwxr-xr-x 2 root root 16384 2023-05-22 19:08 ./slackware64/xap -rw-r--r-- 1 root root 230 2023-04-02 18:24 ./slackware64/xap/xsnow-3.7.4-x86_64-1.txt -rw-r--r-- 1 root root 1798148 2023-04-02 18:24 ./slackware64/xap/xsnow-3.7.4-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-04-02 18:24 ./slackware64/xap/xsnow-3.7.4-x86_64-1.txz.asc -drwxr-xr-x 2 root root 12288 2023-05-16 03:11 ./slackware64/xfce +drwxr-xr-x 2 root root 12288 2023-05-25 00:32 ./slackware64/xfce -rw-r--r-- 1 root root 253 2021-10-01 03:27 ./slackware64/xfce/Greybird-3.22.15-noarch-1.txt -rw-r--r-- 1 root root 189900 2021-10-01 03:27 ./slackware64/xfce/Greybird-3.22.15-noarch-1.txz -rw-r--r-- 1 root root 163 2021-10-01 03:27 ./slackware64/xfce/Greybird-3.22.15-noarch-1.txz.asc @@ -5497,11 +5497,11 @@ drwxr-xr-x 2 root root 12288 2023-05-16 03:11 ./slackware64/xfce -rw-r--r-- 1 root root 294 2023-03-29 17:35 ./slackware64/xfce/garcon-4.18.1-x86_64-1.txt -rw-r--r-- 1 root root 166236 2023-03-29 17:35 ./slackware64/xfce/garcon-4.18.1-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-03-29 17:35 ./slackware64/xfce/garcon-4.18.1-x86_64-1.txz.asc --rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/xfce/install-packages --rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/xfce/install.end --rw-r--r-- 1 root root 309 2023-03-29 17:29 ./slackware64/xfce/libxfce4ui-4.18.3-x86_64-1.txt --rw-r--r-- 1 root root 362260 2023-03-29 17:29 ./slackware64/xfce/libxfce4ui-4.18.3-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-03-29 17:29 ./slackware64/xfce/libxfce4ui-4.18.3-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/xfce/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/xfce/install.end +-rw-r--r-- 1 root root 309 2023-05-23 18:16 ./slackware64/xfce/libxfce4ui-4.18.4-x86_64-1.txt +-rw-r--r-- 1 root root 364972 2023-05-23 18:16 ./slackware64/xfce/libxfce4ui-4.18.4-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:16 ./slackware64/xfce/libxfce4ui-4.18.4-x86_64-1.txz.asc -rw-r--r-- 1 root root 316 2023-01-10 21:06 ./slackware64/xfce/libxfce4util-4.18.1-x86_64-1.txt -rw-r--r-- 1 root root 138332 2023-01-10 21:06 ./slackware64/xfce/libxfce4util-4.18.1-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-01-10 21:06 ./slackware64/xfce/libxfce4util-4.18.1-x86_64-1.txz.asc @@ -5532,9 +5532,9 @@ drwxr-xr-x 2 root root 12288 2023-05-16 03:11 ./slackware64/xfce -rw-r--r-- 1 root root 378 2023-02-28 19:27 ./slackware64/xfce/xfce4-notifyd-0.8.2-x86_64-1.txt -rw-r--r-- 1 root root 185544 2023-02-28 19:27 ./slackware64/xfce/xfce4-notifyd-0.8.2-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-02-28 19:27 ./slackware64/xfce/xfce4-notifyd-0.8.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 437 2023-03-29 17:36 ./slackware64/xfce/xfce4-panel-4.18.3-x86_64-1.txt --rw-r--r-- 1 root root 754016 2023-03-29 17:36 ./slackware64/xfce/xfce4-panel-4.18.3-x86_64-1.txz --rw-r--r-- 1 root root 163 2023-03-29 17:36 ./slackware64/xfce/xfce4-panel-4.18.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 437 2023-05-23 18:16 ./slackware64/xfce/xfce4-panel-4.18.4-x86_64-1.txt +-rw-r--r-- 1 root root 897668 2023-05-23 18:16 ./slackware64/xfce/xfce4-panel-4.18.4-x86_64-1.txz +-rw-r--r-- 1 root root 163 2023-05-23 18:16 ./slackware64/xfce/xfce4-panel-4.18.4-x86_64-1.txz.asc -rw-r--r-- 1 root root 637 2021-02-22 01:27 ./slackware64/xfce/xfce4-panel-profiles-1.0.13-x86_64-1.txt -rw-r--r-- 1 root root 77244 2021-02-22 01:27 ./slackware64/xfce/xfce4-panel-profiles-1.0.13-x86_64-1.txz -rw-r--r-- 1 root root 163 2021-02-22 01:27 ./slackware64/xfce/xfce4-panel-profiles-1.0.13-x86_64-1.txz.asc @@ -5592,11 +5592,11 @@ drwxr-xr-x 2 root root 4096 2023-03-08 20:34 ./slackware64/y -rw-r--r-- 1 root root 1491108 2023-02-19 18:31 ./slackware64/y/nethack-3.6.7-x86_64-1.txz -rw-r--r-- 1 root root 163 2023-02-19 18:31 ./slackware64/y/nethack-3.6.7-x86_64-1.txz.asc -rw-r--r-- 1 root root 26 2020-12-30 21:55 ./slackware64/y/tagfile -drwxr-xr-x 18 root root 4096 2023-05-22 19:09 ./source --rw-r--r-- 1 root root 599422 2023-05-22 19:09 ./source/CHECKSUMS.md5 --rw-r--r-- 1 root root 163 2023-05-22 19:09 ./source/CHECKSUMS.md5.asc --rw-r--r-- 1 root root 833333 2023-05-22 19:09 ./source/FILE_LIST --rw-r--r-- 1 root root 24541040 2023-05-22 19:09 ./source/MANIFEST.bz2 +drwxr-xr-x 18 root root 4096 2023-05-25 00:34 ./source +-rw-r--r-- 1 root root 599577 2023-05-25 00:34 ./source/CHECKSUMS.md5 +-rw-r--r-- 1 root root 163 2023-05-25 00:34 ./source/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 833523 2023-05-25 00:34 ./source/FILE_LIST +-rw-r--r-- 1 root root 24558144 2023-05-25 00:34 ./source/MANIFEST.bz2 -rw-r--r-- 1 root root 828 2022-02-02 04:43 ./source/README.TXT drwxr-xr-x 123 root root 4096 2023-05-17 20:46 ./source/a -rw-r--r-- 1 root root 234 2022-10-16 18:39 ./source/a/FTBFSlog @@ -5813,11 +5813,11 @@ drwxr-xr-x 2 root root 4096 2022-09-06 18:27 ./source/a/efivar -rw-r--r-- 1 root root 798 2018-06-12 19:27 ./source/a/efivar/slack-desc drwxr-xr-x 2 root root 4096 2023-03-20 17:03 ./source/a/elilo -rw-r--r-- 1 root root 420016 2013-03-29 20:03 ./source/a/elilo/elilo-3.16-all.tar.xz --rwxr-xr-x 1 root root 5633 2023-03-21 20:40 ./source/a/elilo/elilo.SlackBuild +-rwxr-xr-x 1 root root 5633 2023-05-25 00:04 ./source/a/elilo/elilo.SlackBuild -rw-r--r-- 1 root root 436 2017-11-20 18:33 ./source/a/elilo/elilo.double.kernel.size.limit.diff.gz -rw-r--r-- 1 root root 115516 2022-08-05 20:38 ./source/a/elilo/elilo.loader.binaries.tar.xz -rw-r--r-- 1 root root 627 2022-08-05 19:09 ./source/a/elilo/elilo.zeroes.cc_blob_address.diff.gz --rw-r--r-- 1 root root 8199 2023-03-21 21:03 ./source/a/elilo/eliloconfig +-rw-r--r-- 1 root root 7978 2023-05-25 00:04 ./source/a/elilo/eliloconfig -rw-r--r-- 1 root root 105 2013-10-06 07:42 ./source/a/elilo/setup.ll.eliloconfig -rw-r--r-- 1 root root 897 2018-02-27 06:13 ./source/a/elilo/slack-desc drwxr-xr-x 2 root root 4096 2023-05-18 02:04 ./source/a/elogind @@ -6550,17 +6550,18 @@ drwxr-xr-x 2 root root 4096 2021-02-13 05:31 ./source/a/sysvinit-function -rw-r--r-- 1 root root 13915 2022-09-06 18:43 ./source/a/sysvinit-functions/functions -rw-r--r-- 1 root root 1160 2018-02-27 06:13 ./source/a/sysvinit-functions/slack-desc -rwxr-xr-x 1 root root 3679 2022-09-06 18:43 ./source/a/sysvinit-functions/sysvinit-functions.SlackBuild -drwxr-xr-x 4 root root 4096 2021-02-13 05:31 ./source/a/sysvinit-scripts -drwxr-xr-x 2 root root 4096 2018-09-04 22:24 ./source/a/sysvinit-scripts/default +drwxr-xr-x 4 root root 4096 2023-05-24 23:57 ./source/a/sysvinit-scripts +drwxr-xr-x 2 root root 4096 2023-05-24 23:57 ./source/a/sysvinit-scripts/default -rw-r--r-- 1 root root 160 2018-09-04 22:24 ./source/a/sysvinit-scripts/default/cpufreq --rw-r--r-- 1 root root 367 2018-09-04 22:25 ./source/a/sysvinit-scripts/doinst.sh.gz +-rw-r--r-- 1 root root 383 2023-05-24 23:57 ./source/a/sysvinit-scripts/default/efivarfs +-rw-r--r-- 1 root root 376 2023-05-24 23:57 ./source/a/sysvinit-scripts/doinst.sh.gz drwxr-xr-x 2 root root 4096 2022-12-21 19:43 ./source/a/sysvinit-scripts/scripts -rw-r--r-- 1 root root 2367 2021-04-24 18:41 ./source/a/sysvinit-scripts/scripts/inittab -rw-r--r-- 1 root root 1629 2023-05-09 18:53 ./source/a/sysvinit-scripts/scripts/rc.4 -rw-r--r-- 1 root root 11320 2022-12-21 19:52 ./source/a/sysvinit-scripts/scripts/rc.6 -rw-r--r-- 1 root root 3303 2021-04-23 18:33 ./source/a/sysvinit-scripts/scripts/rc.K -rw-r--r-- 1 root root 13232 2022-03-29 18:44 ./source/a/sysvinit-scripts/scripts/rc.M --rw-r--r-- 1 root root 16665 2022-08-01 19:40 ./source/a/sysvinit-scripts/scripts/rc.S +-rw-r--r-- 1 root root 17518 2023-05-24 23:54 ./source/a/sysvinit-scripts/scripts/rc.S -rw-r--r-- 1 root root 3330 2022-09-06 16:57 ./source/a/sysvinit-scripts/scripts/rc.cpufreq -rw-r--r-- 1 root root 274 2021-04-23 18:31 ./source/a/sysvinit-scripts/scripts/rc.local -rw-r--r-- 1 root root 170 2021-04-23 18:31 ./source/a/sysvinit-scripts/scripts/rc.loop @@ -6568,7 +6569,7 @@ drwxr-xr-x 2 root root 4096 2022-12-21 19:43 ./source/a/sysvinit-scripts/ -rw-r--r-- 1 root root 691 2021-04-23 18:31 ./source/a/sysvinit-scripts/scripts/rc.modules.local -rw-r--r-- 1 root root 1656 2021-04-23 18:31 ./source/a/sysvinit-scripts/scripts/rc.sysvinit -rw-r--r-- 1 root root 842 2018-02-27 06:13 ./source/a/sysvinit-scripts/slack-desc --rwxr-xr-x 1 root root 2373 2023-05-09 18:53 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild +-rwxr-xr-x 1 root root 2469 2023-05-24 23:58 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild -rw-r--r-- 1 root root 668 2015-08-06 22:54 ./source/a/sysvinit/doinst.sh.gz -rw-r--r-- 1 root root 1009 2018-06-21 18:24 ./source/a/sysvinit/slack-desc -rw-r--r-- 1 root root 233451 2023-04-30 16:56 ./source/a/sysvinit/sysvinit-3.07.tar.lz @@ -7112,10 +7113,10 @@ drwxr-xr-x 2 root root 4096 2021-02-13 05:31 ./source/ap/rzip -rwxr-xr-x 1 root root 3096 2021-02-13 05:31 ./source/ap/rzip/rzip.SlackBuild -rw-r--r-- 1 root root 720 2018-02-27 06:12 ./source/ap/rzip/slack-desc drwxr-xr-x 2 root root 4096 2022-09-06 18:27 ./source/ap/sc -drwxr-xr-x 2 root root 4096 2022-09-06 18:27 ./source/ap/sc-im +drwxr-xr-x 2 root root 4096 2023-05-24 05:22 ./source/ap/sc-im -rwxr-xr-x 1 root root 1995 2020-07-09 18:37 ./source/ap/sc-im/fetch-sc-im.sh --rwxr-xr-x 1 root root 325 2018-05-24 18:32 ./source/ap/sc-im/repack-github-archive.sh --rw-r--r-- 1 root root 1348716 2021-09-27 14:58 ./source/ap/sc-im/sc-im-20210927_64b1a41.tar.lz +-rwxr-xr-x 1 root root 2442 2023-05-24 05:25 ./source/ap/sc-im/repack-github-archive.sh +-rw-r--r-- 1 root root 1415239 2023-01-12 17:57 ./source/ap/sc-im/sc-im-0.8.3.tar.lz -rwxr-xr-x 1 root root 3737 2022-09-06 18:27 ./source/ap/sc-im/sc-im.SlackBuild -rw-r--r-- 1 root root 38 2018-05-24 18:20 ./source/ap/sc-im/sc-im.url -rw-r--r-- 1 root root 989 2018-05-24 18:45 ./source/ap/sc-im/slack-desc @@ -7598,8 +7599,8 @@ drwxr-xr-x 2 root root 4096 2023-04-15 18:36 ./source/d/pahole -rwxr-xr-x 1 root root 3820 2022-05-23 18:28 ./source/d/pahole/pahole.SlackBuild -rw-r--r-- 1 root root 52 2022-05-23 18:20 ./source/d/pahole/pahole.url -rw-r--r-- 1 root root 1015 2022-05-23 18:32 ./source/d/pahole/slack-desc -drwxr-xr-x 2 root root 4096 2023-04-24 19:57 ./source/d/parallel --rw-r--r-- 1 root root 1990599 2023-04-22 19:56 ./source/d/parallel/parallel-20230422.tar.lz +drwxr-xr-x 2 root root 4096 2023-05-23 18:10 ./source/d/parallel +-rw-r--r-- 1 root root 2001237 2023-05-22 19:29 ./source/d/parallel/parallel-20230522.tar.lz -rwxr-xr-x 1 root root 4535 2022-09-06 18:27 ./source/d/parallel/parallel.SlackBuild -rw-r--r-- 1 root root 857 2018-04-21 03:27 ./source/d/parallel/slack-desc drwxr-xr-x 2 root root 4096 2023-04-24 19:57 ./source/d/patchelf @@ -7778,7 +7779,7 @@ drwxr-xr-x 2 root root 4096 2018-02-27 06:13 ./source/f -rw-r--r-- 1 root root 960 2018-02-27 06:13 ./source/f/slack-desc.linux-faqs -rw-r--r-- 1 root root 801 2018-02-27 06:13 ./source/f/slack-desc.linux-howtos drwxr-xr-x 3 root root 4096 2023-01-19 20:42 ./source/installer --rw-r--r-- 1 root root 44628 2023-04-05 19:23 ./source/installer/ChangeLog.txt +-rw-r--r-- 1 root root 44704 2023-05-25 00:15 ./source/installer/ChangeLog.txt -rw-r--r-- 1 root root 6849 2018-03-11 00:53 ./source/installer/README -rwxr-xr-x 1 root root 79201 2023-04-05 19:09 ./source/installer/build_installer.sh -rwxr-xr-x 1 root root 2252 2022-09-06 18:27 ./source/installer/installer.SlackBuild @@ -7818,26 +7819,26 @@ drwxr-xr-x 2 root root 4096 2018-03-11 02:36 ./source/installer/sources/e -rwxr-xr-x 1 root root 238531 2018-06-12 19:01 ./source/installer/sources/efi.x86_64/EFI/BOOT/BOOTX64.EFI -rwxr-xr-x 1 root root 422 2013-03-27 03:35 ./source/installer/sources/efi.x86_64/EFI/BOOT/elilo.conf -rwxr-xr-x 1 root root 561 2021-01-29 20:43 ./source/installer/sources/efi.x86_64/EFI/BOOT/message.txt -drwxr-xr-x 2 root root 4096 2023-03-21 21:05 ./source/installer/sources/initrd --rw-r--r-- 1 root root 145254 2023-03-21 21:04 ./source/installer/sources/initrd/skeleton_initrd.tar.gz +drwxr-xr-x 2 root root 4096 2023-05-25 00:15 ./source/installer/sources/initrd +-rw-r--r-- 1 root root 145353 2023-05-25 00:15 ./source/installer/sources/initrd/skeleton_initrd.tar.gz drwxr-xr-x 2 root root 4096 2022-12-14 18:57 ./source/installer/sources/nano -rw-r--r-- 1 root root 1605272 2022-12-14 10:35 ./source/installer/sources/nano/nano-7.1.tar.xz -rw-r--r-- 1 root root 833 2022-12-14 10:35 ./source/installer/sources/nano/nano-7.1.tar.xz.sig -drwxr-xr-x 5 root root 4096 2023-05-17 16:43 ./source/k +drwxr-xr-x 5 root root 4096 2023-05-24 17:19 ./source/k -rwxr-xr-x 1 root root 8310 2022-10-22 18:02 ./source/k/build-all-kernels.sh -drwxr-xr-x 2 root root 4096 2023-05-17 18:04 ./source/k/kernel-configs --rw-r--r-- 1 root root 248556 2023-05-17 17:03 ./source/k/kernel-configs/config-generic-6.1.29 --rw-r--r-- 1 root root 252503 2023-05-17 18:04 ./source/k/kernel-configs/config-generic-6.1.29.x64 --rw-r--r-- 1 root root 249800 2023-05-17 17:03 ./source/k/kernel-configs/config-generic-smp-6.1.29-smp --rw-r--r-- 1 root root 248525 2023-05-17 17:03 ./source/k/kernel-configs/config-huge-6.1.29 --rw-r--r-- 1 root root 252472 2023-05-17 18:04 ./source/k/kernel-configs/config-huge-6.1.29.x64 --rw-r--r-- 1 root root 249769 2023-05-17 17:03 ./source/k/kernel-configs/config-huge-smp-6.1.29-smp +drwxr-xr-x 2 root root 4096 2023-05-24 17:36 ./source/k/kernel-configs +-rw-r--r-- 1 root root 248589 2023-05-24 17:31 ./source/k/kernel-configs/config-generic-6.1.30 +-rw-r--r-- 1 root root 252536 2023-05-24 17:36 ./source/k/kernel-configs/config-generic-6.1.30.x64 +-rw-r--r-- 1 root root 249833 2023-05-24 17:30 ./source/k/kernel-configs/config-generic-smp-6.1.30-smp +-rw-r--r-- 1 root root 248558 2023-05-24 17:31 ./source/k/kernel-configs/config-huge-6.1.30 +-rw-r--r-- 1 root root 252505 2023-05-24 17:36 ./source/k/kernel-configs/config-huge-6.1.30.x64 +-rw-r--r-- 1 root root 249802 2023-05-24 17:31 ./source/k/kernel-configs/config-huge-smp-6.1.30-smp -rwxr-xr-x 1 root root 7441 2020-06-11 19:56 ./source/k/kernel-generic.SlackBuild -rwxr-xr-x 1 root root 3779 2019-09-29 23:48 ./source/k/kernel-headers.SlackBuild -rwxr-xr-x 1 root root 6504 2022-10-22 18:03 ./source/k/kernel-modules.SlackBuild -rwxr-xr-x 1 root root 10927 2023-01-25 19:02 ./source/k/kernel-source.SlackBuild --rw-r--r-- 1 root root 989 2023-05-17 10:04 ./source/k/linux-6.1.29.tar.sign --rw-r--r-- 1 root root 134881816 2023-05-17 10:04 ./source/k/linux-6.1.29.tar.xz +-rw-r--r-- 1 root root 989 2023-05-24 16:42 ./source/k/linux-6.1.30.tar.sign +-rw-r--r-- 1 root root 134914908 2023-05-24 16:42 ./source/k/linux-6.1.30.tar.xz drwxr-xr-x 2 root root 4096 2023-01-04 20:50 ./source/k/patches-revert-i686 -rw-r--r-- 1 root root 1132 2023-01-03 00:53 ./source/k/patches-revert-i686/0001-x86-ioremap-Fix-page-aligned-size-calculation-in-__i.patch.gz -rw-r--r-- 1 root root 246 2023-01-04 20:50 ./source/k/patches-revert-i686/README @@ -9786,7 +9787,7 @@ drwxr-xr-x 2 root root 4096 2023-04-20 20:51 ./source/kde/zxing-cpp -rw-r--r-- 1 root root 569082 2023-01-05 15:11 ./source/kde/zxing-cpp/zxing-cpp-2.0.0.tar.lz -rwxr-xr-x 1 root root 3872 2023-04-20 20:52 ./source/kde/zxing-cpp/zxing-cpp.SlackBuild -rw-r--r-- 1 root root 39 2023-04-20 20:51 ./source/kde/zxing-cpp/zxing-cpp.url -drwxr-xr-x 391 root root 12288 2023-05-16 18:52 ./source/l +drwxr-xr-x 391 root root 12288 2023-05-24 04:35 ./source/l -rw-r--r-- 1 root root 926 2023-05-04 03:22 ./source/l/FTBFSlog drwxr-xr-x 3 root root 4096 2022-03-06 19:58 ./source/l/GConf -rw-r--r-- 1 root root 1559904 2013-01-22 02:48 ./source/l/GConf/GConf-3.2.6.tar.xz @@ -10074,8 +10075,8 @@ drwxr-xr-x 2 root root 4096 2023-03-03 19:46 ./source/l/elfutils -rw-r--r-- 1 root root 8646507 2023-03-03 15:43 ./source/l/elfutils/elfutils-0.189.tar.lz -rwxr-xr-x 1 root root 4678 2021-05-11 18:27 ./source/l/elfutils/elfutils.SlackBuild -rw-r--r-- 1 root root 983 2020-11-01 18:17 ./source/l/elfutils/slack-desc -drwxr-xr-x 2 root root 4096 2023-02-19 19:35 ./source/l/enchant --rw-r--r-- 1 root root 562744 2023-02-19 14:50 ./source/l/enchant/enchant-2.3.4.tar.lz +drwxr-xr-x 2 root root 4096 2023-05-23 18:06 ./source/l/enchant +-rw-r--r-- 1 root root 564001 2023-05-22 15:49 ./source/l/enchant/enchant-2.4.0.tar.lz -rwxr-xr-x 1 root root 4091 2023-02-19 19:38 ./source/l/enchant/enchant.SlackBuild -rw-r--r-- 1 root root 35 2020-10-28 22:18 ./source/l/enchant/enchant.url -rw-r--r-- 1 root root 798 2020-10-28 22:17 ./source/l/enchant/slack-desc @@ -10251,9 +10252,9 @@ drwxr-xr-x 2 root root 4096 2023-04-12 17:45 ./source/l/glib-networking -rw-r--r-- 1 root root 346080 2001-03-15 14:59 ./source/l/glib/glib-1.2.10.tar.bz2 -rwxr-xr-x 1 root root 5498 2021-02-13 05:31 ./source/l/glib/glib.SlackBuild -rw-r--r-- 1 root root 754 2018-02-27 06:12 ./source/l/glib/slack-desc -drwxr-xr-x 2 root root 4096 2023-04-24 19:36 ./source/l/glib2 +drwxr-xr-x 2 root root 4096 2023-05-23 18:09 ./source/l/glib2 -rw-r--r-- 1 root root 516 2011-11-06 22:03 ./source/l/glib2/doinst.sh.gz --rw-r--r-- 1 root root 5273836 2023-04-21 15:58 ./source/l/glib2/glib-2.76.2.tar.xz +-rw-r--r-- 1 root root 5273460 2023-05-23 11:12 ./source/l/glib2/glib-2.76.3.tar.xz -rwxr-xr-x 1 root root 5376 2023-04-12 17:40 ./source/l/glib2/glib2.SlackBuild -rw-r--r-- 1 root root 913 2021-09-02 23:31 ./source/l/glib2/libglib2.csh -rw-r--r-- 1 root root 909 2021-09-01 17:51 ./source/l/glib2/libglib2.sh @@ -10424,9 +10425,9 @@ drwxr-xr-x 2 root root 4096 2003-01-11 06:27 ./source/l/gtk+2/profile.d -rw-r--r-- 1 root root 781 2021-04-02 18:02 ./source/l/gtk+2/slack-desc -rw-r--r-- 1 root root 339 2011-02-24 20:40 ./source/l/gtk+2/update-gtk-immodules -rw-r--r-- 1 root root 1459 2013-07-12 04:52 ./source/l/gtk+2/update-gtk-immodules-2.0 -drwxr-xr-x 2 root root 4096 2023-03-03 19:47 ./source/l/gtk+3 +drwxr-xr-x 2 root root 4096 2023-05-24 05:15 ./source/l/gtk+3 -rw-r--r-- 1 root root 639 2014-09-30 04:11 ./source/l/gtk+3/doinst.sh.gz --rw-r--r-- 1 root root 12401196 2023-03-03 00:43 ./source/l/gtk+3/gtk+-3.24.37.tar.xz +-rw-r--r-- 1 root root 12398104 2023-05-22 02:25 ./source/l/gtk+3/gtk+-3.24.38.tar.xz -rwxr-xr-x 1 root root 5213 2023-01-20 19:40 ./source/l/gtk+3/gtk+3.SlackBuild -rw-r--r-- 1 root root 781 2021-04-02 18:03 ./source/l/gtk+3/slack-desc -rw-r--r-- 1 root root 1458 2013-07-12 05:02 ./source/l/gtk+3/update-gtk-immodules-3.0 @@ -11721,7 +11722,7 @@ drwxr-xr-x 2 root root 4096 2022-09-06 18:27 ./source/l/qrencode -rwxr-xr-- 1 root root 4450 2022-09-06 18:27 ./source/l/qrencode/qrencode.SlackBuild -rw-r--r-- 1 root root 34 2020-08-23 18:07 ./source/l/qrencode/qrencode.url -rw-r--r-- 1 root root 925 2020-11-01 20:04 ./source/l/qrencode/slack-desc -drwxr-xr-x 4 root root 4096 2023-04-14 20:44 ./source/l/qt5 +drwxr-xr-x 4 root root 4096 2023-05-24 04:35 ./source/l/qt5 drwxr-xr-x 2 root root 4096 2023-05-04 03:20 ./source/l/qt5-webkit -rwxr-xr-x 1 root root 4931 2023-05-04 03:21 ./source/l/qt5-webkit/qt5-webkit.SlackBuild -rw-r--r-- 1 root root 878 2020-10-30 18:54 ./source/l/qt5-webkit/qt5-webkit.bison27.patch.gz @@ -11745,8 +11746,8 @@ drwxr-xr-x 2 root root 4096 2023-05-02 19:00 ./source/l/qt5/patches drwxr-xr-x 2 root root 4096 2022-03-20 19:27 ./source/l/qt5/profile.d -rw-r--r-- 1 root root 1102 2022-03-20 19:27 ./source/l/qt5/profile.d/qt5.csh -rw-r--r-- 1 root root 971 2022-03-15 20:00 ./source/l/qt5/profile.d/qt5.sh --rw-r--r-- 1 root root 643420914 2023-04-12 00:54 ./source/l/qt5/qt-everywhere-src-5.15.9_20230412_abff5c39.tar.lz --rwxr-xr-x 1 root root 12370 2023-05-02 19:02 ./source/l/qt5/qt5.SlackBuild +-rw-r--r-- 1 root root 647659281 2023-05-23 23:55 ./source/l/qt5/qt-everywhere-src-5.15.9_20230523_245f369c.tar.lz +-rwxr-xr-x 1 root root 12412 2023-05-24 04:09 ./source/l/qt5/qt5.SlackBuild -rw-r--r-- 1 root root 711 2020-11-28 01:00 ./source/l/qt5/slack-desc drwxr-xr-x 2 root root 4096 2023-05-14 15:41 ./source/l/qtkeychain -rw-r--r-- 1 root root 42939 2023-05-12 10:22 ./source/l/qtkeychain/qtkeychain-0.14.0.tar.lz @@ -12130,9 +12131,9 @@ drwxr-xr-x 2 root root 4096 2021-02-13 05:32 ./source/n/crda -rw-r--r-- 1 root root 488 2019-06-03 21:45 ./source/n/crda/wireless-regdb-2019.06.03.tar.sign -rw-r--r-- 1 root root 23176 2019-06-03 21:45 ./source/n/crda/wireless-regdb-2019.06.03.tar.xz -rw-r--r-- 1 root root 55 2018-02-05 06:31 ./source/n/crda/wireless-regdb.url -drwxr-xr-x 2 root root 4096 2023-05-17 16:44 ./source/n/curl --rw-r--r-- 1 root root 2612568 2023-05-17 06:09 ./source/n/curl/curl-8.1.0.tar.xz --rw-r--r-- 1 root root 488 2023-05-17 06:09 ./source/n/curl/curl-8.1.0.tar.xz.asc +drwxr-xr-x 2 root root 4096 2023-05-23 16:51 ./source/n/curl +-rw-r--r-- 1 root root 2613348 2023-05-23 06:14 ./source/n/curl/curl-8.1.1.tar.xz +-rw-r--r-- 1 root root 488 2023-05-23 06:14 ./source/n/curl/curl-8.1.1.tar.xz.asc -rwxr-xr-x 1 root root 4851 2023-03-20 17:30 ./source/n/curl/curl.SlackBuild -rw-r--r-- 1 root root 30 2018-04-20 16:49 ./source/n/curl/curl.url -rw-r--r-- 1 root root 1004 2019-02-06 21:57 ./source/n/curl/slack-desc @@ -13116,7 +13117,7 @@ drwxr-xr-x 2 root root 4096 2021-08-23 17:48 ./source/t/fig2dev -rw-r--r-- 1 root root 522756 2021-08-22 15:34 ./source/t/fig2dev/fig2dev-3.2.8b.tar.xz -rwxr-xr-x 1 root root 4197 2021-03-28 18:06 ./source/t/fig2dev/fig2dev.SlackBuild -rw-r--r-- 1 root root 940 2018-02-27 06:12 ./source/t/fig2dev/slack-desc -drwxr-xr-x 3 root root 4096 2023-04-14 19:09 ./source/t/texlive +drwxr-xr-x 3 root root 4096 2023-05-23 18:38 ./source/t/texlive -rw-r--r-- 1 root root 773 2017-05-22 17:37 ./source/t/texlive/README.tlpkg -rw-r--r-- 1 root root 137 2023-03-21 11:44 ./source/t/texlive/doinst.sh.gz -rw-r--r-- 1 root root 135 2023-03-22 12:55 ./source/t/texlive/douninst.sh @@ -13128,8 +13129,9 @@ drwxr-xr-x 2 root root 4096 2023-03-22 07:06 ./source/t/texlive/prep -rw-r--r-- 1 root root 32992 2023-03-22 06:53 ./source/t/texlive/prep/texmf_get.sh -rw-r--r-- 1 root root 996 2018-08-22 16:53 ./source/t/texlive/slack-desc -rw-r--r-- 1 root root 28288604 2023-03-11 18:14 ./source/t/texlive/texlive-20230311-source.tar.xz +-rw-r--r-- 1 root root 19770 2023-05-22 19:22 ./source/t/texlive/texlive-20230313-source-security_fix-1.patch.gz -rw-r--r-- 1 root root 58399144 2023-03-22 07:17 ./source/t/texlive/texlive-base-230322.tar.xz --rwxr-xr-x 1 root root 6745 2023-04-14 19:09 ./source/t/texlive/texlive.SlackBuild +-rwxr-xr-x 1 root root 6854 2023-05-23 18:39 ./source/t/texlive/texlive.SlackBuild -rw-r--r-- 1 root root 150 2023-03-22 07:44 ./source/t/texlive/texlive.url drwxr-xr-x 2 root root 4096 2021-08-23 18:13 ./source/t/xfig -rw-r--r-- 1 root root 909 2018-02-27 06:12 ./source/t/xfig/slack-desc @@ -14900,7 +14902,7 @@ drwxr-xr-x 2 root root 4096 2023-01-09 19:24 ./source/xap/libnma -rw-r--r-- 1 root root 702820 2023-01-08 23:51 ./source/xap/libnma/libnma-1.10.6.tar.xz -rwxr-xr-x 1 root root 3630 2023-01-09 19:24 ./source/xap/libnma/libnma.SlackBuild -rw-r--r-- 1 root root 792 2020-03-07 19:38 ./source/xap/libnma/slack-desc -drwxr-xr-x 3 root root 4096 2023-05-14 00:17 ./source/xap/mozilla-firefox +drwxr-xr-x 3 root root 4096 2023-05-23 18:09 ./source/xap/mozilla-firefox -rw-r--r-- 1 root root 693 2021-03-22 17:58 ./source/xap/mozilla-firefox/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch.gz -rw-r--r-- 1 root root 266 2022-08-06 19:40 ./source/xap/mozilla-firefox/arc4random_buf.glibc-2.36.diff.gz drwxr-xr-x 3 root root 4096 2022-12-07 18:06 ./source/xap/mozilla-firefox/build-deps @@ -14911,8 +14913,8 @@ drwxr-xr-x 2 root root 4096 2016-07-03 18:05 ./source/xap/mozilla-firefox -rwxr-xr-x 1 root root 2486 2019-07-08 21:06 ./source/xap/mozilla-firefox/build-deps/autoconf/autoconf.build -rwxr-xr-x 1 root root 840 2018-03-13 12:55 ./source/xap/mozilla-firefox/fetch-and-repack.sh -rw-r--r-- 1 root root 330 2019-07-08 18:41 ./source/xap/mozilla-firefox/ff.ui.scrollToClick.diff.gz --rw-r--r-- 1 root root 502785808 2023-05-12 10:31 ./source/xap/mozilla-firefox/firefox-113.0.1.source.tar.xz --rw-r--r-- 1 root root 833 2023-05-12 10:31 ./source/xap/mozilla-firefox/firefox-113.0.1.source.tar.xz.asc +-rw-r--r-- 1 root root 500503164 2023-05-23 13:04 ./source/xap/mozilla-firefox/firefox-113.0.2.source.tar.xz +-rw-r--r-- 1 root root 833 2023-05-23 13:04 ./source/xap/mozilla-firefox/firefox-113.0.2.source.tar.xz.asc -rw-r--r-- 1 root root 327 2008-06-17 17:19 ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff.gz -rw-r--r-- 1 root root 518 2021-03-15 17:43 ./source/xap/mozilla-firefox/gkrust.a.no.networking.check.diff.gz -rw-r--r-- 1 root root 462 2009-07-01 06:05 ./source/xap/mozilla-firefox/mimeTypes.rdf.gz @@ -15189,8 +15191,8 @@ drwxr-xr-x 2 root root 4096 2023-03-29 17:34 ./source/xfce/garcon -rwxr-xr-x 1 root root 4902 2022-12-17 20:38 ./source/xfce/garcon/garcon.SlackBuild -rw-r--r-- 1 root root 46 2022-12-17 20:38 ./source/xfce/garcon/garcon.url -rw-r--r-- 1 root root 748 2018-02-27 06:13 ./source/xfce/garcon/slack-desc -drwxr-xr-x 2 root root 4096 2023-03-29 17:29 ./source/xfce/libxfce4ui --rw-r--r-- 1 root root 721610 2023-03-28 17:21 ./source/xfce/libxfce4ui/libxfce4ui-4.18.3.tar.lz +drwxr-xr-x 2 root root 4096 2023-05-23 18:09 ./source/xfce/libxfce4ui +-rw-r--r-- 1 root root 723484 2023-05-22 17:04 ./source/xfce/libxfce4ui/libxfce4ui-4.18.4.tar.lz -rwxr-xr-x 1 root root 4933 2021-09-06 03:48 ./source/xfce/libxfce4ui/libxfce4ui.SlackBuild -rw-r--r-- 1 root root 51 2022-12-17 20:29 ./source/xfce/libxfce4ui/libxfce4ui.url -rw-r--r-- 1 root root 767 2018-02-27 06:13 ./source/xfce/libxfce4ui/slack-desc @@ -15243,14 +15245,14 @@ drwxr-xr-x 2 root root 4096 2023-02-28 19:27 ./source/xfce/xfce4-notifyd -rw-r--r-- 1 root root 506883 2023-02-28 06:37 ./source/xfce/xfce4-notifyd/xfce4-notifyd-0.8.2.tar.lz -rwxr-xr-x 1 root root 4023 2022-02-13 19:38 ./source/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild -rw-r--r-- 1 root root 52 2023-02-11 20:27 ./source/xfce/xfce4-notifyd/xfce4-notifyd.url -drwxr-xr-x 2 root root 4096 2023-03-29 17:35 ./source/xfce/xfce4-panel +drwxr-xr-x 2 root root 4096 2023-05-23 18:11 ./source/xfce/xfce4-panel drwxr-xr-x 2 root root 4096 2021-02-22 01:27 ./source/xfce/xfce4-panel-profiles -rw-r--r-- 1 root root 121 2019-08-02 07:05 ./source/xfce/xfce4-panel-profiles/doinst.sh.gz -rw-r--r-- 1 root root 1138 2019-08-02 07:01 ./source/xfce/xfce4-panel-profiles/slack-desc -rw-r--r-- 1 root root 63201 2021-02-22 01:26 ./source/xfce/xfce4-panel-profiles/xfce4-panel-profiles-1.0.13.tar.lz -rwxr-xr-x 1 root root 3834 2021-02-22 01:27 ./source/xfce/xfce4-panel-profiles/xfce4-panel-profiles.SlackBuild -rw-r--r-- 1 root root 896 2018-02-27 06:13 ./source/xfce/xfce4-panel/slack-desc --rw-r--r-- 1 root root 1200802 2023-03-28 17:57 ./source/xfce/xfce4-panel/xfce4-panel-4.18.3.tar.lz +-rw-r--r-- 1 root root 1344602 2023-05-22 17:42 ./source/xfce/xfce4-panel/xfce4-panel-4.18.4.tar.lz -rwxr-xr-x 1 root root 4782 2021-02-25 19:35 ./source/xfce/xfce4-panel/xfce4-panel.SlackBuild -rw-r--r-- 1 root root 52 2022-12-17 20:44 ./source/xfce/xfce4-panel/xfce4-panel.url drwxr-xr-x 2 root root 4096 2023-02-10 19:50 ./source/xfce/xfce4-power-manager @@ -15427,9 +15429,9 @@ drwxr-xr-x 2 root root 4096 2023-05-08 21:44 ./testing/source/rust -rw-r--r-- 1 root root 1670 2023-05-08 21:43 ./testing/source/rust/rust.url -rw-r--r-- 1 root root 130940003 2023-04-20 14:38 ./testing/source/rust/rustc-1.69.0-src.tar.lz -rw-r--r-- 1 root root 910 2018-02-27 06:49 ./testing/source/rust/slack-desc -drwxr-xr-x 2 root root 4096 2023-05-17 20:59 ./usb-and-pxe-installers +drwxr-xr-x 2 root root 4096 2023-05-25 00:23 ./usb-and-pxe-installers -rw-r--r-- 1 root root 31203 2011-03-21 21:21 ./usb-and-pxe-installers/README_PXE.TXT -rw-r--r-- 1 root root 9197 2013-09-25 04:33 ./usb-and-pxe-installers/README_USB.TXT -rw-r--r-- 1 root root 574 2013-03-27 04:59 ./usb-and-pxe-installers/pxelinux.cfg_default --rw-r--r-- 1 root root 59130880 2023-05-17 20:59 ./usb-and-pxe-installers/usbboot.img +-rw-r--r-- 1 root root 59184128 2023-05-25 00:23 ./usb-and-pxe-installers/usbboot.img -rw-r--r-- 1 root root 16314 2022-03-24 20:54 ./usb-and-pxe-installers/usbimg2disk.sh diff --git a/README.initrd b/README.initrd index 330619dff..73c02b4f9 100644 --- a/README.initrd +++ b/README.initrd @@ -1,7 +1,7 @@ Slackware initrd mini HOWTO by Patrick Volkerding, volkerdi@slackware.com -Wed May 17 20:24:47 UTC 2023 +Thu May 25 00:09:28 UTC 2023 This document describes how to create and install an initrd, which may be required to use the 4.x kernel. Also see "man mkinitrd". @@ -33,15 +33,15 @@ flexible to ship a generic kernel and a set of kernel modules for it. The easiest way to make the initrd is to use the mkinitrd script included in Slackware's mkinitrd package. We'll walk through the process of -upgrading to the generic 6.1.29 Linux kernel using the packages +upgrading to the generic 6.1.30 Linux kernel using the packages found in Slackware's slackware/a/ directory. First, make sure the kernel, kernel modules, and mkinitrd package are installed (the current version numbers might be a little different, so this is just an example): - installpkg kernel-generic-6.1.29-x86_64-1.txz - installpkg kernel-modules-6.1.29-x86_64-1.txz + installpkg kernel-generic-6.1.30-x86_64-1.txz + installpkg kernel-modules-6.1.30-x86_64-1.txz installpkg mkinitrd-1.4.11-x86_64-32.txz Change into the /boot directory: @@ -52,7 +52,7 @@ Now you'll want to run "mkinitrd". I'm using ext4 for my root filesystem, and since the disk controller requires no special support the ext4 module will be the only one I need to load: - mkinitrd -c -k 6.1.29 -m ext4 + mkinitrd -c -k 6.1.30 -m ext4 This should do two things. First, it will create a directory /boot/initrd-tree containing the initrd's filesystem. Then it will @@ -61,10 +61,10 @@ you could make some additional changes in /boot/initrd-tree/ and then run mkinitrd again without options to rebuild the image. That's optional, though, and only advanced users will need to think about that. -Here's another example: Build an initrd image using Linux 6.1.29 +Here's another example: Build an initrd image using Linux 6.1.30 kernel modules for a system with an ext4 root partition on /dev/sdb3: - mkinitrd -c -k 6.1.29 -m ext4 -f ext4 -r /dev/sdb3 + mkinitrd -c -k 6.1.30 -m ext4 -f ext4 -r /dev/sdb3 4. Now that I've built an initrd, how do I use it? diff --git a/isolinux/message.txt b/isolinux/message.txt index e4533a5b8..15b7f0cb5 100644 --- a/isolinux/message.txt +++ b/isolinux/message.txt @@ -1,5 +1,5 @@ -Welcome to 09Slackware6407 version 15.1 (Linux kernel 6.1.29)! +Welcome to 09Slackware6407 version 15.1 (Linux kernel 6.1.30)! If you need to pass extra parameters to the kernel, enter them at the prompt below after the name of the kernel to boot (e.g., huge.s). diff --git a/kernels/VERSIONS.TXT b/kernels/VERSIONS.TXT index 1bdfcbbfe..675d349f8 100644 --- a/kernels/VERSIONS.TXT +++ b/kernels/VERSIONS.TXT @@ -1,3 +1,3 @@ -These kernels are version 6.1.29. +These kernels are version 6.1.30. diff --git a/recompress.sh b/recompress.sh index d02c38c2a..beaf3ce82 100755 --- a/recompress.sh +++ b/recompress.sh @@ -691,6 +691,7 @@ gzip ./source/ap/rpm/rpm.install4j.compat.diff gzip ./source/ap/rpm/doinst.sh gzip ./source/ap/rpm/Packages gzip ./source/ap/man-db/doinst.sh +gzip ./source/t/texlive/texlive-20230313-source-security_fix-1.patch gzip ./source/t/texlive/doinst.sh gzip ./source/t/xfig/xfig.no.pdf.ref.diff gzip ./source/t/xfig/xfig.fig.ad.diff diff --git a/slackware64/a/maketag b/slackware64/a/maketag index 05cbf571c..d5c55d60a 100644 --- a/slackware64/a/maketag +++ b/slackware64/a/maketag @@ -66,9 +66,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \ "jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \ "kbd" "Change keyboard and console mappings" "on" \ "kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \ -"kernel-generic" "Generic 6.1.29 kernel (needs an initrd)" "on" \ -"kernel-huge" "Loaded 6.1.29 Linux kernel" "on" \ -"kernel-modules" "Linux 6.1.29 kernel modules -- REQUIRED" "on" \ +"kernel-generic" "Generic 6.1.30 kernel (needs an initrd)" "on" \ +"kernel-huge" "Loaded 6.1.30 Linux kernel" "on" \ +"kernel-modules" "Linux 6.1.30 kernel modules -- REQUIRED" "on" \ "kmod" "Kernel module utilities -- REQUIRED" "on" \ "lbzip2" "Parallel bzip2 compressor" "on" \ "less" "A text pager utility - REQUIRED" "on" \ diff --git a/slackware64/a/maketag.ez b/slackware64/a/maketag.ez index 05cbf571c..d5c55d60a 100644 --- a/slackware64/a/maketag.ez +++ b/slackware64/a/maketag.ez @@ -66,9 +66,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \ "jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \ "kbd" "Change keyboard and console mappings" "on" \ "kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \ -"kernel-generic" "Generic 6.1.29 kernel (needs an initrd)" "on" \ -"kernel-huge" "Loaded 6.1.29 Linux kernel" "on" \ -"kernel-modules" "Linux 6.1.29 kernel modules -- REQUIRED" "on" \ +"kernel-generic" "Generic 6.1.30 kernel (needs an initrd)" "on" \ +"kernel-huge" "Loaded 6.1.30 Linux kernel" "on" \ +"kernel-modules" "Linux 6.1.30 kernel modules -- REQUIRED" "on" \ "kmod" "Kernel module utilities -- REQUIRED" "on" \ "lbzip2" "Parallel bzip2 compressor" "on" \ "less" "A text pager utility - REQUIRED" "on" \ diff --git a/slackware64/k/maketag b/slackware64/k/maketag index 0d3a6b6e6..8588f41de 100644 --- a/slackware64/k/maketag +++ b/slackware64/k/maketag @@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \ the SPACE key to deselect any items you don't want to install. \ Press ENTER when you are \ done." 11 70 1 \ -"kernel-source" "Linux 6.1.29 kernel source" "on" \ +"kernel-source" "Linux 6.1.30 kernel source" "on" \ 2> $TMP/SeTpkgs if [ $? = 1 -o $? = 255 ]; then rm -f $TMP/SeTpkgs diff --git a/slackware64/k/maketag.ez b/slackware64/k/maketag.ez index 0d3a6b6e6..8588f41de 100644 --- a/slackware64/k/maketag.ez +++ b/slackware64/k/maketag.ez @@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \ the SPACE key to deselect any items you don't want to install. \ Press ENTER when you are \ done." 11 70 1 \ -"kernel-source" "Linux 6.1.29 kernel source" "on" \ +"kernel-source" "Linux 6.1.30 kernel source" "on" \ 2> $TMP/SeTpkgs if [ $? = 1 -o $? = 255 ]; then rm -f $TMP/SeTpkgs diff --git a/source/a/elilo/elilo.SlackBuild b/source/a/elilo/elilo.SlackBuild index 57f247959..bf7d70990 100755 --- a/source/a/elilo/elilo.SlackBuild +++ b/source/a/elilo/elilo.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=elilo VERSION=${VERSION:-$(echo $PKGNAM*.tar.?z* | rev | cut -f 2 -d - | rev)} -BUILD=${BUILD:-15} +BUILD=${BUILD:-16} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/a/elilo/eliloconfig b/source/a/elilo/eliloconfig index bcded54d8..a662927bf 100644 --- a/source/a/elilo/eliloconfig +++ b/source/a/elilo/eliloconfig @@ -176,12 +176,6 @@ if [ "$REPLY" = "skip" ]; then exit fi -# Make sure efivarfs is active since we'll need it to -# change UEFI boot menu entries: -if [ "$(/bin/ls /sys/firmware/efi/efivars 2> /dev/null | wc -l)" = "0" ]; then - mount -t efivarfs none /sys/firmware/efi/efivars -fi - efibootmgr -v | rev | cut -f 2- | rev | grep Boot0 | grep Slackware | while read line ; do # Reject entries that don't exactly match as not our business if [ ! "$(echo $line | cut -f 2- -d ' ')" = "Slackware" ]; then diff --git a/source/a/sysvinit-scripts/default/efivarfs b/source/a/sysvinit-scripts/default/efivarfs new file mode 100644 index 000000000..973e041d7 --- /dev/null +++ b/source/a/sysvinit-scripts/default/efivarfs @@ -0,0 +1,7 @@ +# By default, we will mount efivarfs read-write on /sys/firmware/efi/efivars. +# This is needed in order to create or modify EFI boot menu entries. +# If you do not want this, you may set the variable below to 'ro' for +# read-only, or 'nomount' (or anything else) if you do not want rc.S to mount +# efivarfs. However, if might still be mounted by /etc/fstab or elsewhere. + +EFIVARFS=rw diff --git a/source/a/sysvinit-scripts/doinst.sh b/source/a/sysvinit-scripts/doinst.sh index c11a17985..ad6980247 100644 --- a/source/a/sysvinit-scripts/doinst.sh +++ b/source/a/sysvinit-scripts/doinst.sh @@ -24,6 +24,7 @@ config etc/rc.d/rc.sysvinit.new config etc/rc.d/rc.modules.new config etc/rc.d/rc.modules.local.new config etc/default/cpufreq.new +config etc/default/efivarfs.new ( cd etc/rc.d ; rm -rf rc.0 ) ( cd etc/rc.d ; ln -sf rc.6 rc.0 ) diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S index 7c004e6f5..37eaac2f9 100644 --- a/source/a/sysvinit-scripts/scripts/rc.S +++ b/source/a/sysvinit-scripts/scripts/rc.S @@ -24,6 +24,31 @@ if [ ! -d /sys/kernel -a -z "$container" ]; then /sbin/mount -v sysfs /sys -n -t sysfs 2> /dev/null fi +# The efivarfs filesystem is used for reading and writing EFI variables, such +# as the boot menu entries. By default efivarfs will be mounted read-write on +# the /sys/firmware/efi/efivars directory. To modify this behavior, edit the +# file: /etc/default/efivarfs +# Only try to mount if this directory exists (so the kernel supports efivarfs): +if [ -d /sys/firmware/efi/efivars ]; then + # Only try to mount if efivarfs is not already mounted: + if ! mount | grep -wq efivarfs ; then + # Mount according to /etc/default/efivarfs: + if [ -r /etc/default/efivarfs ]; then + . /etc/default/efivarfs + else # default + EFIVARFS=rw + fi + case "$EFIVARFS" in + 'rw') + mount -o rw -t efivarfs none /sys/firmware/efi/efivars + ;; + 'ro') + mount -o ro -t efivarfs none /sys/firmware/efi/efivars + ;; + esac + fi +fi + # If /run exists, mount a tmpfs on it (unless the # initrd has already done so): if [ -d /run -a -z "$container" ]; then diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild index 0d6acafd4..60b17e1e3 100755 --- a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild +++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=sysvinit-scripts VERSION=${VERSION:-15.1} ARCH=noarch -BUILD=${BUILD:-4} +BUILD=${BUILD:-5} # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information @@ -56,6 +56,9 @@ chown root:root $PKG/etc/inittab.new mkdir -p $PKG/etc/default cat $CWD/default/cpufreq > $PKG/etc/default/cpufreq.new +# Install /etc/default/efivarfs.new: +cat $CWD/default/efivarfs > $PKG/etc/default/efivarfs.new + mkdir -p $PKG/install zcat $CWD/doinst.sh > $PKG/install/doinst.sh cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/source/ap/sc-im/repack-github-archive.sh b/source/ap/sc-im/repack-github-archive.sh index 08799353d..3c9d3b571 100755 --- a/source/ap/sc-im/repack-github-archive.sh +++ b/source/ap/sc-im/repack-github-archive.sh @@ -1,10 +1,64 @@ -ARCHIVE_ORIG=$(/bin/ls v*.tar.gz) -NEW_BASENAME="sc-im-$(basename $ARCHIVE_ORIG .tar.gz | cut -b2-)" -rm -rf ${NEW_BASENAME}* -tar xf $ARCHIVE_ORIG -# Dump this stuff: -rm -rf $NEW_BASENAME/{examples,screenshots} -tar cf ${NEW_BASENAME}.tar ${NEW_BASENAME} -plzip -9 ${NEW_BASENAME}.tar -rm -f ${ARCHIVE_ORIG} -rm -rf ${NEW_BASENAME} +#!/bin/bash + +# Copyright 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA +# 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. + +CWD=$(pwd) + +# If no archive specified with $1, then look for a v[0-9]*.tar.gz styled tarball: +if [ ! -z $1 ]; then + GITHUB_ARCHIVE=$1 +else + GITHUB_ARCHIVE=${GITHUB_ARCHIVE:-$(/bin/ls v[0-9]*.tar.gz 2> /dev/null)} + if ! /bin/ls v[0-9]*.tar.gz 1> /dev/null 2> /dev/null ; then + echo "ERROR: github archive not found" + exit 1 + fi +fi + +OUTPUT_NAME=$(tar tvvf $GITHUB_ARCHIVE | head -n 1 | tr -d / | rev | cut -f 1 -d ' ' | rev) +OUTPUT_TIMESTAMP=$(tar tvvf $GITHUB_ARCHIVE | head -n 1 | tr -d / | rev | cut -f 2,3 -d ' ' | rev) + +# Create a temporary extraction directory: +EXTRACT_DIR=$(mktemp -d) + +# Extract, repack, compress, and fix timestamp: +( cd $EXTRACT_DIR + tar xf $CWD/$GITHUB_ARCHIVE + # If this is a stupid archive with the name doubled up, fix that: + if [ "$(echo $OUTPUT_NAME | cut -f 1 -d -)" = "$(echo $OUTPUT_NAME | cut -f 2 -d -)" ]; then + echo -n "Fixing internal archive name $OUTPUT_NAME -> " + OUTPUT_NAME="$(echo $OUTPUT_NAME | cut -f 2- -d -)" + echo $OUTPUT_NAME + mv * $OUTPUT_NAME + fi + tar cf $OUTPUT_NAME.tar $OUTPUT_NAME + plzip -9 $OUTPUT_NAME.tar + touch -d "$OUTPUT_TIMESTAMP" $OUTPUT_NAME.tar.lz +) + +# Move the repacked archive here: +mv $EXTRACT_DIR/*.tar.lz . + +# Remove the temporary directory: +rm -rf $EXTRACT_DIR + +# Remove the repo tarball: +rm -f $GITHUB_ARCHIVE diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt index b2c4c6fc6..b3341d421 100644 --- a/source/installer/ChangeLog.txt +++ b/source/installer/ChangeLog.txt @@ -1,3 +1,6 @@ +Thu May 25 00:15:21 UTC 2023 + Mount efivarfs. ++--------------------------+ Wed Apr 5 19:09:55 UTC 2023 build_installer.sh: Switch /sbin/depmod from BusyBox's implementation to kmod's, as the busybox implementation doesn't work. diff --git a/source/installer/sources/initrd/etc/rc.d/rc.S b/source/installer/sources/initrd/etc/rc.d/rc.S index a5c52f548..42a00ba74 100755 --- a/source/installer/sources/initrd/etc/rc.d/rc.S +++ b/source/installer/sources/initrd/etc/rc.d/rc.S @@ -13,6 +13,13 @@ # Mount sysfs next: /sbin/mount -v sysfs /sys -t sysfs 1> /dev/null +# The efivarfs filesystem is used for reading and writing EFI variables, such +# as the boot menu entries. By default efivarfs will be mounted read-write on +# the /sys/firmware/efi/efivars directory. +if [ -d /sys/firmware/efi/efivars ]; then + mount -o rw -t efivarfs none /sys/firmware/efi/efivars +fi + # Set a root password for the Slackware Installer if set as a Kernel cmdline: # This is intended for network installations where otherwise the root password # would be unset. diff --git a/source/k/kernel-configs/config-generic-6.1.29 b/source/k/kernel-configs/config-generic-6.1.30 index 0d117fbbc..4b10944f0 100644 --- a/source/k/kernel-configs/config-generic-6.1.29 +++ b/source/k/kernel-configs/config-generic-6.1.30 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8535,10 +8535,11 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m CONFIG_TC1100_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/k/kernel-configs/config-generic-6.1.29.x64 b/source/k/kernel-configs/config-generic-6.1.30.x64 index 036e119e8..44bab14f8 100644 --- a/source/k/kernel-configs/config-generic-6.1.29.x64 +++ b/source/k/kernel-configs/config-generic-6.1.30.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8535,9 +8535,10 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/k/kernel-configs/config-generic-smp-6.1.29-smp b/source/k/kernel-configs/config-generic-smp-6.1.30-smp index 6b574596b..b29351303 100644 --- a/source/k/kernel-configs/config-generic-smp-6.1.29-smp +++ b/source/k/kernel-configs/config-generic-smp-6.1.30-smp @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8581,10 +8581,11 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m CONFIG_TC1100_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/k/kernel-configs/config-huge-6.1.29 b/source/k/kernel-configs/config-huge-6.1.30 index ba42fa52d..76480043b 100644 --- a/source/k/kernel-configs/config-huge-6.1.29 +++ b/source/k/kernel-configs/config-huge-6.1.30 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8535,10 +8535,11 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m CONFIG_TC1100_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/k/kernel-configs/config-huge-6.1.29.x64 b/source/k/kernel-configs/config-huge-6.1.30.x64 index 8cdfbe625..6f8a62e77 100644 --- a/source/k/kernel-configs/config-huge-6.1.29.x64 +++ b/source/k/kernel-configs/config-huge-6.1.30.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8535,9 +8535,10 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/k/kernel-configs/config-huge-smp-6.1.29-smp b/source/k/kernel-configs/config-huge-smp-6.1.30-smp index 4ea45fc8d..7ac341a52 100644 --- a/source/k/kernel-configs/config-huge-smp-6.1.29-smp +++ b/source/k/kernel-configs/config-huge-smp-6.1.30-smp @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.1.29 Kernel Configuration +# Linux/x86 6.1.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -8581,10 +8581,11 @@ CONFIG_AMILO_RFKILL=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m CONFIG_TC1100_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m diff --git a/source/l/qt5/qt5.SlackBuild b/source/l/qt5/qt5.SlackBuild index 635083bfc..b8ed27ffb 100755 --- a/source/l/qt5/qt5.SlackBuild +++ b/source/l/qt5/qt5.SlackBuild @@ -146,7 +146,9 @@ cd qtwebengine/src/3rdparty cd - 1>/dev/null # Fix build with gcc13: -zcat $CWD/0001-Fixes-for-building-with-GCC-13.patch.gz | patch -p1 --verbose || exit 1 +cd qtwebengine + zcat $CWD/patches/0001-Fixes-for-building-with-GCC-13.patch.gz | patch -p1 --verbose || exit 1 +cd - 1>/dev/null # CMake generates wrong -isystem /usr/include compilations flags with Qt5::Gui # and for it breaks KWin compilation with: diff --git a/source/t/texlive/texlive-20230313-source-security_fix-1.patch b/source/t/texlive/texlive-20230313-source-security_fix-1.patch new file mode 100644 index 000000000..cdce6e558 --- /dev/null +++ b/source/t/texlive/texlive-20230313-source-security_fix-1.patch @@ -0,0 +1,2034 @@ +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2023-05-04 +Initial Package Version: 20230313 +Upstream Status: Applied +Origin: Upstream +Description: LuaTeX fixes for obscure ways to work around some security features. + +On this occasion I've taken the three commits in the mirror which were +relevant to this, and omitted the many other fixes, some of which are +only parts of an svn commit with other changes for texmf-dist (not in the +git mirror) and other fixes for minor issues in japanese variants, some +of which are very large commits. I have therefore also ignored the +change to fix the uuptex test. + +From ad8702a45e317fa9d396ef4d50467c37964a9543 Mon Sep 17 00:00:00 2001 +From: Luigi Scarso <luigi.scarso@gmail.com> +Date: Fri, 31 Mar 2023 20:15:48 +0000 +Subject: [PATCH 15/39] Bump to version 1.16.1; bugfix for setpdforigin() (A. + Matthias) + +git-svn-id: svn://tug.org/texlive/trunk/Build/source@66717 c570f23f-e606-0410-a88d-b1316a301751 +--- + texk/web2c/luatexdir/ChangeLog | 5 ++++- + texk/web2c/luatexdir/lua/lpdflib.c | 2 +- + texk/web2c/luatexdir/luatex.c | 4 ++-- + texk/web2c/luatexdir/luatex_svnversion.h | 2 +- + 4 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/texk/web2c/luatexdir/ChangeLog b/texk/web2c/luatexdir/ChangeLog +index 868f64cc3..27fbebcbb 100644 +--- a/texk/web2c/luatexdir/ChangeLog ++++ b/texk/web2c/luatexdir/ChangeLog +@@ -1,5 +1,8 @@ ++2023-03-30 Luigi Scarso <luigi.scarso@gmail.com> ++ * bugfix for setpdforigin() (A. Matthias) ++ + 2023-02-22 Luigi Scarso <luigi.scarso@gmail.com> +- * fix latelua data reference (side effect of deferred late additions) (H.Hagen) ++ * fix latelua data reference (side effect of deferred late additions) (H.Hagen) + + 2023-02-18 Luigi Scarso <luigi.scarso@gmail.com> + * Fixed the "Invalid unicode ranges in CMap beginbfrange operator bug" as in pdfTeX (Hà n Thế Thà nh) +diff --git a/texk/web2c/luatexdir/lua/lpdflib.c b/texk/web2c/luatexdir/lua/lpdflib.c +index 70fbde76b..263fd5644 100644 +--- a/texk/web2c/luatexdir/lua/lpdflib.c ++++ b/texk/web2c/luatexdir/lua/lpdflib.c +@@ -1048,7 +1048,7 @@ static int setpdforigin(lua_State * L) + if (lua_type(L, 1) == LUA_TNUMBER) { + h = (int) lua_roundnumber(L, 1); + if (lua_type(L, 2) == LUA_TNUMBER) { +- v = (int) lua_roundnumber(L, 1); ++ v = (int) lua_roundnumber(L, 2); + } else { + v = h; + } +diff --git a/texk/web2c/luatexdir/luatex.c b/texk/web2c/luatexdir/luatex.c +index c11b0ca62..40eaa2a11 100644 +--- a/texk/web2c/luatexdir/luatex.c ++++ b/texk/web2c/luatexdir/luatex.c +@@ -33,8 +33,8 @@ + */ + + int luatex_version = 116; +-int luatex_revision = '0'; +-const char *luatex_version_string = "1.16.0"; ++int luatex_revision = '1'; ++const char *luatex_version_string = "1.16.1"; + const char *engine_name = my_name; + + #include <kpathsea/c-ctype.h> +diff --git a/texk/web2c/luatexdir/luatex_svnversion.h b/texk/web2c/luatexdir/luatex_svnversion.h +index 257aec718..76d929807 100644 +--- a/texk/web2c/luatexdir/luatex_svnversion.h ++++ b/texk/web2c/luatexdir/luatex_svnversion.h +@@ -1,4 +1,4 @@ + #ifndef luatex_svn_revision_h + #define luatex_svn_revision_h +-#define luatex_svn_revision 7567 ++#define luatex_svn_revision 7569 + #endif +-- +2.39.2 + +From 6ace460233115bd42b36e63c7ddce11cc92a1ebd Mon Sep 17 00:00:00 2001 +From: Luigi Scarso <luigi.scarso@gmail.com> +Date: Sat, 29 Apr 2023 14:41:51 +0000 +Subject: [PATCH 36/39] LuaTeX 1.17.0 . + +git-svn-id: svn://tug.org/texlive/trunk/Build/source@66967 c570f23f-e606-0410-a88d-b1316a301751 +--- + texk/web2c/luatexdir/ChangeLog | 31 + + texk/web2c/luatexdir/NEWS | 24 + + texk/web2c/luatexdir/font/writettf.c | 3 +- + texk/web2c/luatexdir/lua/llualib.c | 10 +- + texk/web2c/luatexdir/lua/loslibext.c | 171 +++ + texk/web2c/luatexdir/lua/luainit.c | 39 +- + texk/web2c/luatexdir/lua/luastuff.c | 20 +- + texk/web2c/luatexdir/lua/luatex-api.h | 1 + + texk/web2c/luatexdir/lua/luatex-core.c | 1225 +++++++++-------- + texk/web2c/luatexdir/lua/luatex-core.lua | 24 +- + .../luatexdir/luafontloader/src/luafflib.c | 1 - + .../luatexdir/luasocket/src/lua_preload.c | 9 + + texk/web2c/luatexdir/luatex.c | 6 +- + texk/web2c/luatexdir/luatex_svnversion.h | 2 +- + texk/web2c/luatexdir/tex/texnodes.c | 2 +- + 15 files changed, 932 insertions(+), 636 deletions(-) + +diff --git a/texk/web2c/luatexdir/ChangeLog b/texk/web2c/luatexdir/ChangeLog +index 27fbebcbb..f182f16e4 100644 +--- a/texk/web2c/luatexdir/ChangeLog ++++ b/texk/web2c/luatexdir/ChangeLog +@@ -1,3 +1,34 @@ ++2023-04-29 Luigi Scarso <luigi.scarso@gmail.com> ++ * LuaTeX 1.17.0 ++ ++2023-04-28 Luigi Scarso <luigi.scarso@gmail.com> ++ * new option --no-socket, same as --nosocket ++ ++2023-04-27 Luigi Scarso <luigi.scarso@gmail.com> ++ * new option --socket to split socket and shell escape; ++ * the mime library is always available (Max Chernoff); ++ * Fixed ChangeLog ++ ++2023-04-25 Luigi Scarso <luigi.scarso@gmail.com> ++ * socket library by default not enabled; ++ it is enabled with --shell-escape but not with --shell-restricted. ++ The option ---nosocket remains unchanged. ++ The two new functions os.socketgettime and os.socketsleep are ++ like socket.gettime and socket.sleep, but they are always available. ++ * Luatex 1.17.0 ++ ++2023-04-24 Luigi Scarso <luigi.scarso@gmail.com> ++ * static kpse.check_permissions in os.kpsepopen ++ * Fixed date in ChangeLog ++ ++2023-04-23 Luigi Scarso <luigi.scarso@gmail.com> ++ * new os.kpsepopen -- replace io.popen if kpse is active. ++ * Luatex 1.16.2 ++ ++2023-04-18 Luigi Scarso <luigi.scarso@gmail.com> ++ * lua.setluaname(n, s) and lua.getluaname(n): ++ fixed mismatch between documentation and implementation (J. Friedrich). ++ + 2023-03-30 Luigi Scarso <luigi.scarso@gmail.com> + * bugfix for setpdforigin() (A. Matthias) + +diff --git a/texk/web2c/luatexdir/NEWS b/texk/web2c/luatexdir/NEWS +index 8557c139d..41d6d4d14 100644 +--- a/texk/web2c/luatexdir/NEWS ++++ b/texk/web2c/luatexdir/NEWS +@@ -1,3 +1,27 @@ ++============================================================== ++LuaTeX 1.17.0 2023-04-29 ++============================================================== ++ ++- A breaking backward compatibility change: by default the socket ++ library is not enabled . ++ The new option --socket enable the socket library as ++ before, as also --shell-escape (without --shell-restricted); ++ --nosocket, --no-socket , --safer disabled the library, and ++ they have the priority in case of conflicting options. ++ The mime library is always available; socket.sleep ++ and socket.gettime are duplicated as os.socketsleep ++ and os.socketgettime, both always available. ++ The new os.kpsepopen replace io.popopen in kpse mode ++ (i.e. when kpse_init is not zero) as it was before ++ but the permission now cannot be changed anymore with ++ kpse.check_permission . ++ The function os.kpsepopen follows the same restrictions ++ as io.popen . ++ Thanks to Max Chernoff for debugging. ++ ++ ++ ++ + ============================================================== + LuaTeX 1.16.0 2023-02-19 + ============================================================== +diff --git a/texk/web2c/luatexdir/font/writettf.c b/texk/web2c/luatexdir/font/writettf.c +index cf034e98d..6270cbf04 100644 +--- a/texk/web2c/luatexdir/font/writettf.c ++++ b/texk/web2c/luatexdir/font/writettf.c +@@ -1518,7 +1518,7 @@ static void do_writeotf(PDF pdf, fd_entry * fd) + if (tracefilenames) + tex_printf("<<%s", cur_file_name); + ttf_read_tabdir(); +- /*tex Read teh font parameters. */ ++ /*tex Read the font parameters. */ + if (ttf_name_lookup("head", false) != NULL) + ttf_read_head(); + if (ttf_name_lookup("hhea", false) != NULL) +@@ -1570,4 +1570,3 @@ void writeotf(PDF pdf, fd_entry * fd) + xfree(ttf_buffer); + cur_file_name = NULL; + } +- +diff --git a/texk/web2c/luatexdir/lua/llualib.c b/texk/web2c/luatexdir/lua/llualib.c +index 0586aba02..d91a9a729 100644 +--- a/texk/web2c/luatexdir/lua/llualib.c ++++ b/texk/web2c/luatexdir/lua/llualib.c +@@ -319,8 +319,8 @@ static int set_luaname(lua_State * L) + { + int k; + const char *s; +- if (lua_gettop(L) == 3) { +- k = (int) luaL_checkinteger(L, 2); ++ if (lua_gettop(L) == 2) { ++ k = (int) luaL_checkinteger(L, 1); + if (k > 65535 || k < 0) { + /* error */ + } else { +@@ -328,8 +328,8 @@ static int set_luaname(lua_State * L) + free(luanames[k]); + luanames[k] = NULL; + } +- if (lua_type(L,3) == LUA_TSTRING) { +- s = lua_tostring(L, 3); ++ if (lua_type(L, 2) == LUA_TSTRING) { ++ s = lua_tostring(L, 2); + if (s != NULL) + luanames[k] = xstrdup(s); + } +@@ -340,7 +340,7 @@ static int set_luaname(lua_State * L) + + static int get_luaname(lua_State * L) + { +- int k = (int) luaL_checkinteger(L, 2); ++ int k = (int) luaL_checkinteger(L, 1); + if (k > 65535 || k < 0) { + /* error */ + lua_pushnil(L); +diff --git a/texk/web2c/luatexdir/lua/loslibext.c b/texk/web2c/luatexdir/lua/loslibext.c +index 2e6befc2d..79368ef92 100644 +--- a/texk/web2c/luatexdir/lua/loslibext.c ++++ b/texk/web2c/luatexdir/lua/loslibext.c +@@ -1047,6 +1047,167 @@ static int os_execute(lua_State * L) + } + + ++/* ++** ====================================================== ++** l_kpse_popen spawns a new process connected to the current ++** one through the file streams with some checks by kpse. ++** Almost verbatim from Lua liolib.c . ++** ======================================================= ++*/ ++#if !defined(l_kpse_popen) /* { */ ++ ++#if defined(LUA_USE_POSIX) /* { */ ++ ++#define l_kpse_popen(L,c,m) (fflush(NULL), popen(c,m)) ++#define l_kpse_pclose(L,file) (pclose(file)) ++ ++#elif defined(LUA_USE_WINDOWS) /* }{ */ ++ ++#define l_kpse_popen(L,c,m) (_popen(c,m)) ++#define l_kpse_pclose(L,file) (_pclose(file)) ++ ++#else /* }{ */ ++ ++/* ISO C definitions */ ++#define l_kpse_popen(L,c,m) \ ++ ((void)((void)c, m), \ ++ luaL_error(L, "'popen' not supported"), \ ++ (FILE*)0) ++#define l_kpse_pclose(L,file) ((void)L, (void)file, -1) ++ ++#endif /* } */ ++ ++#endif /* } */ ++typedef luaL_Stream LStream; ++#define tolstream(L) ((LStream *)luaL_checkudata(L, 1, LUA_FILEHANDLE)) ++static LStream *newprefile (lua_State *L) { ++ LStream *p = (LStream *)lua_newuserdata(L, sizeof(LStream)); ++ p->closef = NULL; /* mark file handle as 'closed' */ ++ luaL_setmetatable(L, LUA_FILEHANDLE); ++ return p; ++} ++static int io_kpse_pclose (lua_State *L) { ++ LStream *p = tolstream(L); ++ return luaL_execresult(L, l_kpse_pclose(L, p->f)); ++} ++static int io_kpse_check_permissions(lua_State *L) { ++ const char *filename = luaL_checkstring(L, 1); ++ if (filename == NULL) { ++ lua_pushboolean(L,0); ++ lua_pushliteral(L,"no command name given"); ++ } else if (shellenabledp <= 0) { ++ lua_pushboolean(L,0); ++ lua_pushliteral(L,"all command execution is disabled"); ++ } else if (restrictedshell == 0) { ++ lua_pushboolean(L,1); ++ lua_pushstring(L,filename); ++ } else { ++ char *safecmd = NULL; ++ char *cmdname = NULL; ++ switch (shell_cmd_is_allowed(filename, &safecmd, &cmdname)) { ++ case 0: ++ lua_pushboolean(L,0); ++ lua_pushliteral(L, "specific command execution disabled"); ++ break; ++ case 1: ++ /* doesn't happen */ ++ lua_pushboolean(L,1); ++ lua_pushstring(L,filename); ++ break; ++ case 2: ++ lua_pushboolean(L,1); ++ lua_pushstring(L,safecmd); ++ break; ++ default: ++ /* -1 */ ++ lua_pushboolean(L,0); ++ lua_pushliteral(L, "bad command line quoting"); ++ break; ++ } ++ } ++ return 2; ++} ++static int io_kpse_popen (lua_State *L) { ++ const char *filename = NULL; ++ const char *mode = NULL; ++ LStream *p = NULL; ++ int okay; ++ filename = luaL_checkstring(L, 1); ++ mode = luaL_optstring(L, 2, "r"); ++ lua_pushstring(L,filename); ++ io_kpse_check_permissions(L); ++ filename = luaL_checkstring(L, -1); ++ okay = lua_toboolean(L,-2); ++ if (okay && filename) { ++ p = newprefile(L); ++ luaL_argcheck(L, ((mode[0] == 'r' || mode[0] == 'w') && mode[1] == '\0'), ++ 2, "invalid mode"); ++ p->f = l_kpse_popen(L, filename, mode); ++ p->closef = &io_kpse_pclose; ++ return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; ++ } else { ++ lua_pushnil(L); ++ lua_pushvalue(L,-2); ++ return 2; ++ } ++} ++ ++ ++ ++/* socket.sleep and socket.gettime */ ++/* are duplicated here, and they are */ ++/* always available (the socket library */ ++/* can be nil in some setups) */ ++#ifdef _WIN32 ++static int socket_timeout_lua_sleep(lua_State *L) ++{ ++ double n = luaL_checknumber(L, 1); ++ if (n < 0.0) n = 0.0; ++ if (n < DBL_MAX/1000.0) n *= 1000.0; ++ if (n > INT_MAX) n = INT_MAX; ++ Sleep((int)n); ++ return 0; ++} ++static double socket_timeout_gettime(void) { ++ FILETIME ft; ++ double t; ++ GetSystemTimeAsFileTime(&ft); ++ /* Windows file time (time since January 1, 1601 (UTC)) */ ++ t = ft.dwLowDateTime/1.0e7 + ft.dwHighDateTime*(4294967296.0/1.0e7); ++ /* convert to Unix Epoch time (time since January 1, 1970 (UTC)) */ ++ return (t - 11644473600.0); ++} ++#else ++static int socket_timeout_lua_sleep(lua_State *L) ++{ ++ double n = luaL_checknumber(L, 1); ++ struct timespec t, r; ++ if (n < 0.0) n = 0.0; ++ if (n > INT_MAX) n = INT_MAX; ++ t.tv_sec = (int) n; ++ n -= t.tv_sec; ++ t.tv_nsec = (int) (n * 1000000000); ++ if (t.tv_nsec >= 1000000000) t.tv_nsec = 999999999; ++ while (nanosleep(&t, &r) != 0) { ++ t.tv_sec = r.tv_sec; ++ t.tv_nsec = r.tv_nsec; ++ } ++ return 0; ++} ++static double socket_timeout_gettime(void) { ++ struct timeval v; ++ gettimeofday(&v, (struct timezone *) NULL); ++ /* Unix Epoch time (time since January 1, 1970 (UTC)) */ ++ return v.tv_sec + v.tv_usec/1.0e6; ++} ++#endif ++static int socket_timeout_lua_gettime(lua_State *L) ++{ ++ lua_pushnumber(L, socket_timeout_gettime()); ++ return 1; ++} ++ ++ + void open_oslibext(lua_State * L) + { + +@@ -1081,5 +1242,15 @@ void open_oslibext(lua_State * L) + lua_pushcfunction(L, os_tmpdir); + lua_setfield(L, -2, "tmpdir"); + ++ lua_pushcfunction(L, io_kpse_popen); ++ lua_setfield(L, -2, "kpsepopen"); ++ ++ lua_pushcfunction(L, socket_timeout_lua_sleep); ++ lua_setfield(L, -2, "socketsleep"); ++ ++ lua_pushcfunction(L, socket_timeout_lua_gettime); ++ lua_setfield(L, -2, "socketgettime"); ++ ++ + lua_pop(L, 1); /* pop the table */ + } +diff --git a/texk/web2c/luatexdir/lua/luainit.c b/texk/web2c/luatexdir/lua/luainit.c +index 9eecb714c..bac5444c2 100644 +--- a/texk/web2c/luatexdir/lua/luainit.c ++++ b/texk/web2c/luatexdir/lua/luainit.c +@@ -85,6 +85,8 @@ const_string LUATEX_IHELP[] = { + " --lua=FILE load and execute a lua initialization script", + " --[no-]mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", + " --nosocket disable the lua socket library", ++ " --no-socket disable the lua socket library", ++ " --socket enable the lua socket library", + " --output-comment=STRING use STRING for DVI file comment instead of date (no effect for PDF)", + " --output-directory=DIR use existing DIR as the directory to write files in", + " --output-format=FORMAT use FORMAT for job output; FORMAT is 'dvi' or 'pdf'", +@@ -108,6 +110,7 @@ const_string LUATEX_IHELP[] = { + #endif + "", + "See the reference manual for more information about the startup process.", ++ "LuaTeX package page: https://ctan.org/pkg/luatex", + NULL + }; + +@@ -212,9 +215,30 @@ char *jithash_hashname = NULL; + #endif + + int safer_option = 0; +-int nosocket_option = 0; ++int nosocket_option = 1; ++int nosocket_cli_option = 0; ++int yessocket_cli_option = 0; ++int socket_bitmask = 0; + int utc_option = 0; + ++/*tex We use a bitmask for the socket library: |0000| and |1xxx| implies |--nosocket|, ++ otherwise the socket library is enabled. Default value is |0000|, i.e. |--nosocket|. ++*/ ++#define UPDATE_SOCKET_STATUS() do { \ ++ socket_bitmask = 0; \ ++ socket_bitmask = safer_option==1? (8+socket_bitmask):socket_bitmask;\ ++ socket_bitmask = nosocket_cli_option==1? (4+socket_bitmask):socket_bitmask;\ ++ socket_bitmask = (shellenabledp == 1 && restrictedshell == 0)?(2+socket_bitmask):socket_bitmask;\ ++ socket_bitmask = yessocket_cli_option==1? (1+socket_bitmask):socket_bitmask;\ ++ if( socket_bitmask==0) { \ ++ nosocket_option = 1; \ ++ } else if ( socket_bitmask<4) { \ ++ nosocket_option = 0; \ ++ } else { \ ++ nosocket_option = 1; \ ++ } \ ++} while (0) ++ + /*tex + + Test whether getopt found an option ``A''. Assumes the option index is in the +@@ -242,7 +266,9 @@ static struct option long_options[] = { + #endif + {"safer", 0, &safer_option, 1}, + {"utc", 0, &utc_option, 1}, +- {"nosocket", 0, &nosocket_option, 1}, ++ {"nosocket", 0, &nosocket_cli_option, 1}, ++ {"no-socket", 0, &nosocket_cli_option, 1}, ++ {"socket", 0, &yessocket_cli_option, 1}, + {"help", 0, 0, 0}, + {"ini", 0, &ini_version, 1}, + {"interaction", 1, 0, 0}, +@@ -524,14 +550,11 @@ static void parse_options(int ac, char **av) + input_name = xstrdup(sargv[sargc-1]); + sargv[sargc-1] = normalize_quotes(input_name, "argument"); + } +- if (safer_option) /* --safer implies --nosocket */ +- nosocket_option = 1; ++ UPDATE_SOCKET_STATUS(); + return; + #endif + } +- /*tex |--safer| implies |--nosocket| */ +- if (safer_option) +- nosocket_option = 1; ++ UPDATE_SOCKET_STATUS(); + /*tex Finalize the input filename. */ + if (input_name != NULL) { + argv[optind] = normalize_quotes(input_name, "argument"); +@@ -981,6 +1004,7 @@ void lua_initialize(int ac, char **av) + shellenabledp = true; + restrictedshell = false; + safer_option = 0; ++ nosocket_option = 0; + } + /*tex + Get the current locale (it should be |C|) and save |LC_CTYPE|, |LC_COLLATE| +@@ -1149,6 +1173,7 @@ void lua_initialize(int ac, char **av) + } + free(v1); + } ++ UPDATE_SOCKET_STATUS(); + /*tex If shell escapes are restricted, get allowed cmds from cnf. */ + if (shellenabledp && restrictedshell == 1) { + v1 = NULL; +diff --git a/texk/web2c/luatexdir/lua/luastuff.c b/texk/web2c/luatexdir/lua/luastuff.c +index 4176431ed..62d21c321 100644 +--- a/texk/web2c/luatexdir/lua/luastuff.c ++++ b/texk/web2c/luatexdir/lua/luastuff.c +@@ -323,7 +323,8 @@ void luainterpreter(void) + /*tex + The socket and mime libraries are a bit tricky to open because they use a + load-time dependency that has to be worked around for luatex, where the C +- module is loaded way before the lua module. ++ module is loaded way before the lua module. ++ The mime library is always available, even if the socket library is not enabled. + */ + if (!nosocket_option) { + /* todo: move this to common */ +@@ -348,6 +349,23 @@ void luainterpreter(void) + lua_pop(L, 2); + /*tex preload the pure \LUA\ modules */ + luatex_socketlua_open(L); ++ } else { ++ lua_getglobal(L, "package"); ++ lua_getfield(L, -1, "loaded"); ++ if (!lua_istable(L, -1)) { ++ lua_newtable(L); ++ lua_setfield(L, -2, "loaded"); ++ lua_getfield(L, -1, "loaded"); ++ } ++ /*tex |package.loaded.mime = nil| */ ++ luaopen_mime_core(L); ++ lua_setfield(L, -2, "mime.core"); ++ lua_pushnil(L); ++ lua_setfield(L, -2, "mime"); ++ /*tex pop the table */ ++ lua_pop(L, 1); ++ /*tex preload the pure \LUA\ mime module */ ++ luatex_socketlua_safe_open(L); + } + luaopen_zlib(L); + luaopen_gzip(L); +diff --git a/texk/web2c/luatexdir/lua/luatex-api.h b/texk/web2c/luatexdir/lua/luatex-api.h +index 553be2c18..3ade2bc4d 100644 +--- a/texk/web2c/luatexdir/lua/luatex-api.h ++++ b/texk/web2c/luatexdir/lua/luatex-api.h +@@ -123,6 +123,7 @@ extern int luaopen_profiler(lua_State * L); + extern int luaopen_socket_core(lua_State * L); + extern int luaopen_mime_core(lua_State * L); + extern void luatex_socketlua_open(lua_State * L); ++extern void luatex_socketlua_safe_open(lua_State * L); + + extern int luaopen_img(lua_State * L); + extern int l_new_image(lua_State * L); +diff --git a/texk/web2c/luatexdir/lua/luatex-core.c b/texk/web2c/luatexdir/lua/luatex-core.c +index c9c4d941b..d912bf4a5 100644 +--- a/texk/web2c/luatexdir/lua/luatex-core.c ++++ b/texk/web2c/luatexdir/lua/luatex-core.c +@@ -27,7 +27,7 @@ int load_luatex_core_lua (lua_State * L) + 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x54, 0x65, 0x61, + 0x6d, 0x27, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x7d, 0x0a, 0x0a, 0x4c, 0x55, 0x41, 0x54, 0x45, 0x58, + 0x43, 0x4f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x20, 0x3d, 0x20, 0x31, 0x2e, +- 0x31, 0x35, 0x31, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, ++ 0x31, 0x36, 0x31, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, +@@ -53,632 +53,645 @@ int load_luatex_core_lua (lua_State * L) + 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, +- 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, +- 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x73, 0x74, +- 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x61, 0x66, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, +- 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, +- 0x61, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x68, 0x65, +- 0x6c, 0x6c, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x30, 0x20, 0x28, +- 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x20, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x79, +- 0x74, 0x68, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x32, 0x20, 0x28, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, +- 0x63, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, +- 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, +- 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, +- 0x20, 0x30, 0x20, 0x31, 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, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x79, +- 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, +- 0x62, 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, 0x69, 0x6e, 0x64, 0x20, 0x3d, +- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, +- 0x67, 0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x69, 0x6f, 0x2e, +- 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, +- 0x6c, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x2e, 0x6c, 0x69, 0x6e, +- 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, +- 0x73, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, +- 0x6f, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, +- 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, +- 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, +- 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, +- 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, +- 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, +- 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, +- 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, +- 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x70, +- 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, +- 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, +- 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, +- 0x5f, 0x6e, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, +- 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x20, 0x20, 0x20, 0x20, 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, 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, +- 0x20, 0x20, 0x20, 0x20, 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, +- 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, 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, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, +- 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, +- 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, +- 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, +- 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 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, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, +- 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 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, ++ 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, ++ 0x6c, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, ++ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x61, 0x66, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, ++ 0x69, 0x6f, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, ++ 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, ++ 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x30, ++ 0x20, 0x28, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x20, 0x31, 0x20, 0x28, 0x61, ++ 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x32, 0x20, 0x28, 0x72, 0x65, 0x73, 0x74, ++ 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, ++ 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, ++ 0x75, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, ++ 0x2d, 0x2d, 0x20, 0x30, 0x20, 0x31, 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, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, ++ 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, ++ 0x73, 0x75, 0x62, 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, 0x69, 0x6e, 0x64, ++ 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x0a, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x3d, 0x20, 0x67, 0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x69, ++ 0x6f, 0x2e, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, ++ 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x2e, 0x6c, ++ 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, ++ 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, ++ 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x63, 0x68, 0x65, ++ 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, ++ 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x3d, 0x20, ++ 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, ++ 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, ++ 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, ++ 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, ++ 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, ++ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6f, ++ 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x2d, 0x2d, 0x20, 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, 0x20, 0x20, 0x3d, ++ 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, 0x74, ++ 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, ++ 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, ++ 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x2e, 0x72, 0x65, ++ 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, ++ 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, ++ 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x6b, ++ 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, ++ 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, ++ 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, ++ 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 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, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, ++ 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 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, 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, 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, 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, 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, 0x20, +- 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 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, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, +- 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 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, 0x20, +- 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x2c, 0x20, 0x66, +- 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, +- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, +- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, ++ 0x27, 0x72, 0x27, 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, 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, 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, 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, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x6e, 0x6f, 0x74, ++ 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, ++ 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x2d, 0x2d, 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, ++ 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, 0x79, ++ 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 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, 0x2d, 0x2d, 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, 0x2d, 0x2d, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x2d, 0x2d, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, ++ 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, +- 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, +- 0x74, 0x68, 0x65, 0x20, 0x67, 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, +- 0x69, 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, +- 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, +- 0x63, 0x69, 0x74, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, +- 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, +- 0x69, 0x73, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, +- 0x70, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, +- 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, +- 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, ++ 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, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 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, 0x2d, 0x2d, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x65, ++ 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, ++ 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, ++ 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, 0x69, 0x63, 0x6b, 0x20, 0x69, ++ 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, ++ 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, ++ 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6c, ++ 0x75, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, ++ 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, ++ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 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, 0x20, 0x20, ++ 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, ++ 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 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, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, ++ 0x6c, 0x20, 0x6c, 0x20, 0x3d, 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, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, ++ 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x20, 0x3d, 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, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, +- 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x0a, 0x20, ++ 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, ++ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, ++ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, ++ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, ++ 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x68, 0x69, ++ 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x70, 0x61, ++ 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x27, ++ 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x27, 0x22, 0x20, 0x2e, ++ 0x2e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, 0x27, 0x22, 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, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 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, 0x20, 0x20, ++ 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 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, 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, 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, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, 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, 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, 0x2d, 0x2d, ++ 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, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, ++ 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, ++ 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x73, 0x2e, 0x6b, ++ 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, ++ 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6c, 0x73, 0x65, ++ 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, ++ 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, ++ 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, ++ 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, ++ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x20, 0x3d, ++ 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, ++ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, ++ 0x61, 0x74, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, ++ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, ++ 0x6d, 0x6d, 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, ++ 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 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, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, ++ 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, ++ 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, 0x66, 0x65, 0x72, 0x20, 0x6f, ++ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, ++ 0x69, 0x6f, 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, 0x73, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x22, 0x6c, 0x69, ++ 0x6d, 0x69, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x64, 0x69, 0x73, 0x61, 0x62, ++ 0x6c, 0x65, 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, ++ 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 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, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, +- 0x6e, 0x20, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, +- 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x69, +- 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, +- 0x72, 0x28, 0x22, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, +- 0x69, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, +- 0x20, 0x27, 0x22, 0x20, 0x2e, 0x2e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, +- 0x27, 0x22, 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, 0x6c, 0x73, 0x65, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, +- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 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, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 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, 0x20, 0x20, +- 0x20, 0x20, 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, 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, +- 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x61, +- 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, +- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, +- 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, +- 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, +- 0x20, 0x6d, 0x6f, 0x64, 0x65, 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, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, +- 0x5f, 0x6e, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, +- 0x65, 0x5f, 0x6e, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, +- 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, +- 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, +- 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, +- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, +- 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 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, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, +- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, +- 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, +- 0x66, 0x65, 0x72, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, +- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, +- 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, +- 0x64, 0x20, 0x22, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, +- 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, +- 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 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, 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, 0x20, 0x20, +- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 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, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, +- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, +- 0x69, 0x6d, 0x69, 0x74, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, +- 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, +- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, +- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, +- 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x29, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, +- 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, +- 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, +- 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, +- 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, +- 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, ++ 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, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, ++ 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 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, 0x6e, 0x64, 0x0a, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, ++ 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x28, ++ 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, ++ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, ++ 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x3d, 0x20, ++ 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, ++ 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, ++ 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, ++ 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, ++ 0x77, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, ++ 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, ++ 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x22, 0x29, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d, 0x20, 0x69, ++ 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, ++ 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, ++ 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, ++ 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, ++ 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, ++ 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, ++ 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, ++ 0x70, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, ++ 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, ++ 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x29, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, ++ 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, ++ 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, ++ 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, ++ 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, +- 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x69, ++ 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, +- 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, +- 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, +- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, +- 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, +- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, +- 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, 0x6c, 0x75, 0x61, +- 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, +- 0x6f, 0x6e, 0x6c, 0x79, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, +- 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, +- 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, +- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, ++ 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, ++ 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, ++ 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, ++ 0x69, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, ++ 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, ++ 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x29, ++ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, + 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, +- 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x69, +- 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, +- 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, +- 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, +- 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, +- 0x75, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, +- 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, +- 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x22, 0x29, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, +- 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, +- 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, +- 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, +- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, +- 0x75, 0x63, 0x68, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, +- 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, +- 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x22, 0x29, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, +- 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, +- 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 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, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, +- 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, +- 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 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, +- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x6c, 0x69, 0x62, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, +- 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, +- 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x34, 0x5d, 0x20, 0x3d, +- 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, +- 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, +- 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x73, 0x2e, 0x73, +- 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x3d, 0x20, 0x66, +- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x65, 0x6e, 0x64, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 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, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x66, 0x69, 0x20, 0x74, 0x68, +- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 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, 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, +- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, +- 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, +- 0x61, 0x64, 0x65, 0x64, 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x6c, 0x6f, +- 0x61, 0x64, 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x0a, +- 0x65, 0x6e, 0x64, 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, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, +- 0x65, 0x78, 0x61, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, ++ 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, ++ 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, ++ 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, ++ 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x22, ++ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, ++ 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, ++ 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, ++ 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, ++ 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x62, ++ 0x75, 0x67, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 0x65, ++ 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, ++ 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, ++ 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 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, 0x70, 0x61, 0x63, 0x6b, ++ 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x6c, 0x69, 0x62, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x65, 0x6e, ++ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, ++ 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, ++ 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, ++ 0x76, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, ++ 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, ++ 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x65, 0x6e, 0x64, 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, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x66, 0x69, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 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, 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, 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, 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, 0x6e, 0x64, 0x0a, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, +- 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 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, 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, 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, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, +- 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, +- 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, +- 0x69, 0x67, 0x68, 0x74, 0x20, 0x67, 0x6f, 0x20, 0x61, 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, +- 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, 0x61, +- 0x62, 0x6c, 0x65, 0x2e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, +- 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, +- 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, +- 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, +- 0x65, 0x72, 0x73, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, +- 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, +- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, +- 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, +- 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, +- 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, 0x27, +- 0x72, 0x65, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, +- 0x75, 0x74, 0x66, 0x38, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, +- 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x33, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, 0x77, +- 0x69, 0x73, 0x65, 0x2e, 0x6c, 0x75, 0x61, 0x2c, 0x20, 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, 0x20, +- 0x32, 0x30, 0x31, 0x34, 0x2f, 0x31, 0x32, 0x2f, 0x32, 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, 0x30, +- 0x3a, 0x35, 0x33, 0x20, 0x72, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, +- 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, +- 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, 0x74, +- 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x3a, 0x20, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x20, +- 0x2e, 0x2e, 0x2e, 0x20, 0x7d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, +- 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, +- 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, +- 0x6e, 0x20, 0x7e, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, +- 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, +- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, +- 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, +- 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, +- 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, +- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, +- 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, +- 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, +- 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, +- 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, +- 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, +- 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, ++ 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, ++ 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, ++ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x66, ++ 0x66, 0x69, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 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, 0x69, 0x66, 0x20, ++ 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x20, ++ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, 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, 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, 0x20, 0x20, 0x20, ++ 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, ++ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, ++ 0x58, 0x41, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 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, ++ 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, 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, ++ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, ++ 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, ++ 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, ++ 0x20, 0x67, 0x6f, 0x20, 0x61, 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, ++ 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, ++ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, ++ 0x6f, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, ++ 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, ++ 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x70, 0x61, ++ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x0a, ++ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, ++ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, ++ 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, ++ 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, ++ 0x67, 0x68, 0x74, 0x20, 0x73, 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, ++ 0x33, 0x32, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, ++ 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x6f, ++ 0x6b, 0x61, 0x79, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x75, 0x74, 0x66, 0x38, ++ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, ++ 0x61, 0x20, 0x35, 0x2e, 0x33, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x2e, ++ 0x6c, 0x75, 0x61, 0x2c, 0x20, 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, 0x20, 0x32, 0x30, 0x31, 0x34, ++ 0x2f, 0x31, 0x32, 0x2f, 0x32, 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, 0x30, 0x3a, 0x35, 0x33, 0x20, ++ 0x72, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, ++ 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, ++ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, ++ 0x6c, 0x65, 0x63, 0x74, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, ++ 0x6f, 0x66, 0x3a, 0x20, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x2e, 0x2e, 0x2e, 0x20, ++ 0x7d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, ++ 0x6e, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, ++ 0x61, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7e, 0x61, + 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, +- 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, +- 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, +- 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, +- 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, +- 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, 0x20, +- 0x7c, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, +- 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, +- 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, +- 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, +- 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, +- 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, +- 0x62, 0x78, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, +- 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, +- 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7e, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, +- 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, 0x20, +- 0x79, 0x20, 0x7e, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, +- 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, +- 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, +- 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, +- 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, +- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, +- 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, +- 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, +- 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, +- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, +- 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, +- 0x20, 0x28, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, +- 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, +- 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, ++ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x75, ++ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, ++ 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, ++ 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, ++ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, ++ 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, ++ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, ++ 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, ++ 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, ++ 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, ++ 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, ++ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, ++ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, ++ 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x3d, ++ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, ++ 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, ++ 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, ++ 0x29, 0x20, 0x7c, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, ++ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, ++ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, ++ 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, 0x20, 0x7c, 0x20, 0x7a, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, ++ 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, ++ 0x65, 0x73, 0x20, 0x7c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, ++ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, ++ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, ++ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, ++ 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, ++ 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, ++ 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, ++ 0x20, 0x30, 0x29, 0x20, 0x7e, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, ++ 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, +- 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, ++ 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, 0x20, 0x79, 0x20, 0x7e, 0x20, + 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, +- 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, +- 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, +- 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, +- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, +- 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, +- 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, +- 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, +- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, +- 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, 0x20, +- 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, +- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, +- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, +- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, +- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3e, +- 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, +- 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, +- 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, +- 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, +- 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x69, 0x66, 0x20, 0x62, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, 0x20, +- 0x26, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, 0x3d, +- 0x20, 0x30, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, +- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, +- 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, +- 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, +- 0x20, 0x28, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, 0x30, +- 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x29, +- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, +- 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, +- 0x6e, 0x20, 0x28, 0x61, 0x20, 0x2c, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, +- 0x20, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, +- 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, +- 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, +- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, ++ 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, ++ 0x20, 0x72, 0x65, 0x73, 0x20, 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, ++ 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, ++ 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, ++ 0x65, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, ++ 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x28, ++ 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, ++ 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, ++ 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, ++ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, ++ 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, ++ 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, ++ 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, ++ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x73, 0x20, 0x26, ++ 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, ++ 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, ++ 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, ++ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, ++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x26, + 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, +- 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, +- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x2d, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, +- 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, +- 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, +- 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, +- 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, +- 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, +- 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, +- 0x61, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, +- 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, 0x7e, +- 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, +- 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, +- 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, +- 0x20, 0x76, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, +- 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, +- 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, 0x28, +- 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, +- 0x76, 0x20, 0x26, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, ++ 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, ++ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, ++ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, + 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, +- 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, +- 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x20, +- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, +- 0x6a, 0x69, 0x74, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x20, +- 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, +- 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, +- 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x6c, +- 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, 0x64, +- 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, +- 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, 0x69, +- 0x66, 0x74, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, +- 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, 0x72, +- 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, +- 0x20, 0x3d, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, +- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, 0x0a, +- 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, +- 0x62, 0x78, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, 0x20, +- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, +- 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, +- 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, +- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, 0x68, +- 0x69, 0x66, 0x74, 0x28, 0x61, 0x2c, 0x66, 0x29, 0x2c, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, +- 0x20, 0x31, 0x29, 0x2d, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, +- 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, +- 0x6c, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6c, +- 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, +- 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, 0x2c, +- 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, +- 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, +- 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, +- 0x6e, 0x64, 0x28, 0x61, 0x2c, 0x62, 0x6e, 0x6f, 0x74, 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, +- 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x66, 0x29, 0x29, 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, 0x66, +- 0x74, 0x28, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x76, 0x2c, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, 0x66, +- 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, +- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, +- 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, +- 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, +- 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x68, +- 0x6f, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, +- 0x20, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, +- 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x62, +- 0x69, 0x74, 0x33, 0x32, 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, +- 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x66, +- 0x6f, 0x72, 0x20, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, +- 0x72, 0x65, 0x28, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, 0x67, +- 0x68, 0x74, 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, +- 0x6c, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, +- 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, +- 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, +- 0x6b, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, +- 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, +- 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x65, +- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, +- 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, +- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x3d, +- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, 0x6f, +- 0x72, 0x65, 0x22, 0x5d, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +- 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, +- 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, +- 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, +- 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, +- 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, +- 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, +- 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, +- 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, +- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, +- 0x68, 0x65, 0x73, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, +- 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, +- 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, +- 0x66, 0x6f, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, +- 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, +- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, +- 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, +- 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, +- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, +- 0x64, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, +- 0x6c, 0x65, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, +- 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, ++ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, ++ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, ++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x62, ++ 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, ++ 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x74, ++ 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, ++ 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, ++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, ++ 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, 0x30, 0x78, 0x46, 0x46, 0x46, ++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, ++ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, ++ 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, 0x61, ++ 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, ++ 0x20, 0x2c, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x62, 0x20, 0x26, ++ 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, ++ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, ++ 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, ++ 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, ++ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, ++ 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, ++ 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, ++ 0x20, 0x3d, 0x20, 0x2d, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, ++ 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, ++ 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, ++ 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, ++ 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, ++ 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, ++ 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, ++ 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x66, ++ 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, ++ 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, ++ 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x65, ++ 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, ++ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x76, 0x2c, 0x20, ++ 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, ++ 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, ++ 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, ++ 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x6d, 0x61, 0x73, 0x6b, ++ 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x76, 0x20, 0x26, 0x20, ++ 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, ++ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, ++ 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, ++ 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, ++ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x6a, 0x69, 0x74, 0x20, ++ 0x28, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, ++ 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, ++ 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x6e, 0x6f, ++ 0x74, 0x2c, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, ++ 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x69, ++ 0x74, 0x2e, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x73, 0x68, 0x69, ++ 0x66, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x0a, 0x0a, ++ 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, ++ 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, ++ 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, ++ 0x61, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x20, 0x20, 0x20, 0x3d, ++ 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, ++ 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x78, 0x6f, 0x72, ++ 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x75, ++ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x2e, 0x2e, 0x2e, 0x29, ++ 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, ++ 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, ++ 0x6e, 0x28, 0x61, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, ++ 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, ++ 0x61, 0x2c, 0x66, 0x29, 0x2c, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, ++ 0x31, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, ++ 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x2c, 0x0a, 0x20, ++ 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, ++ 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x66, ++ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, 0x2c, 0x66, 0x2c, 0x77, 0x29, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, ++ 0x3d, 0x20, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, 0x31, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x61, ++ 0x2c, 0x62, 0x6e, 0x6f, 0x74, 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x6d, 0x61, 0x73, ++ 0x6b, 0x2c, 0x66, 0x29, 0x29, 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x62, 0x61, ++ 0x6e, 0x64, 0x28, 0x76, 0x2c, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, ++ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, ++ 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, ++ 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x7d, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, ++ 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x68, 0x6f, 0x70, 0x65, 0x20, ++ 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x20, ++ 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, ++ 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x62, 0x69, 0x74, 0x33, 0x32, ++ 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, ++ 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, ++ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, ++ 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, ++ 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x6f, ++ 0x61, 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, ++ 0x6f, 0x61, 0x64, 0x65, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, ++ 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, ++ 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, ++ 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x73, 0x6f, 0x63, ++ 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, ++ 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, ++ 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, ++ 0x64, 0x65, 0x64, 0x5b, 0x22, 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, + 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, +- 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, +- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, +- 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, +- 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, +- 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, +- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, +- 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, +- 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, +- 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, +- 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, +- 0x20, 0x6f, 0x66, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, +- 0x20, 0x6b, 0x70, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, +- 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, +- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, +- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, +- 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, +- 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, +- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, +- 0x77, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, +- 0x67, 0x65, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, +- 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, +- 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, +- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, +- 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, +- 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, +- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, +- 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, ++ 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, 0x73, 0x20, 0x74, 0x68, ++ 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, 0x73, 0x20, 0x3d, 0x20, ++ 0x6c, 0x66, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x64, 0x6f, ++ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x66, 0x73, 0x61, ++ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, ++ 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, ++ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, ++ 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, ++ 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, ++ 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x65, ++ 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, 0x77, 0x61, 0x73, 0x20, ++ 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, ++ 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, ++ 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, ++ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, ++ 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, ++ 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, ++ 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x20, ++ 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, +- 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 ++ 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, ++ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, ++ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, ++ 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, ++ 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, ++ 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, ++ 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, ++ 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, ++ 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, ++ 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6b, 0x70, 0x73, ++ 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, ++ 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, ++ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, ++ 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, ++ 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, ++ 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x74, 0x68, ++ 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, ++ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, 0x20, ++ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, ++ 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, ++ 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, ++ 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, ++ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, ++ 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, ++ 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, ++ 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, 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, 0x0a, ++ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 + }; + return luaL_dostring(L, (const char*) luatex_core_lua); + } +\ No newline at end of file +diff --git a/texk/web2c/luatexdir/lua/luatex-core.lua b/texk/web2c/luatexdir/lua/luatex-core.lua +index 12941dbe7..d33c12179 100644 +--- a/texk/web2c/luatexdir/lua/luatex-core.lua ++++ b/texk/web2c/luatexdir/lua/luatex-core.lua +@@ -7,7 +7,7 @@ + -- copyright = 'LuaTeX Development Team', + -- } + +-LUATEXCOREVERSION = 1.151 -- we reflect the luatex version where changes happened ++LUATEXCOREVERSION = 1.161 -- we reflect the luatex version where changes happened + + -- This file overloads some Lua functions. The readline variants provide the same + -- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the +@@ -16,6 +16,8 @@ LUATEXCOREVERSION = 1.151 -- we reflect the luatex version where changes happene + -- We test for functions already being defined so that we don't overload ones that + -- are provided in the startup script. + ++ ++ + local saferoption = status.safer_option + local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) + local kpseused = status.kpse_used -- 0 1 +@@ -34,7 +36,7 @@ if kpseused == 1 then + local kpse_recordoutputfile = kpse.record_output_file + + local io_open = io.open +- local io_popen = io.popen ++ -- local io_popen = io.popen -- not need, we use os.kpsepopen + local io_lines = io.lines + + local fio_readline = fio.readline +@@ -75,12 +77,13 @@ if kpseused == 1 then + return f + end + +- local function luatex_io_popen(name,...) +- local okay, found = kpse_checkpermission(name) +- if okay and found then +- return io_popen(found,...) +- end +- end ++ -- not need, we use os.kpsepopen ++ --local function luatex_io_popen(name,...) ++ -- local okay, found = kpse_checkpermission(name) ++ -- if okay and found then ++ -- return io_popen(found,...) ++ -- end ++ --end + + -- local function luatex_io_lines(name,how) + -- if name then +@@ -130,7 +133,8 @@ if kpseused == 1 then + mt.lines = luatex_io_readline + + io.open = luatex_io_open +- io.popen = luatex_io_popen ++ --io.popen = luatex_io_popen -- not need, we use os.kpsepopen ++ io.popen = os.kpsepopen + + else + +@@ -169,6 +173,8 @@ if saferoption == 1 then + os.setenv = installdummy("os.setenv") + os.tempdir = installdummy("os.tempdir") + ++ os.kpsepopen = installdummy("os.kpsepopen") ++ + io.popen = installdummy("io.popen") + io.open = installdummy("io.open",luatex_io_open_readonly) + +diff --git a/texk/web2c/luatexdir/luafontloader/src/luafflib.c b/texk/web2c/luatexdir/luafontloader/src/luafflib.c +index 434413b00..41e5c3a32 100644 +--- a/texk/web2c/luatexdir/luafontloader/src/luafflib.c ++++ b/texk/web2c/luatexdir/luafontloader/src/luafflib.c +@@ -1236,7 +1236,6 @@ static void handle_pfminfo(lua_State * L, struct pfminfo pfm) + dump_intfield(L, "vlinegap", pfm.vlinegap); + dump_intfield(L, "hhead_ascent", pfm.hhead_ascent); + dump_intfield(L, "hhead_descent", pfm.hhead_descent); +- dump_intfield(L, "hhead_descent", pfm.hhead_descent); + dump_intfield(L, "os2_typoascent", pfm.os2_typoascent); + dump_intfield(L, "os2_typodescent", pfm.os2_typodescent); + dump_intfield(L, "os2_typolinegap", pfm.os2_typolinegap); +diff --git a/texk/web2c/luatexdir/luasocket/src/lua_preload.c b/texk/web2c/luatexdir/luasocket/src/lua_preload.c +index 838871c1d..b235f6a51 100644 +--- a/texk/web2c/luatexdir/luasocket/src/lua_preload.c ++++ b/texk/web2c/luatexdir/luasocket/src/lua_preload.c +@@ -16,6 +16,7 @@ int luatex_ftp_lua_open(lua_State*); + + + extern void luatex_socketlua_open (lua_State *) ; ++extern void luatex_socketlua_safe_open (lua_State *) ; + #include "ftp_lua.c" + #include "headers_lua.c" + #include "http_lua.c" +@@ -47,3 +48,11 @@ luatex_socketlua_open (lua_State *L) { + TEST(luatex_http_lua_open(L)); + TEST(luatex_ftp_lua_open(L)); + } ++ ++/* luatex_socketlua_safe_open: load safe modules */ ++/* of luasocket ( mime ). */ ++void ++luatex_socketlua_safe_open (lua_State *L) { ++ TEST(luatex_ltn12_lua_open(L)); ++ TEST(luatex_mime_lua_open(L)); ++} +diff --git a/texk/web2c/luatexdir/luatex.c b/texk/web2c/luatexdir/luatex.c +index 40eaa2a11..949389e62 100644 +--- a/texk/web2c/luatexdir/luatex.c ++++ b/texk/web2c/luatexdir/luatex.c +@@ -32,9 +32,9 @@ + stick to "0" upto "9" so users can expect a number represented as string. + */ + +-int luatex_version = 116; +-int luatex_revision = '1'; +-const char *luatex_version_string = "1.16.1"; ++int luatex_version = 117; ++int luatex_revision = '0'; ++const char *luatex_version_string = "1.17.0"; + const char *engine_name = my_name; + + #include <kpathsea/c-ctype.h> +diff --git a/texk/web2c/luatexdir/luatex_svnversion.h b/texk/web2c/luatexdir/luatex_svnversion.h +index 76d929807..6b6137b1b 100644 +--- a/texk/web2c/luatexdir/luatex_svnversion.h ++++ b/texk/web2c/luatexdir/luatex_svnversion.h +@@ -1,4 +1,4 @@ + #ifndef luatex_svn_revision_h + #define luatex_svn_revision_h +-#define luatex_svn_revision 7569 ++#define luatex_svn_revision 7581 + #endif +diff --git a/texk/web2c/luatexdir/tex/texnodes.c b/texk/web2c/luatexdir/tex/texnodes.c +index 6e0ae1ff8..72f6716dd 100644 +--- a/texk/web2c/luatexdir/tex/texnodes.c ++++ b/texk/web2c/luatexdir/tex/texnodes.c +@@ -1203,7 +1203,7 @@ void l_set_whatsit_data(void) { + the original one as a metatable. After some experiments (that also included + timing) with these scenarios I decided that a deep copy made no sense, nor + did nilling. In the end both the shallow copy and the metatable variant were +- both ok, although the second ons is slower. The most important aspect to keep ++ both ok, although the second one is slower. The most important aspect to keep + in mind is that references to other nodes in properties no longer can be + valid for that copy. We could use two tables (one unique and one shared) or + metatables but that only complicates matters. +-- +2.39.2 + +From aeeac98c8f462092f49d3d9f5f8c41737154f7e5 Mon Sep 17 00:00:00 2001 +From: Karl Berry <karl@freefriends.org> +Date: Tue, 2 May 2023 15:28:44 +0000 +Subject: [PATCH 39/39] reformat NEWS + +git-svn-id: svn://tug.org/texlive/trunk/Build/source@66985 c570f23f-e606-0410-a88d-b1316a301751 +--- + texk/web2c/luatexdir/NEWS | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) + +diff --git a/texk/web2c/luatexdir/NEWS b/texk/web2c/luatexdir/NEWS +index 41d6d4d14..3f15df0a7 100644 +--- a/texk/web2c/luatexdir/NEWS ++++ b/texk/web2c/luatexdir/NEWS +@@ -3,23 +3,26 @@ LuaTeX 1.17.0 2023-04-29 + ============================================================== + + - A breaking backward compatibility change: by default the socket +- library is not enabled . ++ library is not enabled. + The new option --socket enable the socket library as + before, as also --shell-escape (without --shell-restricted); + --nosocket, --no-socket , --safer disabled the library, and + they have the priority in case of conflicting options. +- The mime library is always available; socket.sleep +- and socket.gettime are duplicated as os.socketsleep +- and os.socketgettime, both always available. +- The new os.kpsepopen replace io.popopen in kpse mode +- (i.e. when kpse_init is not zero) as it was before +- but the permission now cannot be changed anymore with +- kpse.check_permission . ++ ++ socket.sleep and socket.gettime are duplicated as os.socketsleep and ++ os.socketgettime, both always available. ++ ++ The new function os.kpsepopen replaces io.popen in kpse mode ++ (i.e. when kpse_init is not zero) as it was before, ++ but the permission can no longer be changed with ++ kpse.check_permission. + The function os.kpsepopen follows the same restrictions +- as io.popen . ++ as io.popen. ++ ++ The mime library is always available. ++ + Thanks to Max Chernoff for debugging. + +- + + + ============================================================== +-- +2.39.2 + diff --git a/source/t/texlive/texlive.SlackBuild b/source/t/texlive/texlive.SlackBuild index 3617dd8d0..03534999c 100755 --- a/source/t/texlive/texlive.SlackBuild +++ b/source/t/texlive/texlive.SlackBuild @@ -34,7 +34,7 @@ PKGNAM=texlive SOURCEVERSION=${SOURCEVERSION:-20230311} TEXMFVERSION=${TEXMFVERSION:-230322} VERSION=${VERSION:-2023.$TEXMFVERSION} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TMP=${TMP:-/tmp} PKG=$TMP/package-texlive @@ -77,6 +77,9 @@ cd texlive-$SOURCEVERSION-source || exit 1 chown -R root:root . chmod -R u+w,go-w,a+rX-st . +# CVE-2023-32700: +zcat $CWD/texlive-20230313-source-security_fix-1.patch.gz | patch -p1 --verbose || exit 1 + mkdir build cd build CFLAGS="$SLKCFLAGS" \ |