--- libxpm-3.5.17.orig/.gitlab-ci.yml +++ libxpm-3.5.17/.gitlab-ci.yml @@ -0,0 +1,110 @@ +# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml: +# +# This CI uses the freedesktop.org ci-templates. +# Please see the ci-templates documentation for details: +# https://freedesktop.pages.freedesktop.org/ci-templates/ + +.templates_sha: &template_sha 34f4ade99434043f88e164933f570301fd18b125 # see https://docs.gitlab.com/ee/ci/yaml/#includefile + + +include: + # Arch container builder template + - project: 'freedesktop/ci-templates' + ref: *template_sha + file: '/templates/arch.yml' + - project: 'freedesktop/ci-templates' + ref: *template_sha + file: '/templates/ci-fairy.yml' + - template: Security/SAST.gitlab-ci.yml + + +stages: + - prep # prep work like rebuilding the container images if there is a change + - build # for actually building and testing things in a container + - test + - deploy + + +variables: + FDO_UPSTREAM_REPO: 'xorg/lib/libXpm' + # The tag should be updated each time the list of packages is updated. + # Changing a tag forces the associated image to be rebuilt. + # Note: the tag has no meaning, we use a date format purely for readability + FDO_DISTRIBUTION_TAG: '2023-01-06.0' + FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake libtool make xorg-util-macros xorgproto libx11 libxt libxext ncompress gzip glib2' + + +# +# Verify that commit messages are as expected +# +check-commits: + extends: + - .fdo.ci-fairy + stage: prep + script: + - ci-fairy check-commits --junit-xml=results.xml + except: + - master@xorg/lib/libXpm + variables: + GIT_DEPTH: 100 + artifacts: + reports: + junit: results.xml + +# +# Verify that the merge request has the allow-collaboration checkbox ticked +# +check-merge-request: + extends: + - .fdo.ci-fairy + stage: deploy + script: + - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml + artifacts: + when: on_failure + reports: + junit: results.xml + allow_failure: true + + +# +# Build a container with the given tag and the packages pre-installed. +# This only happens if/when the tag changes, otherwise the existing image is +# re-used. +# +container-prep: + extends: + - .fdo.container-build@arch + stage: prep + variables: + GIT_STRATEGY: none + + +# +# The default build, runs on the image built above. +# +.default_build: + stage: build + extends: + - .fdo.distribution-image@arch + script: + - autoreconf -ivf + - mkdir _builddir + - pushd _builddir > /dev/null + - ../configure --disable-silent-rules --enable-unit-tests ${ZOPEN_FLAG} + - make + - make check + - make distcheck DISTCHECK_CONFIGURE_FLAGS="${ZOPEN_FLAG}" + - popd > /dev/null + artifacts: + when: on_failure + paths: + - _builddir/test/*.log + +# Run default build with all different options +build: + extends: + - .default_build + parallel: + matrix: + - ZOPEN_FLAG: ["--enable-open-zfile", "--disable-open-zfile"] --- libxpm-3.5.17.orig/autogen.sh +++ libxpm-3.5.17/autogen.sh @@ -0,0 +1,17 @@ +#! /bin/sh + +srcdir=`dirname "$0"` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd "$srcdir" + +autoreconf -v --install || exit 1 +cd "$ORIGDIR" || exit $? + +git config --local --get format.subjectPrefix >/dev/null 2>&1 || + git config --local format.subjectPrefix "PATCH libXpm" + +if test -z "$NOCONFIGURE"; then + exec "$srcdir"/configure "$@" +fi --- libxpm-3.5.17.orig/debian/README.source +++ libxpm-3.5.17/debian/README.source @@ -0,0 +1,49 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated using this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. --- libxpm-3.5.17.orig/debian/changelog +++ libxpm-3.5.17/debian/changelog @@ -0,0 +1,276 @@ +libxpm (1:3.5.17-1) unstable; urgency=high + + [ Timo Aaltonen ] + * New upstream release. + - CVE-2023-43788: out of bounds read in XpmCreateXpmImageFromBuffer() + - CVE-2023-43789: out of bounds read on XPM with corrupted colormap + * control: Migrate to x11proto-dev. + * Update signing-key. + * patches: All patches upstream, drop them. + + [ Debian Janitor ] + * Remove constraints unnecessary since buster: + + Build-Depends: Drop versioned constraint on libx11-dev, libxext-dev, + libxt-dev and xutils-dev. + + [ Julien Cristau ] + * Update Vcs-* control fields. + * Add ncompress build-dependency for the test suite. + * Install man pages in libxpm-dev. + + -- Julien Cristau Thu, 05 Oct 2023 14:24:36 +0200 + +libxpm (1:3.5.12-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix CVE-2022-46285: Infinite loop on unclosed comments + * Fix CVE-2022-44617: Runaway loop with width of 0 and enormous height + * configure: add --disable-open-zfile instead of requiring -DNO_ZPIPE + * Fix CVE-2022-4883: compression commands depend on $PATH + * Prevent a double free in the error code path + * Use gzip -d instead of gunzip + * debian/rules: configure: Set explicitly runtime paths for {,un}compress + and gzip. + + -- Salvatore Bonaccorso Mon, 16 Jan 2023 21:01:44 +0100 + +libxpm (1:3.5.12-1) unstable; urgency=medium + + [ Andreas Boll ] + * New upstream release. + * Let uscan verify tarball signatures. + * Improve package description (Closes: #646992). Thanks, Justin B + Rye! + * Switch URLs to https. + * Remove obsolete xsfbs. + * Add placeholder comment into series file. + * Bump debhelper compat to 10. + - Drop build-deps on dh-autoreconf, automake and libtool. + * Stop passing --disable-silent-rules to configure, debhelper does + that for a while. + * Drop no longer needed dpkg-dev versioned build-dependency. + + [ Emilio Pozuelo Monfort ] + * Switch to -dbgsym packages. + + -- Emilio Pozuelo Monfort Thu, 22 Dec 2016 17:17:47 +0100 + +libxpm (1:3.5.11-1) unstable; urgency=medium + + * New upstream release. + * Rewrite debian/rules using dh, bump compat to 9, drop xsfbs. + * Remove Cyril from Uploaders. + * Bump x11proto-core-dev build-dep per configure.ac. + * Disable silent build rules. + * Override gzip-file-is-not-multi-arch-same-safe for xpm.PS.gz. + + -- Julien Cristau Sun, 13 Jul 2014 12:24:10 +0200 + +libxpm (1:3.5.10-1) unstable; urgency=low + + * Clean up libtool m4 files. + * Revert to shipping the doc as PS instead of PDF, so libxpm-dev can be + Multi-Arch: same. Thanks to Jakub Wilk. + * New upstream release. + * Bump debhelper build-dep to 8.1.3 for ${misc:Pre-Depends}. + + -- Julien Cristau Sat, 21 Apr 2012 11:21:07 +0200 + +libxpm (1:3.5.9-4) unstable; urgency=low + + * Exclude xpmutils from the debug package so it really is multi-arch safe + (closes: #646960). Thanks, Jakub Wilk! + * Don't require fakeroot for debian/rules clean. + * Replace the change from 1:3.5.9-3 with the equivalent fix committed + upstream. + + -- Julien Cristau Mon, 31 Oct 2011 16:41:44 +0100 + +libxpm (1:3.5.9-3) unstable; urgency=low + + * Apply patch from Ubuntu to fix build failure when using ld --no-add- + needed. Closes: #604494. + + -- Steve Langasek Fri, 21 Oct 2011 20:21:48 -0700 + +libxpm (1:3.5.9-2) unstable; urgency=low + + [ Cyril Brulebois ] + * Build xpm.pdf from xpm.PS.gz, and use debian/libxpm-dev.docs to + install it. That's the only available documentation we've got, so + let's ship it (Closes: #466081). + * Add ghostscript build-dep, for ps2pdf. + * Fix typo in long descriptions: specificied → specified. + + [ Julien Cristau ] + * Remove David from Uploaders. + * Drop Pre-Depends on x11-common, only needed for upgrades from the + monolith. + * Drop Replaces on xbase-clients 6.8.x. + + [ Steve Langasek ] + * Build for multiarch. + + -- Steve Langasek Fri, 21 Oct 2011 15:24:28 -0700 + +libxpm (1:3.5.9-1) unstable; urgency=low + + [ Julien Cristau ] + * Remove myself from Uploaders. + * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no + good reason. Thanks, Colin Watson! + + [ Cyril Brulebois ] + * New upstrem release. + * Bump xutils-dev build-dep for new macros. + * Update debian/copyright from upstream COPYING. + * Drop debian/libxpm-dev.docs, xpm.PS is gone. + * Switch from --list-missing to --fail-missing for additional safety. + * Exclude libXpm.la from dh_install accordingly. + * Add myself to Uploaders. + + -- Cyril Brulebois Fri, 19 Nov 2010 10:59:03 +0100 + +libxpm (1:3.5.8-1) unstable; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + * Bump the build-dep on xutils-dev (>= 1:7.5~1). + + [ Julien Cristau ] + * Bump Standards-Version to 3.8.3. + + -- Julien Cristau Wed, 25 Nov 2009 19:31:08 +0100 + +libxpm (1:3.5.7-2) unstable; urgency=low + + [ Julien Cristau ] + * Drop -1 debian revisions from build-deps. + * Bump Standards-Version to 3.7.3. + * Drop the XS- prefix from Vcs-* control fields. + * libxpm4{,-dbg} don't need to depend on x11-common. + * Add xpm.PS.gz to the -dev package (closes: #525551). + * Don't handle nostrip in DEB_BUILD_OPTIONS explicitly, dh_strip does the + right thing. + * Use filter instead of findstring to parse DEB_BUILD_OPTIONS in + debian/rules. + * Add README.source, bump Standards-Version to 3.8.1. + * Run autoreconf at build time. + * Allow parallel builds. + * Move -dbg package to new debug section. + * Don't pass -l and -L options to dh_shlibdeps, it seems to be useless + nowadays. + + [ Brice Goglin ] + * Add a link to www.X.org and a reference to the upstream module + in the long description. + + -- Julien Cristau Wed, 10 Jun 2009 14:59:30 +0200 + +libxpm (1:3.5.7-1) unstable; urgency=low + + * New upstream release. + * Add the upstream URL to debian/copyright. + * Use binary:Version instead of the deprecated Source-Version. + * Add myself to uploaders, and remove Branden with his permission. + + -- Julien Cristau Sat, 25 Aug 2007 10:50:50 +0200 + +libxpm (1:3.5.6-3) unstable; urgency=low + + * Put binary packages in the correct sections. + * Run dh_shlibdeps with -L libxpm4 -l debian/libxpm4/usr/lib so xpmutils + gets a dependency on libxpm4. Fixes bug noticed by checklib. + + -- Julien Cristau Mon, 21 May 2007 17:35:32 +0200 + +libxpm (1:3.5.6-2) unstable; urgency=low + + * Upload to unstable. + * Add XS-Vcs-Browser. + * Remove Fabio from Uploaders, with his permission. + + -- Julien Cristau Wed, 11 Apr 2007 16:31:32 +0200 + +libxpm (1:3.5.6-1) experimental; urgency=low + + * New upstream release. + * Add XS-Vcs-Git header to debian/control. + * Drop obsolete CVS information from the long descriptions. + * Install the upstream changelog. + + -- Julien Cristau Fri, 16 Feb 2007 16:24:44 +0100 + +libxpm (1:3.5.5-2) unstable; urgency=low + + [ Andres Salomon ] + * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build; + idempotency fix. + + [ Drew Parsons ] + * dbg package has priority extra. + + -- David Nusinow Wed, 30 Aug 2006 17:12:38 -0400 + +libxpm (1:3.5.5-1) experimental; urgency=low + + * New upstream release + * Run dh_install with --list-missing + * Bump debhelper compat to 5 + * Remove extra x11-common dep in the -dev package + * Version x11-common pre-dep in the -dev package to use 1:7.0.0 to match the + rest of Debian and shut lintian up + * Add the sxpm and cxpm manpages to xpm-utils + + -- David Nusinow Mon, 3 Jul 2006 19:23:49 -0400 + +libxpm (1:3.5.4.2-3) unstable; urgency=low + + * Reorder makeshlib command in rules file so that ldconfig is run + properly. Thanks Drew Parsons and Steve Langasek. + + -- David Nusinow Tue, 18 Apr 2006 21:50:00 -0400 + +libxpm (1:3.5.4.2-2) unstable; urgency=low + + * Upload to unstable + + -- David Nusinow Thu, 23 Mar 2006 22:45:13 -0500 + +libxpm (1:3.5.4.2-1) experimental; urgency=low + + * First upload to Debian + + -- David Nusinow Thu, 29 Dec 2005 20:54:06 -0500 + +libxpm (1:3.5.2-5) breezy; urgency=low + + * Add a Build-Depends on libxext-dev. For my next stunning move, I'll + actually pay attention to what I'm doing. + + -- Daniel Stone Sat, 23 Jul 2005 01:33:31 +1000 + +libxpm (1:3.5.2-4) breezy; urgency=low + + * Bump Build-Depends on libx11-dev, libxt-dev, libxext-dev and + x11proto-core-dev to avoid _XOPEN_SOURCE. + + -- Daniel Stone Sat, 23 Jul 2005 00:24:13 +1000 + +libxpm (1:3.5.2-3) breezy; urgency=low + + * Fix cat-walks-across-keyboard attack in debian/control. + + -- Daniel Stone Wed, 20 Jul 2005 21:18:57 +1000 + +libxpm (1:3.5.2-2) breezy; urgency=low + + * blah blah xpmutils Replaces: xbase-clients (<< 6.8.2-38) blah blah + + -- Daniel Stone Wed, 20 Jul 2005 18:45:27 +1000 + +libxpm (1:3.5.2-1) breezy; urgency=low + + * First libxpm release. + + -- Daniel Stone Mon, 16 May 2005 22:10:17 +1000 --- libxpm-3.5.17.orig/debian/compat +++ libxpm-3.5.17/debian/compat @@ -0,0 +1 @@ +10 --- libxpm-3.5.17.orig/debian/control +++ libxpm-3.5.17/debian/control @@ -0,0 +1,65 @@ +Source: libxpm +Section: x11 +Priority: optional +Maintainer: Debian X Strike Force +Build-Depends: + debhelper (>= 10), + quilt, + xutils-dev, + libx11-dev, + libxt-dev, + x11proto-dev, + libxext-dev, + pkg-config, + ncompress , +Standards-Version: 3.9.8 +Homepage: https://www.x.org +Vcs-Git: https://salsa.debian.org/xorg-team/lib/libxpm.git +Vcs-Browser: https://salsa.debian.org/xorg-team/lib/libxpm + +Package: libxpm4 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Description: X11 pixmap library + The X PixMap image format is an extension of the monochrome X BitMap + format specified in the X protocol, and is commonly used in traditional + X applications. + . + This package provides runtime support for XPM format. + +Package: libxpm-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libxpm4 (= ${binary:Version}), + libx11-dev, + x11proto-dev, +Description: X11 pixmap library (development headers) + The X PixMap image format is an extension of the monochrome X BitMap + format specified in the X protocol, and is commonly used in traditional + X applications. + . + This package contains the development headers for the libxpm4 library. + Non-developers likely have little use for this package. + +Package: xpmutils +Architecture: any +Pre-Depends: ${misc:Pre-Depends} +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Description: X11 pixmap utilities + The X PixMap image format is an extension of the monochrome X BitMap + format specified in the X protocol, and is commonly used in traditional + X applications. + . + This package provides two tools: cxpm (to check the integrity of an + XPM file) and sxpm (to view XPM files). --- libxpm-3.5.17.orig/debian/copyright +++ libxpm-3.5.17/debian/copyright @@ -0,0 +1,71 @@ +This package was downloaded from +https://xorg.freedesktop.org/releases/individual/lib/ + +Copyright (C) 1989-95 GROUPE BULL + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of GROUPE BULL shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from GROUPE BULL. + +Copyright (C) 1998 Arnaud LE HORS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +Arnaud LE HORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Arnaud LE HORS shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from Arnaud LE HORS. + +Copyright (C) 19896 Lorens Younes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +Lorens Younes BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Lorens Younes shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from Lorens Younes. --- libxpm-3.5.17.orig/debian/libxpm-dev.docs +++ libxpm-3.5.17/debian/libxpm-dev.docs @@ -0,0 +1 @@ +doc/xpm.PS.gz --- libxpm-3.5.17.orig/debian/libxpm-dev.install +++ libxpm-3.5.17/debian/libxpm-dev.install @@ -0,0 +1,5 @@ +usr/include/X11/* +usr/lib/*/libXpm.a +usr/lib/*/libXpm.so +usr/lib/*/pkgconfig/xpm.pc +usr/share/man/man3 --- libxpm-3.5.17.orig/debian/libxpm-dev.lintian-overrides +++ libxpm-3.5.17/debian/libxpm-dev.lintian-overrides @@ -0,0 +1,2 @@ +# we don't touch it, so it's the same on all archs +gzip-file-is-not-multi-arch-same-safe usr/share/doc/libxpm-dev/xpm.PS.gz --- libxpm-3.5.17.orig/debian/libxpm4.install +++ libxpm-3.5.17/debian/libxpm4.install @@ -0,0 +1 @@ +usr/lib/*/libXpm.so.4* --- libxpm-3.5.17.orig/debian/patches/series +++ libxpm-3.5.17/debian/patches/series @@ -0,0 +1 @@ +#placeholder --- libxpm-3.5.17.orig/debian/rules +++ libxpm-3.5.17/debian/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f + +%: + dh $@ --with quilt --builddirectory=build/ + +override_dh_auto_configure: + dh_auto_configure -- XPM_PATH_COMPRESS=/usr/bin/compress XPM_PATH_UNCOMPRESS=/bin/uncompress XPM_PATH_GZIP=/bin/gzip + +override_dh_install: + dh_install --fail-missing -XlibXpm.la --- libxpm-3.5.17.orig/debian/upstream/signing-key.asc +++ libxpm-3.5.17/debian/upstream/signing-key.asc @@ -0,0 +1,125 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +79+hF4bWyw== +=WW1Z +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBEab+moRBACDH5yKqS3wcc5bdxY7PBNuwKvF5TKMfagmSvuRDtZjjIIWaA/n +Z1KboV9Gq5g7kP7+Kfu+Qgd8u65eVsWwmPW10fXvj3aCU53glx2EdGdrHcgiyH2g +EQfPiyBw+trIppWFRV0IDXSLMA1FNC92t2nSG/VFHaPTVwcgkIRSfcXDvwCglGdE +a6f4uLqoNHP+m4yYnzapFuMD/R4+2AJDAvEWKDdYCGZzlawjAmmWyXrmT7/C/mx9 +8qUR473l4buXjHgDkkXXlHqdzil1vK85PhrKzNJDCCmlHUJNz+QwiAMOLwpD+kwV +Pb57RG7y+a5JQ5+jtVw4RlUxZIk/wj2An9YBO3A5vR7PdjM32ZJCN2+aM4dYfNzQ +xQKTA/47icvBaBVTl9rztjg2pd2Aqpc1P/GsIYLGj7XjnnJvGAENBHSH1QjpZMJG +CTS9oJ+B0/wrIr+pA+MdFgYAb6ojMQJOO6UChjWWSGjMFcs/CeXhxlLBido3DtAE +TbNTwO6OEfAvdosvTdhJFnwvZlJ+zZGGy5CrF2Fd9PUe9tmASbQuQWxhbiBDb29w +ZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBvcmFjbGUuY29tPoiCBBMRCgBCAhsD +BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZARYhBEoZPAbTXnxnD6TvC6L7nggf +LRMOBQJkQs2eBQknDNS0AAoJEKL7nggfLRMO1esAnR4FVD60BpDY/bJp5RC1VXhO +Vlo4AKCJgsQeVeGLxDlMuhAmbcCkOjafqbQoQWxhbiBDb29wZXJzbWl0aCA8YWxh +bmNAZnJlZWRlc2t0b3Aub3JnPoh/BBMRCgA/AhsDBgsJCAcDAgYVCAIJCgsEFgID +AQIeAQIXgBYhBEoZPAbTXnxnD6TvC6L7nggfLRMOBQJkQs2eBQknDNS0AAoJEKL7 +nggfLRMOUgAAoIyNXuU5kOotpZrKvPrjQATbsPClAJ9wkh/n3IAobV6aDLb1qOt5 +RT3Pp7QrQWxhbiBDb29wZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBzdW4uY29t +Poh9BBMRCgA9AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AWIQRKGTwG0158Zw+k +7wui+54IHy0TDgUCZELNngUJJwzUtAAKCRCi+54IHy0TDunHAKCKZyiF/IwgoqYQ +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 +=awvS +-----END PGP PUBLIC KEY BLOCK----- --- libxpm-3.5.17.orig/debian/watch +++ libxpm-3.5.17/debian/watch @@ -0,0 +1,4 @@ +#git=git://anongit.freedesktop.org/xorg/lib/libXpm +version=3 +opts=pgpsigurlmangle=s/$/.sig/ \ +https://xorg.freedesktop.org/releases/individual/lib/ libXpm-(.*)\.tar\.gz --- libxpm-3.5.17.orig/debian/xpmutils.install +++ libxpm-3.5.17/debian/xpmutils.install @@ -0,0 +1,4 @@ +usr/bin/cxpm +usr/bin/sxpm +usr/share/man/man1/sxpm.1 +usr/share/man/man1/cxpm.1 --- libxpm-3.5.17.orig/man/XpmWriteFileFromData.man +++ libxpm-3.5.17/man/XpmWriteFileFromData.man @@ -0,0 +1 @@ +.so man__libmansuffix__/xpmwrite.man.__libmansuffix__ --- libxpm-3.5.17.orig/test/pixmaps/README.md +++ libxpm-3.5.17/test/pixmaps/README.md @@ -0,0 +1,89 @@ +The pixmaps under this directory are used as test cases for several tests. +The tests iterate over all files in each directory, so new test cases can be +added by just adding a file there, adding it to the `EXTRA_DIST` list in +`test/Makefile`, and adding a note here to help us remember what each test case +covers. Please make sure all pixmaps are appropriately licensed. + +For details on the different format types, see xpmDataTypes in `src/data.c`, +, and +. + +good +---- + +Those under the `good` subdirectory are expected to work and +return XpmSuccess when parsed. + +A subset of these are specifically chosen/designed to test various things: + +- plaid-v3.xpm - copy of the sample XPM file from pg. 10 of `doc/xpm.PS.gz`, + in XPM version 3 format + +- plaid-v1.xpm - alternate version of plaid.xpm in XPM version 1 format + +- plaid-v2.xpm - alternate version of plaid.xpm in XPM version 2 "natural" format + +- plaid-lisp.xpm - alternate version of plaid.xpm in XPM Version 2 Lisp format + +- jigglymap.xpm - transparent background + +Other pixmaps in this directory are a selection of real world XPM files +with a variety of sizes & numbers of colors. + +invalid +------- + +Those under the `invalid` subdirectory are expected to fail and +return XpmFileInvalid when parsed. + +- doom.xpm - This file is originally from + . + It is a test case for the stack-based overflow in xpmParseColors in + CVE-2004-0687 as described in + . + +- doom2.xpm - This file is originally from + . + It is a test case for the stack-based overflow in ParseAndPutPixels + and ParsePixels in CVE-2004-0687 as described in + . + +- invalid-type.xpm - This file has an invalid XPM version 2 type header + +- no-contents.xpm - This file has a valid header but no contents + +- unending-comment-c.xpm - This file has a C comment block without the + closing "*/" to test for CVE-2022-46285 + +- zero-width.xpm & zero-width-v1.xpm - These files declare a width of 0 + and a height of nearly UINT_MAX, to test for CVE-2022-44617 + +- corrupt-colormap.xpm - This file was generated by the clang libfuzzer, + and serves as a test for CVE-2023-43789 + +- width-overflow.xpm - This file was provided by Yair Mizrahi of + the JFrog Vulnerability Research team as a test for CVE-2023-43787. + Its width causes an integer overflow when multiplied by a depth of 4 bytes + (32-bits) when using 32-bit ints. + +no-mem +------ + +Those under the `invalid` subdirectory are expected to fail and +return XpmNoMemory when parsed. + +- oversize.xpm - This file specifies more pixels than can be mapped in + a 64-bit address space that already has programs & libraries mapped in. + +other +----- + +Those under the `other` subdirectory don't fit cleanly in any of the above +categories, and may be valid for some uses but not others, and thus can't be +easily used in the current test framework, but are still interesting cases. + +- overflow-stackexhaustion.xpm - This file was provided by Yair Mizrahi of + the JFrog Vulnerability Research team as a test for CVE-2023-43786. + It is a valid XPM file, but is larger than fits into an X Pixmap, so + should pass with many functions, but fail when used with sxpm or + anything that calls through to xpmCreatePixmapFromImage(). --- libxpm-3.5.17.orig/test/pixmaps/good/jigglymap.xpm +++ libxpm-3.5.17/test/pixmaps/good/jigglymap.xpm @@ -0,0 +1,362 @@ +/* XPM */ +/* sphere texture from jigglypuff module of xscreensaver + * + * Copyright (c) 2003 Keith Macleod (kmacleod@primus.ca) + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ +static char * jigglymap_xpm[] = { +"256 256 91 1", +" c None", +". c #020202", +"+ c #191516", +"@ c #B8ACB4", +"# c #72788F", +"$ c #9C7B77", +"% c #E8D6D7", +"& c #9C929F", +"* c #2B2729", +"= c #E2CACB", +"- c #64504D", +"; c #D6C2C5", +"> c #B58E8A", +", c #8F706C", +"' c #CCACA8", +") c #807686", +"! c #9090A0", +"~ c #776863", +"{ c #B79F9E", +"] c #CCB2B5", +"^ c #908A97", +"/ c #433B3E", +"( c #ADA4AE", +"_ c #806966", +": c #8E7677", +"< c #9C8387", +"[ c #A99EA8", +"} c #CDA398", +"| c #8F8694", +"1 c #D3B6B0", +"2 c #AE9192", +"3 c #C19E9D", +"4 c #B18981", +"5 c #BAB3B8", +"6 c #4D464A", +"7 c #8A8292", +"8 c #DEBDBA", +"9 c #AA8989", +"0 c #6A6E84", +"a c #EEE6E8", +"b c #A59AA6", +"c c #7F7284", +"d c #DABBB8", +"e c #EEE2E2", +"f c #755D58", +"g c #B59593", +"h c #A69194", +"i c #816F6E", +"j c #9F8A8F", +"k c #E5D0D1", +"l c #967C7F", +"m c #C3ABAB", +"n c #D3BEC2", +"o c #E2C6C3", +"p c #C4998D", +"q c #686B79", +"r c #867988", +"s c #B7A4AD", +"t c #5B667D", +"u c #77696E", +"v c #C0A39F", +"w c #A68582", +"x c #C3B4BB", +"y c #7F7D93", +"z c #89716C", +"A c #EBDBDC", +"B c #A495A3", +"C c #B89A99", +"D c #CDB7BD", +"E c #AD7C6F", +"F c #9A7E84", +"G c #BEA6AE", +"H c #DAAEA4", +"I c #8F7A84", +"J c #D3B9BB", +"K c #9F7168", +"L c #D3B2B2", +"M c #AE9AA2", +"N c #98716D", +"O c #94828A", +"P c #86727A", +"Q c #777181", +"R c #786E71", +"S c #C3ADB6", +"T c #D6ADA0", +"U c #DCC4C5", +"V c #6A5D63", +"W c #A67D76", +"X c #C6A5A1", +"Y c #58555C", +"Z c #776266", +" **6KEEE4>pp}pppp>4EEEKN/* ", +" **//_E4>4pTT}TH}THHHHHHHH}T}}}}}}ppp>EE_//** ", +" /-f_4pppp}H}H}}TT}HHTHHHHHHHHHHHTTH}H}}}}}}p}pp>Kf-/ ", +" *-_KE}pp}}}H}}}}}H}}}}T}}}}}}}}p}p}p}}p}}}T}HH}H}}p}}}}}TpEK-* ", +" -K>4pH888oHH}H}H}HH}}}p}pp}}}T}}p}}}p}p}ppppp}pp}}}HHH}}}}T}p}HHH}E-* ", +" */E}}H8ooo8HHHHHHHHHHHHTTTTHHTTTTT1}T}}TTTHTTT}}Xp}pp}ppppp}}}}}}p}}'}THT>6/ ", +" /f_}H8kkko888H8HHHH8oo888H88888ddH8d8od88dHHHHTT}}vvpXvpvpv}vpCgp{3v3}p}3}}}}}}Kf6 ", +" fKHoookkkoo8o888Hoooooo88888ooookkk%kokkoooo8d11]'T''vvvv{v{v{v{3{{C{{{{CCCppp}}}}33KK ", +" *f>Hkkook%kkkkkokkoko88888okkk%A%AAA%%k%kook==oo88d11L''T'T111dX}X'vvvCCCCgCggp{gppCp}'}}}pp_* ", +" /}To%kooo%%AAAAkkooooooooA%AAAAAA%%%%%%%A%A%%k%%%oo8dd1T'T]x'''1111'Xvvv{vvC{gCC{g{CMCCgg333}3ppE6* ", +" fpooko8kk%AAAAAkooo8okkkkkkAAAAAAeAAAAAAAAA%%k%kk=kood111]'mmm@mXm@m@@v{{v{{{pg{gg{gCCgCCCgggCC3}}pHWf ", +" 6E'k%%kkkkAAAA%koo8ok%%AAAAA%AAAAAeeAeeeeeeAAAA%%kk=oo8d1''mv]xm@mv@vvsvsv{vvvvv{{gCCgMCgCCCgCgg>gCggp33TwK- ", +" /}kAAkoAkAkkkoo88ooAAAAAAAAAAAAAAAAAeeAeAAAA%%k%kkkk=o8o8d1]''mmmmmmm'x]'mmXXvvvv{{v{C{CCCggg2CgCCpCg>ggCgC3}}p/ ", +" 6pkAAAoA%%%oo88oo%AAAAAeAAAAAAeeAeeeeAAAAAA%Ak%kkkko=o=ooo=oo;ddnn11]L']']m@vmmmXmXvvv{{v{{{{{v{CC{C{}}Cgg2CCggg33E/ ", +" f2=AA%k%%A%kokk%AAAAAAAAAeeAeAeAAAeAA%A%%k%AAAAokoo8888ooo88o8dnd1dd11T''mmxv@smm''X''mmmvX'Tmm}T''vv{{}T}TXCppgCCgp3p$f ", +" 6gkekA%%AAAkk%AAAAeAAAAAAAeeeeAeAeAAAAAA%%%%%%AA%koo888888888d1dn11d1d11'T']xm'']x1ddoU1'Txm''1T1;oo8;81''1T881T}}T}vCgggpw- ", +" *_AAA%eeAe%kkAeeeeeAeAAAAeeeAeeeeeAeAAAAAAA%kooo88888dHTT1T111mxmx]18o8o88;d1d;8==%%doo===oo=oookdd8o=k%%ko8=ook8d1HTH8oT}C>>p-* ", +" *VoAAk%eAAAk%AeeeAeeeAeeeeeAeeeAeeeAAAAA%A%%oooo8H811TT1dd111111'x'm1d1o8doo8UU8ok%%%AAAAA%%%%%===%%kkk%%A%kood1H1HTH1THd8o8dTv2>p/ ", +" /xeA%%AeAA%%AAAeAeeAAeeAeAeeeeeeeeeAAA%%%%oooooo88881188od8o888nUdndnd88;ddUoo=k=%%%%%%%kkoo%===ooo8ddd8==8oko81Tp}pppp}}TTdH1THTm>g$* ", +" v;eA%eeA%AAAAAAeAeeAeeeAeeeeeeeeeeAAAAAAkkooooo88oo8oooUodoo8UUUUUooo8U88ddd8o=k%%kko8d'TTT}}vT1}Tv}pv'TTT}}}TT1TTXpvpp>>p>pTHH}}}Hd32w$ ", +" BeAAeaeeeeAA%AeeeeeAeeeeeeAeAAeA%%A%ooooooooo8oooo8oUUooooooood88oooo===kk=oo===kkk%==odTmX}v}ppgp44h494222gppp}}111TTT}TT}ppp>p}}}ppp1TC2w- ", +" YjAAAeaeeAAAAeeeeeeeeeeeAAAAAAeeA%%%kokoooookkkokkooooookokooko=ooooo=k=k====ooo=okkk===1T}pgpppgp>444wj94w>>pppppp}}TT'}pppp}}}pppp}p}pp}T3g>f/ ", +" ReAeeeAAeeeeeeaeeeeeeeeeeeAA%AAAAAA%%%kkk%%%A%k%k%kkkkooookkkkk%ko==kkk%k%=o81TTTTTTTTT1o1TppC>>g>>>44wwwww4>4pp}}}}pvppvv}}}pppppg>p>4p44>p}}p>>6 ", +" 65kAeAAAAeeeeeeeeeeeeeeeeAeAA%%AAAAA%%AAA%%%AAkk%k%kkkkooookkkkkk%%kk==k%k%=koHT}}}}}X}ppppgg244wEWWWWwWwWWWWww9Cpppv}pppp>>}}TT}vXp>4444>>4E>4p}}gw,* ", +" Yaea%AAAAeeaeeeeeeaeeeAeAAAAAAA%A%%%%%AAAAAAA%k%o%%kkkoookokkokokkooooo88d18181TTpp}p}vppg>424w44EE44EEE>p}}g4/ ", +" /YeAeAA%AAeeeeeeeeeeeeeAeAAA%%%%%k%%%%%%%kk%kk%k%k%kkooookk%%%%kkkkoooo8dHTHHHH11TTTT}TT}}vg>wWWE$KK$,K,K,$$$$EKE$Ww44ppCCvvX}v}'T1}}ppppp}}>2WWWKKEEpp3g4/* ", +" /naAAeAAAAeeeeeeAeeeeAeeAAkkk%kkoko%%A%kkoooookk%kkkkooooo%%A%%%k%%koo88HH}}}}}TTT}TT1188Ud1}pgww$E$E$$K,K,K,KKK$WWwW49g4ggCpvpppCp{}}>>2>>>p}vp>wEKNNKE4}pg$* ", +" *;%eeeAAAeeeeeeAAAAAAA%kkkokoo%AA%AAkooo888oookkkA%kkkooooo%%%%kkkkkkooo81T}}p}pp}T}TT1d1d1d1T}ppgg444W$,,,K_,,K,EWww944gppvppgpg>24>Cp44444j42gpp>4WK,KKNKE}gl ", +" *aaeA%%AeeAAAAAAAAAAAk%kooooo%%kokk%%koo88d8oooookkooo8o8okk%%%%kkkkko8d1TTT}}ppppvX}}'TT1T1TTXvppgp>4>4h44WKEEE$E44ww4gww4>g4>>}T}g4E$KK,,,Ep3> ", +" *5aAaA%%AeeAeeee%kkk%%%kkAo%AAA%%%kk%%%kk==o;oUUoooooooo8oooook%k%koood1T}}pp4h>w4w44>4>4>44>>22h4p>g>>>>44w44wEEWEEwww4g}vT}T'TT}vCgh4wwWWwww4>>gg}}Tp>>4EEEKK_K4>g, ", +" 5aeAkk%%%kAAAeA%kokkkkkkkAk%AAAA%AAAA%%koo;;;11;1nd1d11dd;dooooooooo8dTT}}ppgp2294944>gg>2449wwwEWw$EEWW$$E$$E$$E>>w>>>4>pggv'T'1}XXvCg>>4W2449wgg44gp}g>>>44EEE_,K>>~ ", +" neAkokkkko%AeeA%kkkkk%%%AAAAAAAAAe%A%%%o=1d515151511111111118888o8dd88dTTppppCgCg4h9>>>ggg4h4wwWW$EK$KK$KKK,KK_,K,$WWwwwEE$$K4>22>gggpvpCggw>ggp4ggpp}g>>>wE>>4p4EKf,w2: ", +" *neAkoo8o%AAAeAAAAA%%%AAAAAAAAAe%%%%%oood1151515n51515T51'n11;d888ddddd188d1d1d18111ddUUU8dddd1'}g>44hEW$KK,K,N,K_K_K$KWE$$E$K,,z__z__,w9w<$Ww4>pgpppgpv}T}pp4>p>4EE4K__E9: ", +" ^Aeko8HHoAeAAAAAAeAAAAAAAAAAk%%%kooookooU115151515n515111n1111;8881888888o88d1oUo=ooUooo=oooddd1T}pC>44wWW$KNNK,,K_z,z,K$$K$NNK,_z_,__,,zzz_~z,$:$:>2>4pppp}p}T}pp>WEEKK__K4gf ", +" [eAo8TH8oA%AA%AAeAeAeAAeAAAAoookooo18dd1;1551151xx151x1n1n1n1;UUoo88ooo8o8o8od88oUooUooo===ooddddT'vv>hwww$E$$NNK,KKK,,,KK,,__________,_zz,zz___z_,z,:$KwWwWgp>>p}pp>wEEKK_,K4pf ", +" &A%oTTHokAokkk%AeAeeeAeAAAA%%k88d1dd11151551x51x1xxxx15x5n1nd1d8Uooo8TTT1TmTTTTT'''1''''T1TTmT{}pv{pg>hwEKEEKKKfN4>f ", +" b%%d}}okooookoo%AAAAAeAA%Aooo8d111115n5n51x151x5Dxn51xnx1n1n1;UooooodTT1TTvmv}TTmm'vmmmXmXTmXvvCCpppg>44wO$$$,K,,K_,_______f_f~_f____z__z,zzKN:Kz,,,z:zKN$,,zz__~_~_z_~zK,,KKK___49Z ", +" jAkT}Toooookoook%%AAeeA%oo8od1n1n115nn5n151x51x1xxxxxxxx15n1n1ddooo8o8TTTmTX}m}'TTm}X}v}vCCCpgggh>4444wW<$$K$,,zK_,_K__K_z_,f____f__R~~~z_zzN:NzKK,zzz:zzzNKKK,z_i~~~ZZi~_,___KK___43Z ", +" b%oT}H8okokookko%%AAeAA%koooo111x55n5151xD151xx1x'xx15151D1x1n1;o;;oo8dTTvmmXmTT;Udd1111X}p2WWEE$K:Kz,_z,Kzz_,_________ff__f___f_fZ_~~R~~z__zK$$N,KK$,K$$zzzN,_K,zzz~_~~~___,___,_f__4p~ ", +" ^A8}}Hoooooook%AA%eAeAAA%kU8;nn1xnD5Dx1xn5nxDx]5]x]]m]m]xx51511n;;=;ooUo;o88o8;;okkkoo=o11m}pwW$KK,K,K,z__zzz__z__z_____f_ff_ffZZ__Zf~~R~__zz,,$$KK$K$K$WW$$KKKK,,zz,___~_____KKfKKK___KpV ", +" B%1pTdo=k888=oAAeeAA%eAoo8;;nnn1xD515n5Dx515D5]]x55]xxxDxD'x1DDn1;;;;ooooooo=k=k=kkkokooo8dTvv4wW$EKKK,,_z___zz_z_____~f_f_fZ~_Zff,~~___i_z_z_z,:$KK$EwwwwW<$WKKK,K_z______Zz__,KKK,KK__~_>Z ", +" ^%}pT8oko88oo%AAAAAA%%kko;nnn1xDxD5nxxxDxDDxx]x]m'x5]m]xDxD5DxDnn1;;=;=oko=k=k%AAAAA%%A%k=ood11{{h4E$$E$,,zz,,z_z__~_z__,f_Z~~~_fZZ_~~_i~__ii_z_zzz,,K$l$$wWw>gpEKKKNz,___f_______,K,,KK__Z,4Z ", +" *%'p1okodT8ok%%%%%%A%%ooUd1511DxDxDxxx1xDxDxDxx]x]S]]xxDxxxnxDn;;oU==kk%A%AAAAAA%A%%%kkkooo811'Xpg>wwE$$$$,K,z,K_zzz__z_z___Z_~Z~Z_~~_f__ii_z~__~zz,K,KK$l$E$W4ppg4wWK,zz_~ff~~~______________4 ", +" xT}1=8d11dok%ooooooood11111D51xnxDx15Dx5n5xDDx]x]xDDJD1nnDn1n;;oo==kkk%%AAAAAAAA%%k%%kkkoood1Xvv>4>wwE$$$$K,Kz,K,zz,_zRR_i_Zff~~fZffZZff~~~~~~~~~~__KK,,,_zzz$4gpp>wwW$Nzi_~~~_Z~_~f_f,____f_f_, ", +" m]'8=81111U==oooU1d1111xnxDxxn5D5D5nxDxDD51xxxxDxxxDJJn1nn1nJ;;;oo==kk%%kAAAAAA%A%kkkkkkodd11Tv{C>44wWW$$:$K,Kz,,z,,_,_ii___Z~VZ~f~fZf~f~f~~~~~~~~~_~~~~___i_zzKNWw$$WW$:z_z__~~_~~_~_f___fZfZfZZE ", +" ,T}8=1]'511;==d11111151x1xnxDx5DxDDxDxDxxxDxxDDxnDnnnn;nnJJnnn;Uoo===%k%%%AAAA%%%kkkooooUdT}pCg4wwWWW$E$$$,K_K,zz,,z,,zii_fZf~~Zffff~fffff~~~~~~~~~~~R~__~__~_zzzzzKWK$N,Nz_iii_Z~ff~f__Z_,_ZZfff_,z ", +" Np';;1]x''11n111111]1D1x15J5DDn5n5D5DxDxx1xnnn;nnnx;;=U=ooooooo=koko=k%%%%%AA%AAk%kkkokooddTmpCghwwWwW$E$$$KK_K,,zz,zz,z__ifZZZ~Zffffffffffffffff~~~~~~~~_~~__z,zzzz,KNNNzzz__fz__~~f~Zff_____fffff_KZ ", +" *'Td1'x'51mxDxx5Dxnx1nxDxD1xD5Dx5nxD5nxxnxxxDn;UU;nn;;;==oooooooooo==ookkk%%AAAAAk%%oooddTT}g4www<$$$KKKKK,K_K__z_z______i_Z_ZfZZfffZfVfffffffff~f~~~~~f~~~ff_f__NN,NNNN$,N,i_z~f~~~~~_Z~ff_,_,_fV-ffZ, ", +" T'8n'5m1mxmxxDDDDD1nxDDDxDDx1DDD55DDxxDxxxDxnn;;;;;;==k%k=k==U===okooookk%%%%AA%%%kkoo811Tvp44wwW$$$:Kz,,K,K_,_,__z_z_z___Zf_~ZZf~fffVVVffffVfVfff~f~fZZ~f~ff_fKK,KNNNNKEwwK,z__Zf_~~~~Z~f~~,KNzff-VVffZ ", +" *3T1nm'mmxm]m1x5DxDx11D]xnxnxnxxDDnx5DDx5D5xDxxxnnnnnnU;====;;;;;o;UUoo8ooooo%kkkokoooo81TT'vpgg4ww$,Kzz,zzz_z,K__zz___z_zi__Z~~f~fffffVVYfffYVfVff~ZZfZ~_f~~_____z,$K$K$$WwwNK,__~__f~~~~~~f~~,$$~fff--fff* ", +" *wL1x]mxmmxmx'5]1x1D]]1x1D11DD5DxD55xD5x15xxxxDDx555xxDnn;;kUo;;;;;oU;ooo8ook%k%kkkkoooo81TTv}pp>444$:Kzz,z,z,,z_K__i__i___i_Zf_~Zf~~ffffVVfVfVVV~ff~f_f__z~~f~~___,,N$4$$Kz_z___________~~~~~ZZ~~~~~fff~VVfVVVVVVVff~Z_ZZf~Z~~~~f_zzz,:$$Ww4w$$N,,_z___~~~~f~~~_Z__~ZffYYVV-Z_* ", +" *X]]mxm@vm@vv'5mxmmxx]]Dm]x]x]xxD1Dnn;;;n;;k;;;;nn;nnnnnUUU;;;UUoooookooo8o8o8oooooooooo88d811111TTm}vg>h$,K,z_zzR~i~~___~i~~~Z~~~~~ff~ffV~fVfVVVVfffffZfZZf~Zfff~~f~_zzzzKNE$w$K,,,z______Zf_~~fZf_f~fffVfY-Vff,/ ", +" $']5xmvmssv@mmm]m1]]x]xDxxx]5DxD;k=kk;k==%kkk=;=;;=U===;=;UUU=;U=oooUooooo888o888o8o8o8o8dd818111'm'v}g4h$K,,z__i~~R~i~___~~~~V~~~~~~f~fff~VV~Vf~VfffffffZZVVVZZfZ~Z_iz,z,$WW$:z_,__z_______fZ__Zf__Z~fffVVY-YVVff ", +" -v5]]m@@{vsm@@m]xxx]m'xDx]xxDnn;=kkkk%%kkk%kkk==;=;;====;=;UU;n11111d1d111T1TTTT8HHHHHTdddTT1TTTTT}'}mvp24$$KK,zziii~_~i~_~~~~~~~~~~~~~~~~~~R~f~~~~~f~VfZ~VZVZVVf~f~Z__,z,,$www:,,,,,_z__z___iz,_f~~~~ffVfVYVV---ff/ ", +" 6]xxx5mm@v@s5x5m]'m]]xxxDxxDnx;;;kkk%k%kk%kkk;k=;=;==U=UUU=;;dJ111111111111TTTTTTTTTTHH181dTTTTTTTTT}m'}ph4l:,,,z_z__i_~~i_f~~~~~~~~~~~~~~~~RRRfZ~~~~~~~~f~~V~V~~Rii~i::$::K$Ww$:,,zz,____Kz,,N$,$z___~fff-VVY-Y---ff* ", +" ~@]xx@mv@@@5m5m5xxDSx]mDDxDxnD;;=;k%%k%k===kk==k===U=UU==;U8dd1111111111111vTvT}TTTTTTTTTTTTT}T}}'}}p{{pg9w$KK_K,zzz_i~z~i__~~~~~~~~~f~~~~~~RR~Zf~~~~~~~~qZV~V~Z~RRRRRz:>4hp{pppppppppppgpppgg2h44ww<$$::z,,_,,,,,,zz__iiiiiz_i_~~__~~~~~R_f_ZRR~R~RR~ZZ~ZZZ~~~Ri~RR_,z,$$$WwwWNK,_,,,_z_zzzz,l>m9Kz_~fV-VfYV-YVYYY-fZ ", +" l5xx5m55@5@mS55SmJnnD1]]SxSm'mxx5xx5xxDxD5xx'm'Xm'}XXXXXXvXXvvvp}pppgg>>>p{pg4>pp{pppppppppp>g>gw4h4wO$$l::zz,,,,_,zzzz,z_i~i_zzziii_~_iizz_~if____R~R~~~ZZ~~ZZuRRiiz_iizziii__$W$:N,,,_,_z__zzz,:4X2$:z_~~VffVY-YYYYYYY-f ", +" *Bm]5m5m55@5m5S5x@Dnnn;DSSm]'m']'}'m]]'mTx1]1'X'XmXXXvmXvXXXXv3pCppCp{C>>4{gpp>>>gp{pppp>gggg424hwww<$:$::zzzzz__zzzzz_zz_iiiRi_z_____i___iii___f__~RRRR~~fZ~~f~~~_ii_z_____z_iizzK,______z_zii,WW$W4>4$_~ffVfVVVVYYVYY-YY- ", +" *I@xSS55@55x555S@S@]]Jn]]m@m@mmmmm'mxm'T'']]]x'''T1L11T1T111'1T]''Xvvppp{p{p{pggg>p>g>4h4w44444wWW$$lzzzz__zi__zz~__,_z_z_z_iz____~i_~Z~~~~~___Zff_~~~~~~~~ZZ~~fuR~~_R~_~~_~~z_iiz:,,,________iz$42>>{vgwz~fffVfV-V--YYYY-YV- ", +" /@]S]5@@m@m@SSS5x5SSm]]SmGGmGmm]5'm'mxm51]x1111111d188dd1ddd111d1'T''p}}TXmvvpppg>44h4wjw$wwwj4>pv{h:~fVVVfVVYVYYYYYYYYV* ", +" *2mxDS555@@55@@55SS5mmm]m@G@vsGmmx5xxx']mx1x;n;;kk=kkkkkkk==kk===oU8ddd11'Tv}vvp>g>>4hwwjwW<$O$<$$$KKzz__iRRRRRRz~RRRRi_~ii__ffZ~~~~~~f~ffff~VfZZZVVVfVffffffVfVZ~_z,__f~ffff~~~~~_______~_~f~_iz$hvTvv'{2$z~fVVVVVYVYYYYYYYY-f ", +" -@5DD@@m@555@m5S@55@Sm@m@mGGm@mm55xxxxDxDJDx;;;Ukkkkkk=k==kkkkk==oodUdd11'Tm}v{p>p>>44wwjwW<<h4hhwhwWgh44w4wwwwwwwl$,KNIll$$<<h22jjj:$:~~VVVVYYYYYYYY- ", +" 65D55555555S55x5xn5xD5x5x]]]xxDxDx]D1]DDn1n8;;UU;8d111LTTT''T'TX''mXT''}T1TTTT111TTTT'mmm}vmvppgp>2>g4wwwwwwwww<<<$w4h49ww:2g4jj<94z~VVYVVtYYYYYYY* ", +" y;555@55xx5x55555nn5nxxxxmSx']]1]1]]1]1n1dddddddddd11TT'''T'T''TXv}}}}mXm}'m}mXXmTmvvpvp{pg>2h4ww4wjjwgg24444wjO$$N::,:::,,ziiiR~~~~Z~ZZffffVVffZfffff~~~Rz:lz_~~~fZVVVVVZ~~~~_iR~~~_iW$jg2>gh224wwwEwwj<$w<$Wwhh4hww9h4g>p222424w<$lN,:zzzzzzi__i~ZZ~ZfZZfVfVfVZZVZfffVVfZ~~i:::iZZ~~VVVVVVZ~uRR_,z~fZ_i::j9ww4g{g{C42>2g{mv4z~VVV~VVtYYYYY6 ", +" ~@S@5x5@x5x55x55555xxxxXv3v{vXXXXmmTL11ddddddddddd8d11TT'T''T'''TXXppp}XXv}}m}vvvv}vCC>2gh444www$w444994wwh4wwWwO$E$$$O$$l$O$:K$$$$$$$$$$$$EwwWWW2h4wwww$$E$$$$$l$$$$$,$lll$:$$$$$$$wwWW$2h4h4h4jwwWWw$Mhhhhhjj>>>Cv1dd11m34N_ziRzz:,:ll$l$:4gv}9lI$l:NziR~~iii~~R:>vX''v{2WN___i_iiizizzz:NW9{Cj$zzN$w:i~~Z~R~u~~:<>2h929>>{vXX{gh<,z_____iz_iiiiz,Wwg{w$:zKK9j2g994j4>vvXXvC9<$i_~i_i_zzi__z,NWwgCj$zzN$wjjzZZuiZ~_i,<9h9li~Rzjww2><99F:~~ilF::)RuciZ* ", +" /@5555555;;n;k%k=;;====%%%%%%%%%AeeeeeAk%%k%k%k%kAAAA%%%%%%%AAAAe%%%%%===UooU;11T'15mmvm}mm}v{{C>gh>42h4wwwhwwlOI::)zRRRRRRPizz:)z::IIIIIr:O7|^^O^^O^^2j>2w<,:$<<<$l$lO<{X'{{Cj<<2ghhww<<$ll:$$$$w$<h22hjjjh4wwwwwww9jw$:,zzNNlj9g9$zzzz,z,,zz,z,,,:iR~VVtVVVVVZZZ~_RRiiR~~~zz:Il<ww<<$$:::::ljjj29<:zz_iiizzllII::F4>pCvppvg>24wwj<<<$<<$$l:lO$$4jjhh2>>2jw:zi_zi_,:lI:II:O<$<>pCCvvpg>94wwj<<<<4jjjh2>>29<:,_z__zzzFllI:l$F<<99jjj9j9jC{v'T}C24h4hhbhhh^j99wjwwwOllIz:zii_zz$$l:::::zl::RRRRRRRRiRRRR~~~~uuuZZui)IF|hjj&<h4h2hhhhCgh99w<$2M3X'mGg22www:IIlhgh4jj<<<hwwO<hwwjhj&B&j!jjjhhMgMvvXm']11]ms{gj$:::l$$llIIl:IllIIIrrIII:,P:y77yyyyO7O7IlFFr:PiQcQR)IFFI)r))#)cc00q0000Rqu0qQcR0c7cryuqqRr", +"=kn;=kk;AkAAA%%%%%kko===o8Ud1T'1m}vC{{C{gCCgMMg{pXm111''mXv}Xvv{vvv''T111]XXv{vv{pCgh22ww<$jjwh4hw<<$l$lN$$l$:$wlFFllI$l$$l:$K:Il24whhh22{vXm'''x1111Tmv{{vCC2gv{Xm}''T''m}vvv{g2h44jhC{[s{{vXmmXXv{vXX']11X{gjjll:::z:N,::II::IlIIP:rIII::r:rlII7y7O7yO77O7y))y#))#)77yycQ)Q)##u0qQQQ0uQQQPrI7iQ:2h2v'X''x''11111mX}{vCC2g{vvvX'T'T1'1''mvCgghh4hjjwj4hjjj<$l$l<<2h9942Cvv{{51nxm@v5m5'1111T}mmX{vvpvX'5111n;;=Un1mvpvv{gghgMghhjhOl$O<<>h4j92CXv{{51xxm@{mmmT111''m'}'p{v3{X']111;;;=;;1XXvv{vChhggghhjj<$l$<294j42CXv({mn1xmvv15mxD11'T'mmmvv{vvXX1511;;;=;;1'vvv{{p2hhMghhjjl44wwW92CCC3vXmm'v32>99wj<<>ppgg49w22gCgC33vvX{C9jWw<$l$ll$zzziii~iRRiRiRizPIIrIr::::F<:PRRQcRRRRRilF<jj<<<<<:PRRiPRRRRRQIF<wwwwww9j2g[{3X'11L]L1;dL]1]T'T1L11LLJ1dJJ]']L]1L]'X'Gv>wPPRRRPRRRRuilFjjII|OyQRiR0", +"=nU=;n1555@(5m51]1mXv{v{mv@@@@@M(((ssG@Gvm1k%%%==11dk%AAAAAAeA%AAAAe%AAA%A%A%%kk=oo8d1111111xXvv{CCC{{C{pgg22hww44gvX''XXv{g2w<ghliR~uRiiiRQR)P:::P)F4jw944{vXvvpC>9w<$lOOl:lzzz,ziz:z:z:,,,:::Pziiiz:P):):OO^&hB{3{CggM2222G'LL]'''''G33XX'''Xv{g2>gggXX']DJL]LS'LD]XCg222ghI_~u~~RiPii:IIPP,:POjlQ#RQ<", +"~=U=UUUo155mmm']5mvpgCg{g{M{MssssssGGS]]']JUo==;U88ookk%%AAAAAA%%%A%%k%%%%%%k=ooo888111T'1m'vvp>h2g24p{CCg>>>44h9h4gCC>>g9wgh2>gpCCCg>g>>49999gC3C>24w<g3mDJJLSm''''C29wh2g9:_VZV~~uz:IFjF,P::r7j7c#RR ", +"*U==UU==;xmmm]mxmmvCggMgggg{sv@@mmmmm]1]]]1;UUU;;d;UU=k%kA%AA%%k=%%%k=kkk%k%k=UUd8d11T'm'x'vv{g>h224gpCCCg>2>24h99hggg2>hww$l:II::::zziRRiRi)P)PrPP):r:r:):ll>CCCgg2g2>229999jjwW$l::z)iPPiPPPzRi)RiRRP:IrI)))I7|7Irjj9hB!<$O7^jj2vGGMg&jjh2M3333vCg2999hj92gg99jjll,P::F>CC{g2g2222>9999jjwW$lI,i)PPPPicPiiRQRRRRP:::r):):7777:jj9hBjgC{g>CC}ndd1JJ1ddd8d1''Xm{X'm''T'11ndnnU;n]v3v{v'T111no;Ud111'''vvvpgh4jjwwjwhhvvvvvvChwwjjh99wwO$IIz:z,zRRRRiPP:):PzP:rr7||7II7|7O77||||^hhB&h^jjjhMv{{gMBBh>9CCgggpv''m']]L'']1L''Xmp3{}vvXmm1]111d;;J'v{CpCv'T111n11111TT1Tmmv{C22jj<<|wjg{}XX'v{C9wCggggM{{X{{C{v{vvvvmXvv{C{vvvv{vXm'TxLJn]Xv{>C{vT111TmmXXX''111''mvC24jj<$$C>gggg{vvvvpC3v3vXpv}v3CC{{{vpv{XX'L]]JD1mv3>gCv''111X'''m''11Tx'mv{h>jggCC{{{{{{{{vv3vvpCggp{p{pCvvXXT''JD]mvv>C{X'11'1XXX'X''1111'mvCghhj>422222Mggg99hggg>2g{{33vmm'm}v{{CCmx11x''XXXXvX1dU81'v{ggg2gg>h<>g>>wO$OO<<>>2w<$$jhhBBhh!<h42g9jC{vvGX''G{h9hjjj9hjjj<<hMBC{{ChjF<92M{M922g{CMgggggv{2gg{GB|rQqtY ", +" {1([({Cghjhbb[bB&&j[[[{{([M{{[(((ssm@@51xxm5]Jn;UnL]nn;;=U;UU==;==%k==;nDxxmmmx555vm(@(ssss@Gs5]n1m1DJS'vX'1dd]SSSDnJ]mm333mS1n;8Uoo;811LL1LL]]L]''s@G']1DDL]SS{{({svG@vvG'Ldd8;=;=U;JLL]11]'mD11]L'GvXX3GG3GSXL]SG3SX3C2>h9hMggG3MM2>2MvC2CC{sB|rQttt ", +" 61mg{v{Mh^hhbbb&&&&b[[({[[Ms{((((sv@@5]xxx'm]1n;U81]J;;U;=;=;U=;=k%k=;;n]S]SSm]5m5@s(((GssssGsxx;J]]1J]'X''Jn8xSmSSJD]GG333']J;Uo==oU8dJLJJLL]]L''mv{s']dJJL]SSsssGGX'S'X']LJddn=;UU81LL]1]''X11D]T'X{vXv{s3G]XL]'G3'33CBh&99MCC{MC2299M3ChMMBB&|rQtt* ", +" /m]{{v{ghj&b&&&&&^j&[{{(s({vs(((@@@vmmmxx]xxDD;;U;JJnn;;;;;UU=;=;====;;nDxxxm5m@5@X@sGs@mS@@GG]JnJDdnUnJ'''D1d]S@SD;nJxSXXG']D;UU==oUUJL]LL''m]]L''GmG]LJJDL]DDm'mS]JJJLD]JJdd8;UU;nn1]]]'m''m'''mXXv3C3{33XXS]]]G33G33g92gv'}']11]11Uooo=====oo8ddd8UkkAAA%AA%AeAAAAAAAAAAA%AA%%AAAAAeAA%Akk=kk%%%%%%%AA%A%%%%kk=U;;nU;UdDJ'XX33{C{333C{2g2gggv333GDn;UUUJ]XvCg2949hjhhhB2CMC{C{{sCgBjjF2>2>3v333]nUUUUJLXvg22wwWjjwjjBh>MgMMgMg22j9{3333]DU=UUJ]X3C29ww9jgGGXGGLJJnnJLS3MBh>jj99wjjj92222922gG''XX]LdLL]''Mgh<2gCXXSSXL]L]SSGXghjM2922gXXGGGC33vssg2222MCsGCC333C{MM&hF<7:PPcPRQccccPcIIPccPPPcc))ccc))yy)#RQQQQ)#y##))Q##c)###0000####0#Q###yy77|^jj&bBh&||7rrOB&7Q0y77qY ", +" /bb&B&^jhCCCg3]']}vvC{X'mmT'x11dUUUU===oU8JL]]G333XX]LDL]]LDJ;k==UU8nLDL;nxDn;;;JJDJdJd]]ss[{(sGsG33333GsC{C92BBB222ggg{[gCC33Cggh&&CvmX{{CgCv1oU;JJ;=o88dLS'33333X]]DLD]LDJn=k=U88nL]];nDDn;;;JDJJJdd]Sss{[{ssG@33G333{CCC22BhB>22MMC{{MC333{MMBh&29jjjjhBB|<<||||7)cQcQcQQ##yy7|^|&&BM[GSSSSSSSsB|!(r ", +" bb!!!!!!!b!!!bbb((G([[(@(@@xDn;;nnnnDDDDnDnDDn;k%%AAA%A%%%%%%k%k%kk%k%%k%%%%k%%%%k%%%%%%AAA%%%k;k;=DLXX3ssM22jjj2hBM22>2292jjjjjj<jjj