From 541ae9d2e7e334dce156bfbbe59d214deb4e2163 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Sat, 18 Mar 2017 18:29:12 -0700 Subject: [PATCH 01/18] attempt to build against mapnik 3.0.13 mason package --- .travis.yml | 8 +++--- bootstrap.sh | 63 ++++++++++++++++-------------------------- scripts/setup_mason.sh | 2 +- 3 files changed, 29 insertions(+), 44 deletions(-) diff --git a/.travis.yml b/.travis.yml index 92abdfefb..3b57272a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ matrix: # note: only using ccache for CC is intentional here to # workaround an odd bug in distutils that manifests when only `ccache` is used to link # because distutils also has a bug whereby CC is used to compile instead of CXX, this works :) - env: JOBS=8 CXX="clang++-3.8 -Qunused-arguments" CC="ccache clang-3.8" + env: JOBS=8 CXX="clang++-3.9 -Qunused-arguments" CC="ccache clang-3.9" addons: apt: sources: [ 'ubuntu-toolchain-r-test'] @@ -55,9 +55,9 @@ before_install: - export COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n') - | if [[ $(uname -s) == 'Linux' ]]; then - export LDSHARED=$(python -c "import os;from distutils import sysconfig;print sysconfig.get_config_var('LDSHARED').replace('cc ','clang++-3.8 ')"); - ./.mason/mason install clang 3.8.0 - export PATH=$(./.mason/mason prefix clang 3.8.0)/bin:${PATH} + export LDSHARED=$(python -c "import os;from distutils import sysconfig;print sysconfig.get_config_var('LDSHARED').replace('cc ','clang++-3.9 ')"); + ./.mason/mason install clang++ 3.9.1 + export PATH=$(./.mason/mason prefix clang++ 3.9.1)/bin:${PATH} which clang++ else sudo easy_install pip; diff --git a/bootstrap.sh b/bootstrap.sh index 7c41fb97d..303ffc637 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -7,51 +7,36 @@ function install() { MASON_PLATFORM_ID=$(mason env MASON_PLATFORM_ID) if [[ ! -d ./mason_packages/${MASON_PLATFORM_ID}/${1}/ ]]; then mason install $1 $2 - # the rm here is to workaround https://github.com/mapbox/mason/issues/230 - rm -f ./mason_packages/.link/mason.ini mason link $1 $2 fi } -ICU_VERSION="55.1" +ICU_VERSION="57.1" function install_mason_deps() { - FAIL=0 - install mapnik latest & - install ccache 3.2.4 & - install jpeg_turbo 1.5.0 libjpeg & - install libpng 1.6.24 libpng & - install libtiff 4.0.6 libtiff & - install libpq 9.5.2 & - install sqlite 3.14.1 libsqlite3 & - install expat 2.2.0 libexpat & - install icu ${ICU_VERSION} & - install proj 4.9.2 libproj & - install pixman 0.34.0 libpixman-1 & - install cairo 1.14.6 libcairo & - install protobuf 2.6.1 & - # technically protobuf is not a mapnik core dep, but installing - # here by default helps make mapnik-vector-tile builds easier - install webp 0.5.1 libwebp & - install gdal 2.1.1 libgdal & - install boost 1.61.0 & - install boost_libsystem 1.61.0 & - install boost_libfilesystem 1.61.0 & - install boost_libprogram_options 1.61.0 & - install boost_libregex_icu 1.61.0 & - # technically boost thread and python are not a core dep, but installing - # here by default helps make python-mapnik builds easier - install boost_libthread 1.61.0 & - install boost_libpython 1.61.0 & - install freetype 2.6.5 libfreetype & - install harfbuzz 1.3.0 libharfbuzz & - for job in $(jobs -p) - do - wait $job || let "FAIL+=1" - done - if [[ "$FAIL" != "0" ]]; then - exit ${FAIL} - fi + install mapnik 3.0.13 + install jpeg_turbo 1.5.1 libjpeg + install libpng 1.6.28 libpng + install libtiff 4.0.7 libtiff + install libpq 9.6.2 + install sqlite 3.17.0 libsqlite3 + install expat 2.2.0 libexpat + install icu ${ICU_VERSION} + install proj 4.9.3 libproj + install pixman 0.34.0 libpixman-1 + install cairo 1.14.8 libcairo + install webp 0.6.0 libwebp + install libgdal 2.1.3 libgdal + install boost 1.63.0 + install boost_libsystem 1.63.0 + install boost_libfilesystem 1.63.0 + install boost_libprogram_options 1.63.0 + install boost_libregex_icu57 1.63.0 + install freetype 2.7.1 libfreetype + install harfbuzz 1.4.2-ft libharfbuzz + # deps needed by python-mapnik (not mapnik core) + install boost_libthread 1.63.0 + install boost_libpython 1.63.0 } function setup_runtime_settings() { diff --git a/scripts/setup_mason.sh b/scripts/setup_mason.sh index c9cbc2b53..3ccd57bc4 100755 --- a/scripts/setup_mason.sh +++ b/scripts/setup_mason.sh @@ -4,7 +4,7 @@ set -eu set -o pipefail # we pin the mason version to avoid changes in mason breaking builds -MASON_VERSION="new-pkgs" +MASON_VERSION="181a39c" function setup_mason() { if [[ ! -d ./.mason ]]; then From 64a18f44e9c086d755cddecdb3e043af87f33ffd Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 09:21:40 -0700 Subject: [PATCH 02/18] use latest mapnik 3.0.x package that disables the soname - The 3.0.13-1 package builds mapnik without a soname - This takes advantage of that by expecting a non-versioned, non-symlink library name on linux - This is important when packaging portable binaries to avoid copying only a symlink and leaving a broken install --- bootstrap.sh | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 303ffc637..346f34b7c 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -14,7 +14,7 @@ function install() { ICU_VERSION="57.1" function install_mason_deps() { - install mapnik 3.0.13 + install mapnik 3.0.13-1 install jpeg_turbo 1.5.1 libjpeg install libpng 1.6.28 libpng install libtiff 4.0.7 libtiff diff --git a/setup.py b/setup.py index a0654de29..0154bd7f7 100755 --- a/setup.py +++ b/setup.py @@ -137,7 +137,7 @@ def run(self): if sys.platform == 'darwin': base_f = 'libmapnik.dylib' else: - base_f = 'libmapnik.so.3.0' + base_f = 'libmapnik.so' f = os.path.join(lib_path, base_f) if not os.path.exists(os.path.join('mapnik', 'lib')): os.makedirs(os.path.join('mapnik', 'lib')) From 2216c1e3afd0a610d3fd370fd3e167c3ac4cf9a0 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 09:32:40 -0700 Subject: [PATCH 03/18] upgrade mason and method used to install mason --- scripts/setup_mason.sh | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/scripts/setup_mason.sh b/scripts/setup_mason.sh index 3ccd57bc4..50722bd41 100755 --- a/scripts/setup_mason.sh +++ b/scripts/setup_mason.sh @@ -4,18 +4,13 @@ set -eu set -o pipefail # we pin the mason version to avoid changes in mason breaking builds -MASON_VERSION="181a39c" +MASON_VERSION="v0.9.0" function setup_mason() { - if [[ ! -d ./.mason ]]; then - git clone https://github.com/mapbox/mason.git ./.mason - (cd ./.mason && git checkout ${MASON_VERSION}) - else - echo "Updating to latest mason" - (cd ./.mason && git fetch && git checkout ${MASON_VERSION}) - fi + mkdir ./mason + curl -sSfL https://github.com/mapbox/mason/archive/${MASON_VERSION}.tar.gz | tar --gunzip --extract --strip-components=1 --exclude="*md" --exclude="test*" --directory=./mason export MASON_HOME=$(pwd)/mason_packages/.link - export PATH=$(pwd)/.mason:$PATH + export PATH=$(pwd)/mason:${PATH} export CXX=${CXX:-clang++} export CC=${CC:-clang} } From 794d6d2fec2bc977d10383f5694862a4332c7a7e Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 09:35:35 -0700 Subject: [PATCH 04/18] fix mason install --- .travis.yml | 4 ++-- scripts/setup_mason.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3b57272a1..09e3cf8a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,8 +56,8 @@ before_install: - | if [[ $(uname -s) == 'Linux' ]]; then export LDSHARED=$(python -c "import os;from distutils import sysconfig;print sysconfig.get_config_var('LDSHARED').replace('cc ','clang++-3.9 ')"); - ./.mason/mason install clang++ 3.9.1 - export PATH=$(./.mason/mason prefix clang++ 3.9.1)/bin:${PATH} + mason install clang++ 3.9.1 + export PATH=$(mason prefix clang++ 3.9.1)/bin:${PATH} which clang++ else sudo easy_install pip; diff --git a/scripts/setup_mason.sh b/scripts/setup_mason.sh index 50722bd41..508a7a697 100755 --- a/scripts/setup_mason.sh +++ b/scripts/setup_mason.sh @@ -7,7 +7,7 @@ set -o pipefail MASON_VERSION="v0.9.0" function setup_mason() { - mkdir ./mason + mkdir -p ./mason curl -sSfL https://github.com/mapbox/mason/archive/${MASON_VERSION}.tar.gz | tar --gunzip --extract --strip-components=1 --exclude="*md" --exclude="test*" --directory=./mason export MASON_HOME=$(pwd)/mason_packages/.link export PATH=$(pwd)/mason:${PATH} From 7f39f6e838e72f4b6d33d36c72cb9bb67b8416f2 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 09:53:07 -0700 Subject: [PATCH 05/18] update to latest mason release --- scripts/setup_mason.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_mason.sh b/scripts/setup_mason.sh index 508a7a697..da188a40c 100755 --- a/scripts/setup_mason.sh +++ b/scripts/setup_mason.sh @@ -4,7 +4,7 @@ set -eu set -o pipefail # we pin the mason version to avoid changes in mason breaking builds -MASON_VERSION="v0.9.0" +MASON_VERSION="v0.10.0" function setup_mason() { mkdir -p ./mason From 807c93716fc938a5ccdd20ac7c0da2029a9f6735 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 09:56:06 -0700 Subject: [PATCH 06/18] add -Qunused-arguments to CC as well to avoid verbose build warnings --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 09e3cf8a1..e7f4dbd55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ matrix: # note: only using ccache for CC is intentional here to # workaround an odd bug in distutils that manifests when only `ccache` is used to link # because distutils also has a bug whereby CC is used to compile instead of CXX, this works :) - env: JOBS=8 CXX="clang++-3.9 -Qunused-arguments" CC="ccache clang-3.9" + env: JOBS=8 CXX="clang++-3.9 -Qunused-arguments" CC="ccache clang-3.9 -Qunused-arguments" addons: apt: sources: [ 'ubuntu-toolchain-r-test'] From e859c6622949bc73160ea9726ecde0d22a3ea91b Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 4 May 2017 10:03:06 -0700 Subject: [PATCH 07/18] remove crash handling to make it easier to see errors in logs --- .travis.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index e7f4dbd55..6d4b3628b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,15 +84,10 @@ install: - python setup.py install --prefix ${PYTHONUSERBASE} before_script: - - ulimit -c unlimited -S - - RESULT=0 - - python test/run_tests.py || RESULT=$? - - ls -l . - - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(which python) $i -ex "thread apply all bt" -ex "set pagination 0" -batch; done; - - if [[ ${RESULT} != 0 ]]; then exit $RESULT; fi + - python test/run_tests.py + - python test/visual.py -q script: - - python test/visual.py -q - | if [[ ${COMMIT_MESSAGE} =~ "[publish]" ]]; then python setup.py bdist_wheel From 67ea2295170e7a41f2287015e867ab31b7e1471d Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 10:26:38 -0700 Subject: [PATCH 08/18] add postgis, remove unused 3rd arg --- bootstrap.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 346f34b7c..1bb36bc02 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -15,28 +15,29 @@ ICU_VERSION="57.1" function install_mason_deps() { install mapnik 3.0.13-1 - install jpeg_turbo 1.5.1 libjpeg - install libpng 1.6.28 libpng - install libtiff 4.0.7 libtiff + install jpeg_turbo 1.5.1 + install libpng 1.6.28 + install libtiff 4.0.7 install libpq 9.6.2 - install sqlite 3.17.0 libsqlite3 - install expat 2.2.0 libexpat + install sqlite 3.17.0 + install expat 2.2.0 install icu ${ICU_VERSION} - install proj 4.9.3 libproj - install pixman 0.34.0 libpixman-1 - install cairo 1.14.8 libcairo - install webp 0.6.0 libwebp - install libgdal 2.1.3 libgdal + install proj 4.9.3 + install pixman 0.34.0 + install cairo 1.14.8 + install webp 0.6.0 + install libgdal 2.1.3 install boost 1.63.0 install boost_libsystem 1.63.0 install boost_libfilesystem 1.63.0 install boost_libprogram_options 1.63.0 install boost_libregex_icu57 1.63.0 - install freetype 2.7.1 libfreetype - install harfbuzz 1.4.2-ft libharfbuzz + install freetype 2.7.1 + install harfbuzz 1.4.2-ft # deps needed by python-mapnik (not mapnik core) install boost_libthread 1.63.0 install boost_libpython 1.63.0 + install postgis 2.3.2-1 } function setup_runtime_settings() { From 4b5e5333a269b3fc9588a6bae81148c13aa37d27 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 11:56:49 -0700 Subject: [PATCH 09/18] update for mapnik 3.0.15 --- bootstrap.sh | 2 +- scripts/setup_mason.sh | 2 +- setup.py | 40 ++++++++---------- test/python_tests/image_tiff_test.py | 2 +- .../images/support/dataraster_coloring.png | Bin 2879 -> 2905 bytes .../images/support/raster_warping.png | Bin 1464 -> 1444 bytes ...aster_warping_does_not_overclip_source.png | Bin 1099 -> 1115 bytes 7 files changed, 21 insertions(+), 25 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 1bb36bc02..0d6dde9eb 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -14,7 +14,7 @@ function install() { ICU_VERSION="57.1" function install_mason_deps() { - install mapnik 3.0.13-1 + install mapnik 3.0.15 install jpeg_turbo 1.5.1 install libpng 1.6.28 install libtiff 4.0.7 diff --git a/scripts/setup_mason.sh b/scripts/setup_mason.sh index da188a40c..b0bc70223 100755 --- a/scripts/setup_mason.sh +++ b/scripts/setup_mason.sh @@ -4,7 +4,7 @@ set -eu set -o pipefail # we pin the mason version to avoid changes in mason breaking builds -MASON_VERSION="v0.10.0" +MASON_VERSION="1150c38" function setup_mason() { mkdir -p ./mason diff --git a/setup.py b/setup.py index 0154bd7f7..763974391 100755 --- a/setup.py +++ b/setup.py @@ -120,14 +120,10 @@ def run(self): '-lmapnik-json', ] + ['-l%s' % i for i in get_boost_library_names()]) -# Dynamically make the mapnik/paths.py file if it doesn't exist. -if os.path.isfile('mapnik/paths.py'): - create_paths = False -else: - create_paths = True - f_paths = open('mapnik/paths.py', 'w') - f_paths.write('import os\n') - f_paths.write('\n') +# Dynamically make the mapnik/paths.py file +f_paths = open('mapnik/paths.py', 'w') +f_paths.write('import os\n') +f_paths.write('\n') input_plugin_path = check_output([mapnik_config, '--input-plugins']) font_path = check_output([mapnik_config, '--fonts']) @@ -147,30 +143,32 @@ def run(self): input_plugin_files = os.listdir(input_plugin_path) input_plugin_files = [os.path.join( input_plugin_path, f) for f in input_plugin_files] - if not os.path.exists(os.path.join('mapnik', 'plugins', 'input')): - os.makedirs(os.path.join('mapnik', 'plugins', 'input')) + if not os.path.exists(os.path.join('mapnik', 'lib', 'mapnik', 'input')): + os.makedirs(os.path.join('mapnik', 'lib', 'mapnik', 'input')) for f in input_plugin_files: try: shutil.copyfile(f, os.path.join( - 'mapnik', 'plugins', 'input', os.path.basename(f))) + 'mapnik', 'lib', 'mapnik', 'input', os.path.basename(f))) except shutil.Error: pass font_files = os.listdir(font_path) font_files = [os.path.join(font_path, f) for f in font_files] - if not os.path.exists(os.path.join('mapnik', 'plugins', 'fonts')): - os.makedirs(os.path.join('mapnik', 'plugins', 'fonts')) + if not os.path.exists(os.path.join('mapnik', 'lib', 'mapnik', 'fonts')): + os.makedirs(os.path.join('mapnik', 'lib', 'mapnik', 'fonts')) for f in font_files: try: shutil.copyfile(f, os.path.join( - 'mapnik', 'plugins', 'fonts', os.path.basename(f))) + 'mapnik', 'lib', 'mapnik', 'fonts', os.path.basename(f))) except shutil.Error: pass - if create_paths: - f_paths.write( - 'mapniklibpath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "plugins")\n') - f_paths.write("inputpluginspath = os.path.join(mapniklibpath,'input')\n") - f_paths.write("fontscollectionpath = os.path.join(mapniklibpath,'fonts')\n") -elif create_paths: + f_paths.write( + 'mapniklibpath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "lib")\n') + f_paths.write("inputpluginspath = os.path.join(mapniklibpath, 'mapnik', 'input')\n") + f_paths.write("fontscollectionpath = os.path.join(mapniklibpath, 'mapnik', 'fonts')\n") + f_paths.write( + "__all__ = [mapniklibpath,inputpluginspath,fontscollectionpath]\n") + f_paths.close() +else: if os.environ.get('LIB_DIR_NAME'): mapnik_lib_path = lib_path + os.environ.get('LIB_DIR_NAME') else: @@ -181,8 +179,6 @@ def run(self): "inputpluginspath = '{path}'\n".format(path=input_plugin_path)) f_paths.write( "fontscollectionpath = '{path}'\n".format(path=font_path)) - -if create_paths: f_paths.write( "__all__ = [mapniklibpath,inputpluginspath,fontscollectionpath]\n") f_paths.close() diff --git a/test/python_tests/image_tiff_test.py b/test/python_tests/image_tiff_test.py index a924b2728..b1915c111 100644 --- a/test/python_tests/image_tiff_test.py +++ b/test/python_tests/image_tiff_test.py @@ -256,7 +256,7 @@ def test_tiff_rgba8_compare_stripped(): def test_tiff_rgba8_compare_tiled(): filepath1 = '../data/tiff/ndvi_256x256_rgba8_striped.tif' - filepath2 = '/tmp/mapnik-tiff-rgba8-stripped.tiff' + filepath2 = '/tmp/mapnik-tiff-rgba8-tiled.tiff' im = mapnik.Image.open(filepath1) im.save(filepath2, 'tiff:method=tiled') im2 = mapnik.Image.open(filepath2) diff --git a/test/python_tests/images/support/dataraster_coloring.png b/test/python_tests/images/support/dataraster_coloring.png index da3cac4b1701c32ca263d289f5bb5d281dbc362b..c42d1dbfe17623c67d1f0f8f529c4ebd89b2f451 100644 GIT binary patch delta 2826 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 diff --git a/test/python_tests/images/support/raster_warping.png b/test/python_tests/images/support/raster_warping.png index 7a6dea7c00a0a7e3e175429ea3a47d5766eb18c5..bee83211f1270d8de670310077ac56eebd984b07 100644 GIT binary patch delta 1321 zcmV+^1=jkw3#1E>BrI!5L_t(|obA_virY#SMbZ5KPv?>F8XV(x+p<)FB>SMjam%;7d8Ur>8)gcJI1 zJoWgs&zHw5@AcS)F{OH-ny>p^)Eng>_0V*l>aDVqdPsjdU-f3$Q9UM|tJ~d_yJZLU zm~_tWw^Q$!jp`xkn$^4JMfFg$M)l75K|K(yQN44XsK=o-`r6w4?)KjB9)I3a9=#N4 zbf4_^s6Trt^#G(leYeN2U)y85qi*Un>X$B!uD-cxeD_f57bG2Bb#v3Xe;DO+drxwkaXqh`+jQ6ho~Q@bhfJd{?XPSwtk?}**f}` zH`($-?)gCKmm-bo*h}8%-5+k`1G)X*)Gtr^w5@+PdZ>4Quvb6e-VdXGdD17nyZ5PW z`A~a2g!&~)Tl#eO{Bry{U-ivgO8qjWcdGAY3H3{sZmaKMN%c$D+SU7CUOfP}`tRq7dYHQA7r+cZ123qD zsq1|SIR2BU2dVKDn>zaMWP^H$>KcEwt0Vs&K2(oTb9Cgsj{39tKs`9kSG`FFs7I!G zJ92YJ{n@;!9+~EA+Q;wflJyQ7+U=sCMXGXBF9BZ$JXDWUW4{RCAN44;&rv&YHmL`!&ki3xR*zYZpHMw$ zIebF(u;uUx)dQE~Csq$#j-QFu$FO4cJBNqr!&ssE9m9|6Be`<*yM>q4$8yE$cM5N* z59UhM?-Dkt59bQi?+`vxAJA6WtKT1dq&}b-d-Yk3d{3~u`q1|NS9Z(qd-wM^d@iLv zZvUdf1ROss&f&wNMjg8^0GO12;bCD89~S5MVR4Qh7Uv59_{;Ib;v7EkmoESS09c;? fJCk7rK^EM9J|qtbjfi-p00000NkvXXu0mjfqsr9* delta 1345 zcmV-H1-|;E3%CoABrJbPL_t(|obA_vYU4;6M$x?gOZPAhh7jD2EK7Aus&nA7%kGel zrSEq$Utf_?FMq&GfBt;^secC`;tK#4^8dkq@3;T0{cVB6{5Gk*v8NPVDJ`eHci&-8^s zu0F__8u5JI{kiYH$0Ihug}wVXPJMLR_a$<~mj*Xe4}Vj0_1HwcOHNdeOxLR3D+j5E zq-$31mIKry(lz_OpK`x^s2-B8+4udF`(>wkK)P@Bw%Op>3#*5t`&Mq9Cw{)1dLX)g z_2zk@9*5TG)%K3u@ex03Y4uRFc4uw&=sUTc`o&9+p6&7HPCwo5==-{a`o&8ltM6?Z z&mKzsa(|=|m3KFlpAVycG17>tdz;qdq0}!%8qu@;zxw|_xvQgp=4tAeBF)m{9*(@D zW3TmO^$U>dw%o#=yBT}QZ~FO*)-OT2WA&Z?s(wJy-K%f>pXvuA-L?9*e^oyq>CV;n z{nEQ1q<)yv)v9m&rM7(^bMwp4_3cGX>X%$gq_m~SR_lAYoo5eO znx*YelD*fpkl=R8r5LierSHXGC<(Y5=zrE15#;qjvC@#vb>`{e-jh;+T`&2pf6 zOuAO}UO7QMDqW*`r<|l7mgcYCC?~4NrE660loQqC(sio0$_eUGY5wYsa*}#jnzQfw zDEG+#_1H95^&T0h9-HQ>-Xnw6gVS8qdw(QQk4|$`?~p(}I?YqPMFy(Jrn##3$Uybj zG*|T=8LS?h=BVBwk;lug2Pnr+s2-sl|16e#R`n1yzIt=BS^AmPW7PQS&7EcMXI%N2 zZTj%KPxao;aMowM{j;mbsBzU>JK9R0^%V6WHMV+hM|$To-|e#>rXHlmRd4M`o`1tH zwtmohlp5FBn;XG%*r*fx!c-r%P^ix1TUR9n5jqdfaOD?W$a>LIGB z-rbozhmGnHs;l1K*;fDjo7F>9Q@y*93xHTXN;!OD^+4qdfKWY9`4V6v^;qTb3Du*O<0n#&R)4+#7^EJk zd;t)vM=Hlpq#mgpKY@Cn@&!Po9;X~Xp?aWl{6y-3$`=8#dYp3nMCx(sxZ`&0ysaLv zK0kc;NIhmbenR!2<>(33xhs8O5Sk&VX9X~9}k;B3qJuJ@g!{U4a zz~US~@R#F<#W{Z9FJAxv0I)p&Dw9zKJdt1o7x3DDlRX0!w$87k00000NkvXXu0mjf Dfb8kV diff --git a/test/python_tests/images/support/raster_warping_does_not_overclip_source.png b/test/python_tests/images/support/raster_warping_does_not_overclip_source.png index 0d6ccc5ab1b67a4147c536a985aca3594c601b62..179ea2d0a6eb1f6ee15b52222b734e4ba371a784 100644 GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD1B~KT}kcv5PuV3tX8F22FJ$~?rO05f`=aB#2!q7SB@BPULK^&iL>L4cE~;@i z2psU3%*r6)$)J!kiGd+~h6;ldm^>iK!f*(P)HoYB4oIqTG8D9NGBM0aZ30?1Cv_3f z_8v6`0SGdSWN=}0>tb=xcwjx5{lU?-m01nT#kdZA3QDO z_H|8v-?;S%^9N6ZggPb#rWVcy37|1a4l@`y7!sKhesT&kaQh>17!`aNSb*tr!ylkh z0iaTS@w<;U>oMLCWsH~%bVeeR0s~M6__$`2AiF8@23BF+J2PjL+J+|#s#`U3=gc$IT#8=fq~4; z%n;+t0JIr|-ZU{Vlq+vou_>>kkKZ2>?= zUz84m5`#MjLyN8iFz)t>@d6`84yX+ob+a;9IDyU2S;)ZP&It?|7}5pB_+m(;!pVOO YR!d#mY+s3$0SgTVPgg&ebxsLQ0AblUPyhe` literal 1099 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD1Ax{^_kcv5PuX%Spb`WrI zy#N1_T$SMkgB!_z*Q}}%T+n*ZW2LLz)yJGEw(sN^cJwni%os(3AOvpAX0WM?Jmxem57{tQPN z3>XC%53xA#0IgwE@L|xgOJquT$qD7y135pT92SsLrb8?b-cE|Hxu(V--^y@Jg+U3J zPB|D7nG}E_(!d~KR={wt$L5HP!G1>O4+l>;pJo0mrNJQWCYL5Q&@cB{o;ix=5h5~h9K+I-h=y6~GIthf{oMvQj zQ(_QM1EX(Gf#K8R0+WO&fhueRNjV`&y;%klftd8>7()lso!kWs4EKR1nI$l^Fz!oT zz+jQi6KXoL10?|Lkq*UC<9=G z%ohSj4lsToC|ZNzKv*{m!wqL7>mkm{nFw^m8%3B0fR=w_w{-Y>c7k$VEU=JZ@O1Ta JS?83{1OQK9MaKXD From 01e56074d9e349cb8b8cd417ac51036c72335764 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 12:37:54 -0700 Subject: [PATCH 10/18] fix package_data --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 763974391..5c515cd3d 100755 --- a/setup.py +++ b/setup.py @@ -265,7 +265,7 @@ def run(self): 'nose', ], package_data={ - 'mapnik': ['lib/*', 'plugins/*/*', 'share/*/*'], + 'mapnik': ['lib/*/*/*', 'share/*/*'], }, test_suite='nose.collector', cmdclass={ From c582fb1917a53e4ef8696f588a1f0062434ffa71 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 12:39:18 -0700 Subject: [PATCH 11/18] ensure we copy libmapnik too --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5c515cd3d..a19fbb36e 100755 --- a/setup.py +++ b/setup.py @@ -265,7 +265,7 @@ def run(self): 'nose', ], package_data={ - 'mapnik': ['lib/*/*/*', 'share/*/*'], + 'mapnik': ['lib/*.*', 'lib/*/*/*', 'share/*/*'], }, test_suite='nose.collector', cmdclass={ From 6833fe181746cc26fbe7c6ed390082e54087a98f Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 13:01:28 -0700 Subject: [PATCH 12/18] update pgraster test fixtures - refs #155 --- ...subquery-data_16bsi_subquery-16BSI-135.png | Bin 87 -> 90 bytes ...subquery-data_16bui_subquery-16BUI-126.png | Bin 87 -> 90 bytes ...ata_subquery-data_2bui_subquery-2BUI-3.png | Bin 87 -> 90 bytes ...a_subquery-data_32bf_subquery-32BF-450.png | Bin 87 -> 90 bytes ...subquery-data_32bsi_subquery-32BSI-264.png | Bin 87 -> 90 bytes ...subquery-data_32bui_subquery-32BUI-255.png | Bin 87 -> 90 bytes ...ta_subquery-data_4bui_subquery-4BUI-15.png | Bin 87 -> 90 bytes ..._subquery-data_64bf_subquery-64BF-3072.png | Bin 87 -> 90 bytes ...ta_subquery-data_8bsi_subquery-8BSI-69.png | Bin 87 -> 90 bytes ...ta_subquery-data_8bui_subquery-8BUI-63.png | Bin 87 -> 90 bytes .../rgba_8bui-rgba_8bui C O_2 Cl-2-1-box1.png | Bin 12436 -> 5248 bytes .../rgba_8bui-rgba_8bui C O_2 Cl-2-1-box2.png | Bin 3647 -> 2158 bytes ...ba_8bui-rgba_8bui C O_2 Sc Cl-2-1-box1.png | Bin 12436 -> 5248 bytes ...ba_8bui-rgba_8bui C O_2 Sc Cl-2-1-box2.png | Bin 3647 -> 2158 bytes .../rgba_8bui-rgba_8bui C O_2 Sc-2-0-box1.png | Bin 12436 -> 5248 bytes .../rgba_8bui-rgba_8bui C O_2 Sc-2-0-box2.png | Bin 3637 -> 2170 bytes .../rgba_8bui-rgba_8bui C O_2-2-0-box1.png | Bin 12436 -> 5248 bytes .../rgba_8bui-rgba_8bui C O_2-2-0-box2.png | Bin 3637 -> 2170 bytes ...ui-rgba_8bui C T_16x16 O_2 Cl-2-1-box1.png | Bin 12436 -> 5248 bytes ...ui-rgba_8bui C T_16x16 O_2 Cl-2-1-box2.png | Bin 3650 -> 2158 bytes ...rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box1.png | Bin 12436 -> 5248 bytes ...rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box2.png | Bin 3650 -> 2158 bytes ...ui-rgba_8bui C T_16x16 O_2 Sc-2-0-box1.png | Bin 12436 -> 5248 bytes ...ui-rgba_8bui C T_16x16 O_2 Sc-2-0-box2.png | Bin 3638 -> 2137 bytes ..._8bui-rgba_8bui C T_16x16 O_2-2-0-box1.png | Bin 12436 -> 5248 bytes ..._8bui-rgba_8bui C T_16x16 O_2-2-0-box2.png | Bin 3638 -> 2137 bytes 26 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_16bsi_subquery-16BSI-135.png b/test/python_tests/images/support/pgraster/data_subquery-data_16bsi_subquery-16BSI-135.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_16bui_subquery-16BUI-126.png b/test/python_tests/images/support/pgraster/data_subquery-data_16bui_subquery-16BUI-126.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_2bui_subquery-2BUI-3.png b/test/python_tests/images/support/pgraster/data_subquery-data_2bui_subquery-2BUI-3.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_32bf_subquery-32BF-450.png b/test/python_tests/images/support/pgraster/data_subquery-data_32bf_subquery-32BF-450.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_32bsi_subquery-32BSI-264.png b/test/python_tests/images/support/pgraster/data_subquery-data_32bsi_subquery-32BSI-264.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_32bui_subquery-32BUI-255.png b/test/python_tests/images/support/pgraster/data_subquery-data_32bui_subquery-32BUI-255.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_4bui_subquery-4BUI-15.png b/test/python_tests/images/support/pgraster/data_subquery-data_4bui_subquery-4BUI-15.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_64bf_subquery-64BF-3072.png b/test/python_tests/images/support/pgraster/data_subquery-data_64bf_subquery-64BF-3072.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_8bsi_subquery-8BSI-69.png b/test/python_tests/images/support/pgraster/data_subquery-data_8bsi_subquery-8BSI-69.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/data_subquery-data_8bui_subquery-8BUI-63.png b/test/python_tests/images/support/pgraster/data_subquery-data_8bui_subquery-8BUI-63.png index e6fad0d0b2b9c697e4f5a2a3ce28bd74593a1e74..38be9e295375ffcaa96c07047683393f1984a2c2 100644 GIT binary patch delta 59 zcmWHKnxJB)=;`7ZqA@W!A>qgW`877HB=z0IC9e92p537k7-;&!l$qhg>H~fcHi-UY O00K`}KbLh*2~7Z>)D}|! delta 56 zcmazFpP*ta=jq}YqA@W!L4tJ)^Z!N;$^NWmUC;hoC`=6FDLTvW?^XQ5{gSUAF#v(5 LtDnm{r-UW|SL7Ap diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Cl-2-1-box1.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Cl-2-1-box1.png index 981cf74dfd8b238a693a6785561b124fdf904137..14206c495d0f1e63c8b24667f576983bcb44b703 100644 GIT binary patch literal 5248 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 TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Cl-2-1-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Cl-2-1-box2.png index 0669f5288bcc390fcbf8044eb0adfefd8d51c41b..bc4e59d38f3104fd68bac1ae9c8f93ba04a28087 100644 GIT binary patch literal 2158 zcmcgtdrXs86hD<$K?{~RN_fA81xzzXAb?O@<>3^0Ic0?v8W2$)io6CZ?KFXsZWNg) zD5FdqYoiDSN^m?%1_T%zl?an(K}9hzIt>!0SND%OM-ShI?b%yH&`a4vpS>a|~FFkqo}VD#U(LHAFbJ79Md51~Cc%A7j{ znCpP>30S3@!L33K_Rx7K^3X@1dCjuKP$XD&mbA)KyFQ2?j~lwVep&?>MEmy!&eZxb%?o%OmrP30*eQJ;UT(I>en` zgC(WuMgU}cu+s%7HH2bKfFrsPxC5YClWm924%zVECW5 zB`BVD(t}3ZrA$$byEo_LOqqTyf8CMcKi`u=O%%%}3dWT516eK%fBFQ=o^hE^JAwV& z=ZFXZj0vd3sDL!Y1+X#3;69=Z0OJfO7-|15_`Z6I9H|@eIB!*X$a&5yKYy>(FG(!R zH4_P1gc)E=0O&OZKXlNFHhU1A*@}yP7r-iITcL1aci(H0ZPRkj4`1_^*W*c;VvM-A ziChof+dAxTag?K4+xoQ%w7lacxn3_Xl&H>k{lZjpnJYgglf=AawP!3#)w3`5_S&<| z5N`JJS^gx`i4ijUv9j~QY?V=Z_4@=khIQiB#^ylXEc_h1brgnj@Q|bb*OYcT)00w5 zRqXdSbJc?<3}l>98*%o!!AzS|OdC1xGxRpb6-q)~wh5zo85vl(R~C)eA2NlSv{U zrfI{fkId7$MI7a~*eQ8k#~o4ROnp8gHkE%=I5xNNf<~m>bz|{H=#~o^L{F7RGGD#_ z6hD{Lu)5sw>M?fx?XpI#j%Tl~99Pu_R7FV?)3Zd{%ITkt zDCwW5A8>x_r{QeV`lq8+4{bBDvQ%xmPR`6ueb`Bkytgs${y=2{Ht9AsY6Y6&r=2#% z5kQ$KLkwI+BKosMJ!kO@#g(!aMJ*p2fS1Mi%y3DREO#G6+3rurRh~h6X>Zt#6$V+V zY#1r+_fT6fCHX_ge}6rmT0ck1OO~?a

?00VC^V37uFd>DBF04&vTvfFhi^7?3ZXu`VF>jkn)m7DGt z&DwV65j)7}IZ>Qg+i0b};~paNmu}EmM;9fYEr_F5lHTBYuzqeD#XiwGjGIM z6i5|ovEi}{go*5bx(X-wgyKGf9)T&l$*pJba6PbD2oxG%hX&XQ>McP1H{dzOrW#|D zgkdcO<4XWzG58*&gn|@*kTstbJ)gC1K3EU>bwU4XFa!)Fz(Al38{S3~T67gk7`ih4 z2BNSpGFh+Oy-}_e;w~JCrfA;ox8|)po8xme+P0DDLOoWV{Q7B2Vu%-^if=JQ^T-rz zIRU}i0t`?7-Nr3Y5u7h3TTU~DBVMRJadypr{g8VM~|aBp~v`OL_lX*nyrb~zBT zx1>&&AOTHA!Q(b^dtP(?V=Nu@_sD)XN*~6mvJlN@8>*z|X)B8AGQ|6ug6Hzt;!Wu| zi+rlYB6ps8<_q&byJnYan~=hXb)#$2$>wqQX=tC$xJ5Vq1TC^>c!qJK&rL3e6s+=EC9e21zE{((x=P8B-{cU>O7V;48_nH zJa>SPXhL{IyeyZ+MZYF>%dXl0;tLTyt?k`gc_cO-&q+y;3F}*yt%TyRn~<8<*)drvmlYG zC*X{}|20EgSbUK1lfEnN_S8nA@P6UVC-~O6&AC9$YY@f;qsH^)Jk~rl&?Q)aRr3oa zpsB{SRvWA|g@8jH82Uk;fj4liRcAmc$YT9D0Fbu+rt059EIv81oOfepXBxXm9)5Ui zQwFXLDV=#9XhkINP0FL4>OtqaI6Jka>p;H_cwUPI3M|+fhOvpofF(X4WL3{dPrB&Zt$zp2is=F4V2F*^+syqd#bn!Yizn67SFTd!Sf1C5cG>sVrZt zP9pm1IE1i>bhI(3{r9Hnpe&WRYet-XK}7!i^ZXcDu(al8ldn|RcxLk+0x6(y$* zC>w3zg4OTf(AmW^Y~$w1-kSv;oz7#thUpz{RMl7c@!bdVs7W-1{czIoKs-u& zuWZ{2wv#>`O9^B&We+GhkEv~k;cv&*jzq*Kwy~+zRb^&E*|~^uEUzO-J`2N|We&Wm zqrW&%({gYkJH+prrgmcIe2cF!ADUTckxz?q zDQM15GjZiA2l}3lTaGnA{Oh5F{9tg@KfnP7Y&91E99yO42CxeM;0mO8sIdWnqp8LU z*iayLT;;YNyYSbWgm^*5zFlrGOG7=m>x5c;YoHom7Zyul3gSeC$x=q@UYb|1w`P0? zlblQpmPSO-Q8<-)eyKYGmsc zgT-oOFRlTrpK5}ds>sBSe%0iotqlx*bMs>b9TnvBNb)?ZS$c7G(^#JVC8|sN1C@89X10`h3!6#H$jMT+>1e(a1^sncI zqY!Rm-sG6-&VYlAEN-cB7JbkgelKdNAr(P)hj(6bZ5;1Rh`nNI*ftVt6I?~k4x~yP z)q~r}{xGNd_M?UMr-}aR4_gZEnDofZ)2bhy?egi((5{oSJ${`sqEox$!uYXM?mT3r zgpFp(^@Mscx7rS}$?P(i_Y73vB&qbLYgtr|9TblLKq{3F!S4%Veec7Rb5$lXovE}p z_ED80L}Z#zL-lz@=W+V(+-OzcQMr)bbI{?QkJU#b{I4B`UxML`ScVuCsg%*h$Eo2? zq1#%yK8}^QrC-sZ{~a5Xdj;YK@N8po!G3ahMJ`%Bka&K**gMuSI4B^Noi4SGHNri5 zm)5UV$0Tts1DQU(S(J&qeJ{$i%=aV*Wk}bypWZ$8qd#*SxGWWadME!gPS$eFs|&KR zrY?Q0S$3}W>JZ&k%E4B*ae?8Bnwiw2m14ZkB`NBqouV|1s^d)ZGd;Ln%Z+A9RVCrM z5Y)alwirpYV0(B!almKLuQSWi$!SVQLj3p+qHv}r(763pDL1NDgNJbay-BJK+LkcOT1fx;+x2&W62txz!$zXyrkk6eyi%Ok|KPph4;x0P@u<| zXH5#QMb88x{MhIRW(+r7N<`X+PE0FSu_IsGTOD}DSbtZi|NPtYdBFt}i;t!T>Z}LYk zq6fSn4zyCEy)JCU>y}_BlX}K3MAF&vH%|mhd6|+tBf9U^-F{v?UgWiOY2>iv@aDFp zF^YM2Y@o3MMV3A8Llw>Ar$rIZP8oZ0`Sv-XkCymB#s1(see<%HWHSJRdVeVz^8J7M zy@&)v4#lTKiNe{|=^(-P6T5k`59FS^6p>a-R?MiS5Pw9ctjqgk)y)gu7@K<#hQ$<+ z5(qc?hgG0|EqwWYSWpgEZ|e0wyHmW;&;Y7_Am`NEU^*{Co=6W=M0*~u*n9_bDV6%} zp@muRl6`capFXc%8JDqcW=ihVQe`bEa_j#Y^e(w9a@B6y$_-j@s0(?jK0007}SB-A~ zzy|$g1H9bOk8|K#ZvYOPm>L`241Yz>K_w}8q1y4B2Yz52%1Rjk27^C-C zY|1@(fDBh{AEy&7Hn|Vebg84v?uqrqO8=lUcuJo2V97sGIVG5fO@rgT1HA(S9FRr- z_oq*i!C>Sn@LW;Og$+=G9v*c255Lihw&b-K@_JQuF;_Is2mk{Seom(zx=wh8>fg&H zQrzo4o?1j+p!^p*07ypM6Kf3f%TGxSw|C6Uh0r>X&mjbWqymPRqvSU#I7xvPa{}oY z0HS4J3EZA|A{%gt2B1R-g=#G!N)K*jS5c)NJxZ<4DJ%8<+m9(D%~PgvWxsW5QK@z087tN@V&eor_4lm@YcIPn_w9*gVF@mB13PRj zI*?`25r<=D-K6YZZ+=B!cz_Ns6zq%Jm3s%_k19!+nBa5V4zVm7yi@V}7Bu@g|0E*n z#0X`cy){!dGdy#_IFl{k5?YXX1y4s=XYt3(iUfYSn=PHvCG(f6T(~hfuXqdqcQO4} zdaCxwMoXjmpkUv^wNJD2Bpl_i7yZO3P$SB^`N;8T@geGQKLX)!jT2*HVj`}4@)OxM z@F9He2JP|kcvT%ihk1m?^^vIHlE`Ld$hz?vt+)4fZ_!lfr)kfv8l4ZO$s*qbQ}oE{ z35ys+UcfEhx#14GnXm%&6Bi;ZL8UP-0JElo@^d@`vZ<|`%JHgy_d9u(hf}pl8`a(| zb*o+6W?pk)UL_SAz>bA_OHy~(Mt|Rp3tP37TMudWg+5-?O8$R-)a8R{8wn@^b_o|X zwhU{W$Vh%6$aST6Agfegw{w()9GW;}j8@@Ke>d;hq`O@cXUH6{qI}_s4uv9b!0_^D z5=I#z)3MI}^uyGse}#K`>y2!~ukR zED-+(7D;e#o!ya}9~PCVh3ibJjb{+;R-X2xIH23;z@oqw{z+-Z^Coug#E z2kRZ1(|U3w4>dZgvOTWh_MTw*CNYo_+G%v2X$7ATs&kKBSPDy2vyu@78BlnWJVH5_ z?|PN+Fe*(FrNWlb@4GO{ZgMVDdh!^gOvMqjgP2OcaEjfK0Q z;eLhW9L7caTlkKG{yVT_+(bp2ehTqop6$XIbidBE4Wn!O32Q3-`W=HAvhFU1P`XR# zzmiF#>-jS>D1xtH#I>kxx%zA68=DJfrXywq+tIhkRUyGEu_LKirc3lW0mweX(z-5~ zHQ|cb`~IDxGB^4*fBLKroESSre&(ekQF@7VAKjb9Rwg;Xf4}*}z)r-(-WjhT?F17q zWb^hE@~2uS@Zn>356y%yX(N$Sd!?STs-KKy@^;w1k*>OyS#PD8y%{rWBY<7j@{9_e z8`Qx2tmxK}UtAz8ZZvP!nt+P4A;lI;cVqL&f&1>uzL|pa{uxmc%&Q2Pb<>UM&3cok zgrGzrFwe&hVPSR|+b^o&Vo2V*;IWG)Wf1P~YE|L!n`cKiWN*IJHLNU(E!nQzp(?`pnfI0GbAPe@{wxHNPWaxqrvG%`hRm=NrKnU=!vpNlK}{O#j&MrZ z?U`1_g(C6K_>LDY))Iuv2r0b>e(VaYHS@rO+A-P?P|f@&gqre&#PVq zH}>b_3T>L@DYiY+K)!ma3jGxBKXGO~7~VcbO!d!j6{2Slw+PCMZ)-Zt+t!WhIWVX$ zukMC%RjC>__WY@(L*OE(!SwGKhDot(+a{5Yr!o&`PV~ASd6PZhn}4uEhpARKM)emx zuQk4rT4EZuc+yMnZL^;alKhU zVlcj!$D3&qVYA$~P137c?p!BIaYMO@U3GNtLPZAuY}b6;&p0R0I{S>o9Fiq|(X&(G zTu(H&AIdsfrWn6VjXmRN@78?eVc?9QtZ5M?%mOivT9c=py!mSJ^sH;0zlQ0r-;X3W zb#*7{`Z@j5Qaxmerm^((Ypv>guY3NJaM8*j*;TX3l z`*OfG>mOAabK$ygD}JZ+c2#LA>p7&X_0q}f$o+pie_@NYd`E*g?UPr8H`ghcaDJB^K*_ z0CJ=p$d5f(QGNgBUmtz~ge|J07x&G$w%^|^NV#?_Mx@kJ-!GshW$|8m3UneL2n684*( zsvonb|HE@q7G;e3JJAyC?If366@R^dj43w(qaT{9J#*^( zVaJASDUas{pvwS?Yo+T|H^Rya-hnx)>=dIfJ?L?w^tJ=@Rd1yKH@PTytVb zpJ{WK4|j~^KaS54_s;LUP11AIxfb|krzhD}8;P}8qRu6E#d%WBP0JX*8Y=ba&ZpN$ zIouTj#8{|1Js)QmSNW))Hsm#uRma`Ae%FjbjidKKY$t78b!WN8$6@75k3Vd6rFa=z zY}*z5yOy%d7BRn%l22r#VS%y z=G?nO*Syf}yfh|s-#SvdyebOoan9;UkJa~|dpk2E+m-zkbLRS36HneTzfm3c(ZD7R zrsHUNyoY;^5hy*(4u;fe({Fw!DxByFr>p$X%+d=W$u`-=AKAGi2Ci3AO|7# z@86<9^b7Uo*xogzZDyWAe2rRB5QlTu*`<)`F3_j+hmwkpz9GtFLK#aTR5smW7((kr zjDoW>y}v-kzGu9#<+Cy%#sCK&AyCOj!ZS1to`h(xf0|`#pq?!~4!FKT;&m6e1a;3O zZ~Jefm~hv3dvD@44w;^dx{1@7(6gd>{x|>ZJ9BubJVi5j7{7!n{V^t^990^$nwzKR zQlB((EK`X6zjk@)6t#6veun$i)5R3rxa-OkartBsc1<4&^BGVBaeO%rhak768#}Ra z$3gYDrfzUk7uOTCDLKsv*Z6Jql--9V zou4vXVlOR(LH!>J#0TZO86maT`Bzchlzg})==Y&%9PvH`IhRx;dOau=Tm-vnpL8yF#Q7OrJ*8kzl~PH zgslU~ClCWw->(ka#T26u7a%UV=UzBzRcSa)v>Ar7n*TK#GxV=AiyKZf-kqaWMf|kY zT$R);#S4f|t1xS8=;fsO4fN-9+S0H4XhAs}NZQQ*lNqnEP)sq1*bRiYdJA&dG%LFl z6C4kwk5vt@x2UWcs7J(i@q85Q{P#9JGIQ^oR6W*3v?*fZTVX8rmklYSY_wmn(7#&( z;9aj{W2nAedEesU*L&dp7~nVkm#y_9}iim3w(RC!HnE;l(yX z60vza-uL507MZVakMY0CuN%kp#DdlHk`%rD3Haw0uTJ8{WTP@_3aY0=v*FWcvhj=W z=w&_B0xbL|&$1pZy%67NnH%<|Ch(yL>Pd~^W#;|0M{()1B2@!ZT(bu`At1P)J-PK$ z`hk_{u3UYIhXm6IHwH^M_;sv2cINB9E8l!Pm5F>0Iw2a{l2tfbD*ibS{*o^`Qli?;BB&G(={$21uAx&;$*&Gw8ID`9g0tn9K|YmK zy6EXpaCUEg1;>+OOb-5m8?V<1E2#l2#s%)BU>)&P=cnWwmH6WcE!(7Lr+711KBEWg}Jds1xaH-sVjB`MQ1fV(2gA8jzG?8Dx= zD1||kEOWxYCRZWw!)ipK2n?fn_GOu@s*H{ku3;CdlB~Mw(fy$NtC_h8EM-x1|BYlJ zPZ6C;b<@2>E_(A=eXpiwowkacA}9aB0MofUy9OV)Q!>)79NgSkxYPbBmUdSWrC zFlkF+II-?0YUXO#Lv+*FB4XbwK-bjsZUrC6fD~tv$AXxi+q>rLNRQxr4T+Q7PFMEJHW$1NU1j zJLEBxkc_eG@vbWVbu<0ONW;dkJyR^ykiT5piN_uq3DyW`*KT zH*#oMxp{N8qH|j$va9jH8n(Z>s0`2am3W|^ubAEPSI20UIso}4&3$l>p9T4V^o`&@w9jdYs~>TTcM@;z zQ*JJ+?@&%~2*rH^ePVxdld}088e2iL8fO09>Cu(rxi{^hNmVQ4!2j1%3HAj?!ed1K TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Sc Cl-2-1-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Sc Cl-2-1-box2.png index 0669f5288bcc390fcbf8044eb0adfefd8d51c41b..bc4e59d38f3104fd68bac1ae9c8f93ba04a28087 100644 GIT binary patch literal 2158 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 TqFDaR>tKIlK literal 12436 zcmbW8^;gsX`~L@wF-p2?gn+bk=Kuvn5R@*ZyF+5c2nA^=L6GiFK~h?}K}u3OgaL!? zyVv{sAAEkHB9N=MV-l+O(k`Ao*bIaIhmTE*37XE*UAMs=jMD4YoQ78yk;56jwEY zCQbqx?;l^f-vv8|sFJ>U|GZu%#glOI)p9atyNn27s-|Y!zqJ2dDqBrl2HJfcv;NZP zkaf6=cnG>~Xb@>=Xc(41MRrVF*$A@3NtMB@|A&{v^P;x4fOf2v^F#dwk-%neWVE5S zKa}&3#Vx?9eFxN1A|2@0bkP$);Wr3R)K!Y?dc1;|Z`8X3G=Ir@CAhFv_SgxbEqJ&} zvqCqhFe(7=@nPaMw`toEF;AnF1heYV${0wOR#kWdntgO8_w)ysb7su_zaK|l&cvgW zv^sA(^`qOpE*O=EC~Z<6D~8YJzm_S!L}k(m-e(d4Xsk`qH~*&pgh~{VOx4W+N*%(LvG6OBB#Z(`(|) zbpvdc**{>ney_s-FhyTh<@`WGk&;LXVg3v$uU+0V=YY)`;ib;4y0In&))^r1euGXP z9mjD0(vyX?uqUjCWFn2>e*C)k>U-`eK)D#p5vR6eL$;mNRcr5o;#UYgHoilUcX95@ zDuQ|nz_?NoL{c*+t_XH;_a+^Z+_~gm=we7Dzdr z2_mI?q^fSGrxqu$LK8tH)K4;wWlYm>2%+rUi{>{oH{4FRHg5?@Z`~8rz~c;EB%(-s8<lcRB3gB_^{NH^Yvg^xLI58JmkDK_heb6nkoe zS^3zVVQ{8tY5DrRSrE*i&bY}G&DNpzZ(~>AZ|hEzkHQkKyYKp*Q(Ql*K9UR9$x zaPo8O4oWOg^|XLfacG-$N#hs3fD7zwseI?w?ogig?yUPgGYL3YPj3cr+nyzv#tlV$75>FJ@2=sb zv(^);F1n?9)liOYj7O82y85$tg1Fl#ES3LWVYU*7Z~$mBdLPsjjah+smBan2vI zvhhLR7o9ccwNCVrdUu6H)P(t7l9v?1e;uj`H=g@cuC_g1543-8blN$5xv{KC&HOxn zKz@o51;Oc#5ZhwG!%{8=O@a;{5S#~Ygk&M_D_5_&*y;O7YyjY6W%rL#0|fnWE&kb4 z1wI;czWW6q?+y(hTELl|`x*0kzc@}fIFqw+_ihd6OV3fioQSi8VWm+-F|@6WeX>pt z1iz!S!8AoKGMqD}LdL!f`#`0`#Jw3A#b-EVg1Cw7i5~Y2%c~ojzN|zd+JE&Mc{TT9 zYnm>0wx+AmQfm0*)1jgZM_8CvEVW5iPh{BEI0z+*iV?9Fgtz=$3FcpAc+}J8Y^(7M z#|ngX{Bq-Nuq0<=I*ulU00;YeDJebAIq)HUOkG67F~ z5=Y=^V(=HRO>bYVnDSgIUYfQ5@_`7O85ADJ5Te3P@|P7-h*g?9hL=iJqY4&xvyZZ00PL z>1kXf%jp5e@k{1APufWdvauC3$r#&Q|e;{WX ze5}1Q_NF>0>iD%*MeT>$J1#rl6=H$*;M>dBD}>Cozw@Lb1k}v^g9pxGReO*ZnK)Ri z?40D1Wc8=toN7zaFleCA5d#_v!g_ChhU|B$c->CAmgqZj`s`~YmZE65%~ijq6e(#v z)&8CQG0;Nsl7tu=JE9*HN1XKCB5?LqQXk&VS7wd9k&=nylNDlQb#tY`LHqVikknez zIggz~7S>iscbkSlqc#BnZ*rzi;BA!p(oD17LJhVbQzah{w zZKC_d-y7IW{^JIjg&$V66OJDX7za;QNQH5yuoU5Fg_YGaPv->nqTKCi?B?kC@wH%A z%*dc20<)dPJoh(cKGbua%_x)ySqT~By#{y1BdoJG0=){-Z1;>@Z{z02FAkG)W1T+b z`l<|ZsNsdi>B(Eb2XkB8ADqtK^93LC{PI_8^=RLMacqGU5|>cQ0rwiVm(e@sADj0E z%|77ysi@Hd4=8_CI`Cb{#kXBf(O5~e;teP-lKkq1&}*Ai-}ij0e)?wpbK>(CF8CYp zT%|zwf4HK^XwvU4MN+O}QHQaX;~FwMf-N=@9eNAbi(JacQgNQukF@ZtV@Q+r@!E2i zqEgBXW_nChN_m8{D5=o8TQpK6{(UyKv3tXkM%R#d9-fknRKIHYlS!>6-TJS#lg6sc zNFL!D(Ah@`@z{|vkRHiqA)z+8qB{?6`ThfG+J4rvpg7khePSbo?3}9^>`wL#XIY6H zc}q+7Vn(mz-|&8CD<5Qr$Sk(cAG8iz=Ff>;C@8^#zIi}NNAx3>T-{%c*8f>awi_G2 zt9jYpvv&91gopGou92OulgESr*ta}qYXp*dm>DLEN9WB)^k^|5BRnZYfK`uN>~3jF zIw)yLf`I4TQiR9WUuIk?BNro-fS4gJf5HM?u*7m?skmFjIRl{-;1k89G)#k5`!$m3y6LrU}BMrq0HObjjG zBV&M~gKD*)1VP7Ysg`&Bu9+tnPiucw+Id#BNF$q?2+Hz4G5_cZBzCQnS_#UXqrit(+ou63j=<0;Pe(??z!q@2^3vmc6NV$)CVa-P)4fbRct>{K{+|sx*r1^_#Edwe=SFD z$W3)75&qF>@aJh7y4fSkV2|i)@Jd%JR{&1%z}E+^GjLgnGae*}m0YW3T;Ebze}EtY zxYGEh9unM*phMQGxN@tj2v_)Y^NuFh)>X4Dw%Ss_$)j?sS?Nbo{SPlnYZy@EX3+(K zwCzS>V$WhPIp~>*!lDC7C;aW1eqxq`=Z&Ey|K$G?Lx@$Y$YM-7kHU!S#V7DeHpGCI zPH%U8sF}39bi#VXrrarwLeeN07`EPR(d8<*8Ql!%+nrV$Bi*@mf`H%pJ-eE)pAgZq z5#xcv(mG(JA4V>FKb3;AWt(l9I<$+bzxd28KYFQxjF@=iW`RX-W^GuXPw-59sj z_La^ZmksLw#`j8_zinDq%wVVf$}LstFH0JO>8GRKMuu$r_M#c<&^r}tFj1Ouo4XpP zi8QGcg+B=>Dz)8rucuRnRWGZR_l#b53SI8xE0p>|5qJ3dp2Bi7y5eO5U2IU*Q3lL* z@T23LXWz=M&lO|k;NZ6APXy3v;mo%6u^7FM-FX~EwijZ=(Fdh6@me=ve~qhR4!ICR zy&ZX|lgMEd1H^eYaFsA9E*fKW*&y?2_{YnqT4!%e8-4OmBc0j5GiIclz(~JikEJge z+YXrM-yGUGQ57~G!m7ufgkZ1iKe2B^!Bm~>#RNdGpVIX7QTFtKj}@FM9sFY5X0{<5 zayFi*_FCea=-ZI5ZhcIWC0@so4+nouIag_)50<$C z>Fh)UcBA^`+K1xgY503>gj%~4GVKx#1G($L}{quivY!%PKU+a9^bW2!kIqr>^ zh(CJdad;6gDMovXsh??|xmitn*cvpSLr)={T;bW&j^(XNdL+ zrCq1qg^?^}3vXCFI(Dm+Pl*#LA8*>#R9BI#RQ8WG1E0=rJ$PK{GAsS3sf!mm?QnmU z3;W+oG=CG{8hiyCckcOCGY!SEW^NkB**rXveYlP?+G za5u@$x?jK)B}tm<1A;6-LOS2`-HLk6yO)Cy=5SpEz1D`JUd0XskvRNWJGpB;IQDDV z8!Op?cljr=aby|iIv*LV>fBd9e81=Yi6FU-&~7G~p<9DLQ1{lnt8$^@L5qi*EDCsT zxs*SJq|$f*Js%1zO@9hQivYmq4XCI~c5#v599{gZXUn`yPjIID(@ffymHSx)JCuR{JeN?h z;L~)~+6icYh~ABgya}_D%Pbu?oSF@L#?`%A08gtroaUbN2g#|~>ndMa^QzvRXuE)k ztmaCz_JcDmKsCjv{p<-NA5IhYovNs@Odv6^5tYe()10nZ3chA){e;XD)%_7)<}mJ3qh#C7N%})SC2Yp+op-F zMKR9>>2y%yLrsL)J}QRbg}u1oUcZDkW$_zSwB;E`))t)On+6H%@QFsKum&+J9F~u4E3fs!c;kub(N^q`RLp0ug759|X z87_OmT-j0-g_HTy-q88}tqkpiwOJ5d|X%+h(^p0AqQCkncpX_(tx!V=CZ$zi?T9vWE zPzd6NFHJ%hC%N_`ZD^W}(|Xi|)?ObX-?GeJ%3uUiM}F!g2yYMqsCr=al>O~MznB$) z|4;;_F@h+F$XAQ(-Md3Wf8%Xof4+>mUwQOE67#zfvzQ-D$I)q|EV^>2DT{`tSYBMQF7knJne zLN0`IcwyWD^7`9vO8kM#pE3i-@VH_V*O~hPK*E&0KS;$htzlt7K9|3zz*Br4;>{rN zr>Trz^&F;7z#&4^6WA9wr)er3w}IX2FMI*=X(tkw3Lm|gEq_Piff2z7f=e^=SArwn zz7g7*-m4#azv=Yt47y7@vsbDY?@T`u^<69PAi*PH9^|N?pk^=<2C=5;f8iE* zW8puMb8wk(Y7=PBcvUVj9hvkY=9!|s1mRcFT)*IvLUP2fP(OAJaPp2)r?==@!SRs3 zp<|ekPxuF$A+w7dOJ^vs&~&fgU&k=vlrO8tbCLYtJ--9aJEMNui2NMxG)Jk;iKnDn zr*))`uy4uAK93nI{BT8>Ewl2__P<((5(eXlXug04U367*rfJ0XK@(RB_OpzMEa+Yt z<^Uyl-bEq!3azs2^2Ie6w| zsqSAEv~#nKVKb0&`f=236h9kAH7E;9g;Wsk{S5aFO?J%%>o=)U$NX1kL2<+TZz*_9%Wr zlQ_yg+G8HlS0i*8asH5r{anR(oL5>luXP}>t~lZKfvmpoLm0c{AP;n>t0vy*auaV3 zZU4Tld=bYu%tjMW`E`Oc9&T-`LfSutic!ak+3lZl?42y@c9U@ftn(eM=(`@S5A?EQ z2;Wh=Qr~IkG_?mD`0*Qgyf2YEsa@4boorw@?!s3xEx~)L-=B(uOsa!GARM`twFvUy zCe%Nh2buhPBTkEZ!wV7XJS1M@Q(ECVz8*+yk)f0L^n11!4rg@C5z~AG=zn={RCH|b z?^u4M&5GAuMxJSGQHxw5A_Pmhy5otBitiE`zKZ{zc>USTLPaNOr)2a~QuU`RWaIY2 z(d$$5*te_fh;4iL{2yfbe1Rqjm9{@cTv`fZB5F?&82lN(2V-8cGsMC;dH5dV5do!( zc7os=wtwnvzUvF=epDecbTArpT5P7W34MQKVf7=yz7sb|W@bU@E#Y%{ePjtkMCA8* zTN*NV==dg{O#o_XF`7=A4x-1an9R@gVadMM>CwZ|7gTLaKe{rPkctHnaXb}Y@N!;x z$baYMoPBdynwHU2qx`H3#96#83 zXUw8tMBaUt+A%O6gi7Oia2{&{tuViE%=u&kfj{7^0g1pjNW*IM>97|+mn?Qp@&+cQG-jXx6fH7q}Zx zj+j#RJhEN~!Npc|pZ%lX8u`Z~1eI^MmV+y_I&8@KI=e|f-g$4kziz{a=CuBpB09<1 zHXusdPx8_haz9kZBEp2Nk;qm_<%gB*-^jiH#tBe1`>0$_>v7b_&6goCFWrY?oRuGEtc#B^ z)+98DIWBd-RF)Y=DBM5A((v@Itw+v%kQEGeX`Kl`15+Atni?yDYVR#cq7MlNs^?A5 zzRp+wA&YTJs1~g^vOO5rp1QylLFtTUSYKI@&BC(4{mLQjNJ;Fp}8Gj|a@lLuL^`4r4Jm*Ev zpPN>u^Xey#qnXHD)nQ>J%nR=3^cx@)O#df-Z1@sfW(7BiFxVc9p%0B2TVO<3Us(wI zmabYB!kp|0N@GjK7#w{lWMYvOr@6r-LxALRn`K_uGdPOO@T)3LDLRZYBHdo7k7o5v&jF^=Kl5AeeEb#*k7eaWXf##3dcK);t#4oOH(BI4dG1G8UhH z$)q-8bnubL<6b$mG(*5eHJZVTS*BM@sL3>9HF-c*x%uO^F^iHkcQ_p$LbmX6aT7@> z5%`j{$oATY$Q%-m@xz``N5Jz6AfV)zq+apn0m7u&(eH+*&3#$#+lh#Brb6feT!f6F z!*7x(&EcWTuI>`bFLje>hS|9H!;;se7619opHC<68E;jGpKNpbk<2DxztQls11ft#8c4^IL16064N@j)J4Z(8a}nx`m8J+QdnMJ{MD zJhuL*Q&V2xGw(u@$w^=Qhsf49wKS~>op2RoPdFfxNV3iljjaF_#EKUIW+XldCs4@p z&o2e)`*~kK9b+ckyeuYDW4#gizLck{I`Aa7hQAAoTrGc>Ve^x}3q02ehDk4^0eQu; zv;Lw}jRcz|y57R`*y3#SEI#+UzBP-)On%lM5)&H3-FuEn6cS>(1FznDKadHlmcBk6 zPER-#?6(0$_+>aYL<$K#tpB#O@ywh&(O-*O^Py|Gr<%Q*dC-5r&t&7MIERGdf#i-4 zsW0-2PS%#)R9#BPk$Xz%%uMuQSRG}!VF-RSbr zp6&W7qQIJx)&r!ZvYb*7Na4+alTV76sjUIkZ9L+ zSbj!UejvG_zShNoSSJfB-cYQhQG}3x4%CsC-uf)4NNCS-W-sO76;G3mm{i-oM;8A~ zk3!{RS7E&9hJ?61FH(rLC%NCz*wrt^RX--8$#r6%wY>rU!n$Jhg!hzJiYmidCPJqY zt6j_64;J>-^HX(laq#y(bP(!qPL(^iEMkM|lacA9!l2pjD*{iBv8XH#|5;JD{Jt=l za;2|H$+4yM*=h2^GGS7B7+b4)LeE}Jz`e@VxAo-- zto;W&n%*5+prwh>U>gu(?M&-9|E8(^Kd?afE_tu-A^NI4?KIvNorLdjaj8qw?Hj>j zXl@9dBBiCR%Y7XRrn3{OXt5m~9LM;&>NsG^UHCVWLDIhxB|6J06AU-wn}Rr56gbhC zh$D3gZ52?NhGm%~s{j&I@n#kSD62(o$2m!#dVfY}G1t64ebE@L2J^2V4KYgxIF$Sg zE5v1q01(0VsVQJXwadPT;?wXcAf*&mKFaT1E)gK|zt}u`^f7?7AbPyC>h{XbK*i)$ zQH|>H2S9N;HKL(DIJ#wb)Qx3ZBk5Fr=OnZ#aM`Tg@8aQ0TiAXu)4(2@ZnWZ_j4Hel znXm&_AG(?!KQTpsI&9?t%2CgQ&xj|lWPiJPZ5c^F(f6u9d<2hF*hdg zOY?Sj*V2ctncQTAw+39AOfHKGzI~6ag;Cd##mCYIzp3_4-AR>S+66{ibqyT2x!SH9 zi!tqVp0~9K!m#K<<^DcSx`wP64EL!-Od2CB1hBw#U)zu8ZGIq?ebhST%txisKBfKX zo=w}ne<{hT1>eeS-K>Y_6?yHUC$EsEGzh~!D=-$}= zn^A^}p=yB~g$e3d*?JJYhI=`_@Zh5&;ger{RfhG7lYiC{V5i z!y1C3+iN+Vu79NmWOn}iBt~7eOco^x+$h9&E;F-Ze)kEDZACNAgJ_|TE^G;%{07oh z{g)&?eDSYLGp1ON_D51YdMAokFBYs5{Ut!8P221=77AnbbQ#B2Pc=AP@PtSAbRKEh z`O=d4tXzk~MmA~*_VOIKuj}Z*nNiTgATz%f43VR_@xsQeb<8^F>-D|JRyacqRajf+ z96w7eke+s88Y86&PWF1~-pg%OkK%GQ`BEj629HSEESH(+!tWgQahn;@D+giS!JCq{ zcMLSL=f4=o<%Oj2HFucHj6Z)+tD{S-;AgjX!$p{(l`E#}$;2;C((pXEb{#B8HJms^`-ktYiycVd&WeG!yP%V-_EYbwFZ;RooEajfo94q=6 zS8Z!5Le?)HJSYoMqJJ))vi&yO$FtmtNU0;KRwc53zn-?&GAh*teQm|(HmO8A7w*i} zn)CNMA3NI~8jEJ*?iOi7tcyzdQ7wxrG1CxVi;2<206ExZz!{0O3Zp z=tKZoM+zlsntVVFO-z0bMiZ{+{cWcZKG2G!Q+RF`($%t0r+-V#9Qz#w#d?0}c}Svs zDCFE%%sNQJwgfgOK2m9WY7g9fABP!9j=GnJqu)_s%qjbq`DsLW4uZ1e=lJid?FnM* zUMBS6XKXF^WyZwi1FD3d0oDXr^PA?2@e5iwoYwS~cfk1rEcil!Tx%3S1dK_u zOWs8KVJwRvLc5DgK)0XtBNv)>p)MUPWE-Pc9t$~lSa zUP!X)WtRf|w^yR`76fq{iRsetF=ir}l9CZ6Wxu={E;(jJx-hrbXFEg&>Vk-BSbsAa zs|)RQjb8WqG#ePzybiMma$xv~B^(Tor#c1;t`bo&PG0XC*amJ-^(8jQv!)Q0o*5=2 zG#c9d&^bJc$FkbgS1$woNb`C9$ zLF%+#O>5tZoNck|OJMTyZu!*Pdcq!?i<=bi85Q`t2er%ZO*{V>NFTmzZo^cL~fAa;@i z9O7YtL%ce?yPX0i#BvzQ=dP9ai(d)g<|Yoq2^^(QC6?MYPO&M-l3Zn$Z-P69F$PIeF@$zc{ye4tLlb zuG)p@ z2Wtd!UQ{Gk4^5MoPS_P05k&LDbyqM-F@&wgZFRVRXCMbm8$J*k%5rl* zMIv+zRQM_eyV91lE6j| z5N1Ws&By1|1$Y zS5IR(wD|w=UsqtY-sY&hvog26iQiU&f=5s@A_3@k7x#Lr>uFc(ndbAC@g5y7m51yL zoV-UbCtUp^0x)bsJReR-LU4VxTk>(FFt=&6v(h3CpP(e&2c==Bf9;?zEeu-6(PW7j zf<;T&n>fKyj%_~y;y(zzY3ng1L&0oK(aGMOt+`(luvr~SoNYsV@Uo62*-0m!SHOf_ zL)QS93MAF4Jgr+j0Y(omqi$E2Q5d(wug|DVwZd2HYfTpRt7zS86NHJj2h8O<>E|pk z4wu=bXXX2Ql9>sn(Nk6M5;hyWDU+e9ZTZKDh~|R2k}TaII*mDkrrYrHozg&@8wLXF zUl0n9Q)C@|VnI8HWmxy+H8`RE_XgLSUYSrRB)edNvF7wSxJ<$uoYj2u54Y*UJaU8BfvZ&?aVX`^kUvvnddQM5_Z!sr?XzG`wueSZ)|SsQkkuMn z$Is$-PRVH)GsQmB)s;1j6y}H3?lojWT$N z-f=#J>qb&J*al$u<*xus!JteWSc$u#3g3gv;&tmV^4 z8puqIn2G$Ggijn|G@IQ+jI)Q2#1)}B8~B+zK8Y= zpWZWafHOtyO9eIj3MB11++=3&EgF|wu@oYMBj)y_%M%#UZQ8TU+4KNby~M(eV#n2> z@QUvm1CYh2U8cpBHX=C!1y(&q{Y}-Lm(J{aEX-IdSAt}((G?Lk=RH0KZa|Lz1DpT< fk^X7-dzMMrk)b+Iw+GC>4FJzowV~C@mf`;o%69@T diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Sc-2-0-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2 Sc-2-0-box2.png index 04135187e241578c4fa4909b2d37058ac5289e38..fbbbf95585cec6c98d374ed443e2adf3ec5c44c9 100644 GIT binary patch literal 2170 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJC^M^6{Wkcv5P@A!A8gv%a( zXmD9^!2}K`F(J+$QcAl{7)i%Fi0u;-FMlk3q4h#EvmV#6mW9Et92=cGEDrXS7{xaG zunDS|xzxnF7b;cnUd;`eXUZ=Sa`-&lTr-an(H)3;~G zyX3sGRq^Fu2s+N_@XCV0LzbOkQh8aQ(lUNuSd^j0AnHU(Bu{5Xv-4e{?Fo_!4mOM@GueVD5ZTJ0X+ru9U zS%K+Rdn!N8?T}qNf1lvSt5wDNS?_E9z1Z3zTl)(XTzfaa13H4?0x)107(gMz-~b95 zh8MuFVPF6S4#NUa=rEK3!;ql?6o{lLUXXv^Aci~gQQPO=t~#%5+S}F7yXS7bS0}J> z#qO153=+Hy3@4-++<@kOVr#evv|{tB zo!cCtv(8=jmCq^(hF5G1rlNEp8&vl0zV|2R)IGa@pQ;6KfB&oh`tbU)-5q=DzuPPR zzHDEn7`@hfe_zy<&HFwc|E=#147vMXZh!aNFTL@Eacm?*g&8PLZ~=z^h8x8cs!%f)oadk*zw4>+J5a^iFK`SHUZFnCR#|X6KeQuKTqB_@~OMQt*pI2i|=eJZ~E50Ah-Ej>6K~e zw>M8%yM2H6jeYy~ug=*R5z~KTsXZw9I^3q013`fitI63z+w_3|!nKpASq+H1Eb=$@aqM{eWc!=K+9Wdy$8zqKuKM;W-hLkhQ9 zzqc(06@>TzNH0Elpq#^%-}$--H4Xon7kK}AcF;v<#rFLFzuN`7t^8BgE|k5wep-2a z$BljOFUB*h5CfK|aRWk4*tYocar@32v-9=Vx#!$J@BB&&Yt_n!uiizHgcc0^p2AF! iIvGh0USVIU`pkn(i(b6Mw<&;$TcBbP(~ literal 3637 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 TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2-2-0-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C O_2-2-0-box2.png index 04135187e241578c4fa4909b2d37058ac5289e38..fbbbf95585cec6c98d374ed443e2adf3ec5c44c9 100644 GIT binary patch literal 2170 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJC^M^6{Wkcv5P@A!A8gv%a( zXmD9^!2}K`F(J+$QcAl{7)i%Fi0u;-FMlk3q4h#EvmV#6mW9Et92=cGEDrXS7{xaG zunDS|xzxnF7b;cnUd;`eXUZ=Sa`-&lTr-an(H)3;~G zyX3sGRq^Fu2s+N_@XCV0LzbOkQh8aQ(lUNuSd^j0AnHU(Bu{5Xv-4e{?Fo_!4mOM@GueVD5ZTJ0X+ru9U zS%K+Rdn!N8?T}qNf1lvSt5wDNS?_E9z1Z3zTl)(XTzfaa13H4?0x)107(gMz-~b95 zh8MuFVPF6S4#NUa=rEK3!;ql?6o{lLUXXv^Aci~gQQPO=t~#%5+S}F7yXS7bS0}J> z#qO153=+Hy3@4-++<@kOVr#evv|{tB zo!cCtv(8=jmCq^(hF5G1rlNEp8&vl0zV|2R)IGa@pQ;6KfB&oh`tbU)-5q=DzuPPR zzHDEn7`@hfe_zy<&HFwc|E=#147vMXZh!aNFTL@Eacm?*g&8PLZ~=z^h8x8cs!%f)oadk*zw4>+J5a^iFK`SHUZFnCR#|X6KeQuKTqB_@~OMQt*pI2i|=eJZ~E50Ah-Ej>6K~e zw>M8%yM2H6jeYy~ug=*R5z~KTsXZw9I^3q013`fitI63z+w_3|!nKpASq+H1Eb=$@aqM{eWc!=K+9Wdy$8zqKuKM;W-hLkhQ9 zzqc(06@>TzNH0Elpq#^%-}$--H4Xon7kK}AcF;v<#rFLFzuN`7t^8BgE|k5wep-2a z$BljOFUB*h5CfK|aRWk4*tYocar@32v-9=Vx#!$J@BB&&Yt_n!uiizHgcc0^p2AF! iIvGh0USVIU`pkn(i(b6Mw<&;$TcBbP(~ literal 3637 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 TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Cl-2-1-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Cl-2-1-box2.png index 62e35be3072b81af5661858727e57452b927558e..bc4e59d38f3104fd68bac1ae9c8f93ba04a28087 100644 GIT binary patch literal 2158 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box1.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box1.png index 981cf74dfd8b238a693a6785561b124fdf904137..14206c495d0f1e63c8b24667f576983bcb44b703 100644 GIT binary patch literal 5248 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 TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc Cl-2-1-box2.png index 62e35be3072b81af5661858727e57452b927558e..bc4e59d38f3104fd68bac1ae9c8f93ba04a28087 100644 GIT binary patch literal 2158 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc-2-0-box1.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc-2-0-box1.png index 981cf74dfd8b238a693a6785561b124fdf904137..14206c495d0f1e63c8b24667f576983bcb44b703 100644 GIT binary patch literal 5248 zcmb7Ic|4SDxPI(D5|J%glI0{Bsfc7t$zI8lU7;q7>`capFXc%8JDqcW=ihVQe`bEa_j#Y^e(w9a@B6y$_-j@s0(?jK0007}SB-A~ zzy|$g1H9bOk8|K#ZvYOPm>L`241Yz>K_w}8q1y4B2Yz52%1Rjk27^C-C zY|1@(fDBh{AEy&7Hn|Vebg84v?uqrqO8=lUcuJo2V97sGIVG5fO@rgT1HA(S9FRr- z_oq*i!C>Sn@LW;Og$+=G9v*c255Lihw&b-K@_JQuF;_Is2mk{Seom(zx=wh8>fg&H zQrzo4o?1j+p!^p*07ypM6Kf3f%TGxSw|C6Uh0r>X&mjbWqymPRqvSU#I7xvPa{}oY z0HS4J3EZA|A{%gt2B1R-g=#G!N)K*jS5c)NJxZ<4DJ%8<+m9(D%~PgvWxsW5QK@z087tN@V&eor_4lm@YcIPn_w9*gVF@mB13PRj zI*?`25r<=D-K6YZZ+=B!cz_Ns6zq%Jm3s%_k19!+nBa5V4zVm7yi@V}7Bu@g|0E*n z#0X`cy){!dGdy#_IFl{k5?YXX1y4s=XYt3(iUfYSn=PHvCG(f6T(~hfuXqdqcQO4} zdaCxwMoXjmpkUv^wNJD2Bpl_i7yZO3P$SB^`N;8T@geGQKLX)!jT2*HVj`}4@)OxM z@F9He2JP|kcvT%ihk1m?^^vIHlE`Ld$hz?vt+)4fZ_!lfr)kfv8l4ZO$s*qbQ}oE{ z35ys+UcfEhx#14GnXm%&6Bi;ZL8UP-0JElo@^d@`vZ<|`%JHgy_d9u(hf}pl8`a(| zb*o+6W?pk)UL_SAz>bA_OHy~(Mt|Rp3tP37TMudWg+5-?O8$R-)a8R{8wn@^b_o|X zwhU{W$Vh%6$aST6Agfegw{w()9GW;}j8@@Ke>d;hq`O@cXUH6{qI}_s4uv9b!0_^D z5=I#z)3MI}^uyGse}#K`>y2!~ukR zED-+(7D;e#o!ya}9~PCVh3ibJjb{+;R-X2xIH23;z@oqw{z+-Z^Coug#E z2kRZ1(|U3w4>dZgvOTWh_MTw*CNYo_+G%v2X$7ATs&kKBSPDy2vyu@78BlnWJVH5_ z?|PN+Fe*(FrNWlb@4GO{ZgMVDdh!^gOvMqjgP2OcaEjfK0Q z;eLhW9L7caTlkKG{yVT_+(bp2ehTqop6$XIbidBE4Wn!O32Q3-`W=HAvhFU1P`XR# zzmiF#>-jS>D1xtH#I>kxx%zA68=DJfrXywq+tIhkRUyGEu_LKirc3lW0mweX(z-5~ zHQ|cb`~IDxGB^4*fBLKroESSre&(ekQF@7VAKjb9Rwg;Xf4}*}z)r-(-WjhT?F17q zWb^hE@~2uS@Zn>356y%yX(N$Sd!?STs-KKy@^;w1k*>OyS#PD8y%{rWBY<7j@{9_e z8`Qx2tmxK}UtAz8ZZvP!nt+P4A;lI;cVqL&f&1>uzL|pa{uxmc%&Q2Pb<>UM&3cok zgrGzrFwe&hVPSR|+b^o&Vo2V*;IWG)Wf1P~YE|L!n`cKiWN*IJHLNU(E!nQzp(?`pnfI0GbAPe@{wxHNPWaxqrvG%`hRm=NrKnU=!vpNlK}{O#j&MrZ z?U`1_g(C6K_>LDY))Iuv2r0b>e(VaYHS@rO+A-P?P|f@&gqre&#PVq zH}>b_3T>L@DYiY+K)!ma3jGxBKXGO~7~VcbO!d!j6{2Slw+PCMZ)-Zt+t!WhIWVX$ zukMC%RjC>__WY@(L*OE(!SwGKhDot(+a{5Yr!o&`PV~ASd6PZhn}4uEhpARKM)emx zuQk4rT4EZuc+yMnZL^;alKhU zVlcj!$D3&qVYA$~P137c?p!BIaYMO@U3GNtLPZAuY}b6;&p0R0I{S>o9Fiq|(X&(G zTu(H&AIdsfrWn6VjXmRN@78?eVc?9QtZ5M?%mOivT9c=py!mSJ^sH;0zlQ0r-;X3W zb#*7{`Z@j5Qaxmerm^((Ypv>guY3NJaM8*j*;TX3l z`*OfG>mOAabK$ygD}JZ+c2#LA>p7&X_0q}f$o+pie_@NYd`E*g?UPr8H`ghcaDJB^K*_ z0CJ=p$d5f(QGNgBUmtz~ge|J07x&G$w%^|^NV#?_Mx@kJ-!GshW$|8m3UneL2n684*( zsvonb|HE@q7G;e3JJAyC?If366@R^dj43w(qaT{9J#*^( zVaJASDUas{pvwS?Yo+T|H^Rya-hnx)>=dIfJ?L?w^tJ=@Rd1yKH@PTytVb zpJ{WK4|j~^KaS54_s;LUP11AIxfb|krzhD}8;P}8qRu6E#d%WBP0JX*8Y=ba&ZpN$ zIouTj#8{|1Js)QmSNW))Hsm#uRma`Ae%FjbjidKKY$t78b!WN8$6@75k3Vd6rFa=z zY}*z5yOy%d7BRn%l22r#VS%y z=G?nO*Syf}yfh|s-#SvdyebOoan9;UkJa~|dpk2E+m-zkbLRS36HneTzfm3c(ZD7R zrsHUNyoY;^5hy*(4u;fe({Fw!DxByFr>p$X%+d=W$u`-=AKAGi2Ci3AO|7# z@86<9^b7Uo*xogzZDyWAe2rRB5QlTu*`<)`F3_j+hmwkpz9GtFLK#aTR5smW7((kr zjDoW>y}v-kzGu9#<+Cy%#sCK&AyCOj!ZS1to`h(xf0|`#pq?!~4!FKT;&m6e1a;3O zZ~Jefm~hv3dvD@44w;^dx{1@7(6gd>{x|>ZJ9BubJVi5j7{7!n{V^t^990^$nwzKR zQlB((EK`X6zjk@)6t#6veun$i)5R3rxa-OkartBsc1<4&^BGVBaeO%rhak768#}Ra z$3gYDrfzUk7uOTCDLKsv*Z6Jql--9V zou4vXVlOR(LH!>J#0TZO86maT`Bzchlzg})==Y&%9PvH`IhRx;dOau=Tm-vnpL8yF#Q7OrJ*8kzl~PH zgslU~ClCWw->(ka#T26u7a%UV=UzBzRcSa)v>Ar7n*TK#GxV=AiyKZf-kqaWMf|kY zT$R);#S4f|t1xS8=;fsO4fN-9+S0H4XhAs}NZQQ*lNqnEP)sq1*bRiYdJA&dG%LFl z6C4kwk5vt@x2UWcs7J(i@q85Q{P#9JGIQ^oR6W*3v?*fZTVX8rmklYSY_wmn(7#&( z;9aj{W2nAedEesU*L&dp7~nVkm#y_9}iim3w(RC!HnE;l(yX z60vza-uL507MZVakMY0CuN%kp#DdlHk`%rD3Haw0uTJ8{WTP@_3aY0=v*FWcvhj=W z=w&_B0xbL|&$1pZy%67NnH%<|Ch(yL>Pd~^W#;|0M{()1B2@!ZT(bu`At1P)J-PK$ z`hk_{u3UYIhXm6IHwH^M_;sv2cINB9E8l!Pm5F>0Iw2a{l2tfbD*ibS{*o^`Qli?;BB&G(={$21uAx&;$*&Gw8ID`9g0tn9K|YmK zy6EXpaCUEg1;>+OOb-5m8?V<1E2#l2#s%)BU>)&P=cnWwmH6WcE!(7Lr+711KBEWg}Jds1xaH-sVjB`MQ1fV(2gA8jzG?8Dx= zD1||kEOWxYCRZWw!)ipK2n?fn_GOu@s*H{ku3;CdlB~Mw(fy$NtC_h8EM-x1|BYlJ zPZ6C;b<@2>E_(A=eXpiwowkacA}9aB0MofUy9OV)Q!>)79NgSkxYPbBmUdSWrC zFlkF+II-?0YUXO#Lv+*FB4XbwK-bjsZUrC6fD~tv$AXxi+q>rLNRQxr4T+Q7PFMEJHW$1NU1j zJLEBxkc_eG@vbWVbu<0ONW;dkJyR^ykiT5piN_uq3DyW`*KT zH*#oMxp{N8qH|j$va9jH8n(Z>s0`2am3W|^ubAEPSI20UIso}4&3$l>p9T4V^o`&@w9jdYs~>TTcM@;z zQ*JJ+?@&%~2*rH^ePVxdld}088e2iL8fO09>Cu(rxi{^hNmVQ4!2j1%3HAj?!ed1K TqFDaR>tKIlK literal 12436 zcmbW8^;gsX`~L@wF-p2?gn+bk=Kuvn5R@*ZyF+5c2nA^=L6GiFK~h?}K}u3OgaL!? zyVv{sAAEkHB9N=MV-l+O(k`Ao*bIaIhmTE*37XE*UAMs=jMD4YoQ78yk;56jwEY zCQbqx?;l^f-vv8|sFJ>U|GZu%#glOI)p9atyNn27s-|Y!zqJ2dDqBrl2HJfcv;NZP zkaf6=cnG>~Xb@>=Xc(41MRrVF*$A@3NtMB@|A&{v^P;x4fOf2v^F#dwk-%neWVE5S zKa}&3#Vx?9eFxN1A|2@0bkP$);Wr3R)K!Y?dc1;|Z`8X3G=Ir@CAhFv_SgxbEqJ&} zvqCqhFe(7=@nPaMw`toEF;AnF1heYV${0wOR#kWdntgO8_w)ysb7su_zaK|l&cvgW zv^sA(^`qOpE*O=EC~Z<6D~8YJzm_S!L}k(m-e(d4Xsk`qH~*&pgh~{VOx4W+N*%(LvG6OBB#Z(`(|) zbpvdc**{>ney_s-FhyTh<@`WGk&;LXVg3v$uU+0V=YY)`;ib;4y0In&))^r1euGXP z9mjD0(vyX?uqUjCWFn2>e*C)k>U-`eK)D#p5vR6eL$;mNRcr5o;#UYgHoilUcX95@ zDuQ|nz_?NoL{c*+t_XH;_a+^Z+_~gm=we7Dzdr z2_mI?q^fSGrxqu$LK8tH)K4;wWlYm>2%+rUi{>{oH{4FRHg5?@Z`~8rz~c;EB%(-s8<lcRB3gB_^{NH^Yvg^xLI58JmkDK_heb6nkoe zS^3zVVQ{8tY5DrRSrE*i&bY}G&DNpzZ(~>AZ|hEzkHQkKyYKp*Q(Ql*K9UR9$x zaPo8O4oWOg^|XLfacG-$N#hs3fD7zwseI?w?ogig?yUPgGYL3YPj3cr+nyzv#tlV$75>FJ@2=sb zv(^);F1n?9)liOYj7O82y85$tg1Fl#ES3LWVYU*7Z~$mBdLPsjjah+smBan2vI zvhhLR7o9ccwNCVrdUu6H)P(t7l9v?1e;uj`H=g@cuC_g1543-8blN$5xv{KC&HOxn zKz@o51;Oc#5ZhwG!%{8=O@a;{5S#~Ygk&M_D_5_&*y;O7YyjY6W%rL#0|fnWE&kb4 z1wI;czWW6q?+y(hTELl|`x*0kzc@}fIFqw+_ihd6OV3fioQSi8VWm+-F|@6WeX>pt z1iz!S!8AoKGMqD}LdL!f`#`0`#Jw3A#b-EVg1Cw7i5~Y2%c~ojzN|zd+JE&Mc{TT9 zYnm>0wx+AmQfm0*)1jgZM_8CvEVW5iPh{BEI0z+*iV?9Fgtz=$3FcpAc+}J8Y^(7M z#|ngX{Bq-Nuq0<=I*ulU00;YeDJebAIq)HUOkG67F~ z5=Y=^V(=HRO>bYVnDSgIUYfQ5@_`7O85ADJ5Te3P@|P7-h*g?9hL=iJqY4&xvyZZ00PL z>1kXf%jp5e@k{1APufWdvauC3$r#&Q|e;{WX ze5}1Q_NF>0>iD%*MeT>$J1#rl6=H$*;M>dBD}>Cozw@Lb1k}v^g9pxGReO*ZnK)Ri z?40D1Wc8=toN7zaFleCA5d#_v!g_ChhU|B$c->CAmgqZj`s`~YmZE65%~ijq6e(#v z)&8CQG0;Nsl7tu=JE9*HN1XKCB5?LqQXk&VS7wd9k&=nylNDlQb#tY`LHqVikknez zIggz~7S>iscbkSlqc#BnZ*rzi;BA!p(oD17LJhVbQzah{w zZKC_d-y7IW{^JIjg&$V66OJDX7za;QNQH5yuoU5Fg_YGaPv->nqTKCi?B?kC@wH%A z%*dc20<)dPJoh(cKGbua%_x)ySqT~By#{y1BdoJG0=){-Z1;>@Z{z02FAkG)W1T+b z`l<|ZsNsdi>B(Eb2XkB8ADqtK^93LC{PI_8^=RLMacqGU5|>cQ0rwiVm(e@sADj0E z%|77ysi@Hd4=8_CI`Cb{#kXBf(O5~e;teP-lKkq1&}*Ai-}ij0e)?wpbK>(CF8CYp zT%|zwf4HK^XwvU4MN+O}QHQaX;~FwMf-N=@9eNAbi(JacQgNQukF@ZtV@Q+r@!E2i zqEgBXW_nChN_m8{D5=o8TQpK6{(UyKv3tXkM%R#d9-fknRKIHYlS!>6-TJS#lg6sc zNFL!D(Ah@`@z{|vkRHiqA)z+8qB{?6`ThfG+J4rvpg7khePSbo?3}9^>`wL#XIY6H zc}q+7Vn(mz-|&8CD<5Qr$Sk(cAG8iz=Ff>;C@8^#zIi}NNAx3>T-{%c*8f>awi_G2 zt9jYpvv&91gopGou92OulgESr*ta}qYXp*dm>DLEN9WB)^k^|5BRnZYfK`uN>~3jF zIw)yLf`I4TQiR9WUuIk?BNro-fS4gJf5HM?u*7m?skmFjIRl{-;1k89G)#k5`!$m3y6LrU}BMrq0HObjjG zBV&M~gKD*)1VP7Ysg`&Bu9+tnPiucw+Id#BNF$q?2+Hz4G5_cZBzCQnS_#UXqrit(+ou63j=<0;Pe(??z!q@2^3vmc6NV$)CVa-P)4fbRct>{K{+|sx*r1^_#Edwe=SFD z$W3)75&qF>@aJh7y4fSkV2|i)@Jd%JR{&1%z}E+^GjLgnGae*}m0YW3T;Ebze}EtY zxYGEh9unM*phMQGxN@tj2v_)Y^NuFh)>X4Dw%Ss_$)j?sS?Nbo{SPlnYZy@EX3+(K zwCzS>V$WhPIp~>*!lDC7C;aW1eqxq`=Z&Ey|K$G?Lx@$Y$YM-7kHU!S#V7DeHpGCI zPH%U8sF}39bi#VXrrarwLeeN07`EPR(d8<*8Ql!%+nrV$Bi*@mf`H%pJ-eE)pAgZq z5#xcv(mG(JA4V>FKb3;AWt(l9I<$+bzxd28KYFQxjF@=iW`RX-W^GuXPw-59sj z_La^ZmksLw#`j8_zinDq%wVVf$}LstFH0JO>8GRKMuu$r_M#c<&^r}tFj1Ouo4XpP zi8QGcg+B=>Dz)8rucuRnRWGZR_l#b53SI8xE0p>|5qJ3dp2Bi7y5eO5U2IU*Q3lL* z@T23LXWz=M&lO|k;NZ6APXy3v;mo%6u^7FM-FX~EwijZ=(Fdh6@me=ve~qhR4!ICR zy&ZX|lgMEd1H^eYaFsA9E*fKW*&y?2_{YnqT4!%e8-4OmBc0j5GiIclz(~JikEJge z+YXrM-yGUGQ57~G!m7ufgkZ1iKe2B^!Bm~>#RNdGpVIX7QTFtKj}@FM9sFY5X0{<5 zayFi*_FCea=-ZI5ZhcIWC0@so4+nouIag_)50<$C z>Fh)UcBA^`+K1xgY503>gj%~4GVKx#1G($L}{quivY!%PKU+a9^bW2!kIqr>^ zh(CJdad;6gDMovXsh??|xmitn*cvpSLr)={T;bW&j^(XNdL+ zrCq1qg^?^}3vXCFI(Dm+Pl*#LA8*>#R9BI#RQ8WG1E0=rJ$PK{GAsS3sf!mm?QnmU z3;W+oG=CG{8hiyCckcOCGY!SEW^NkB**rXveYlP?+G za5u@$x?jK)B}tm<1A;6-LOS2`-HLk6yO)Cy=5SpEz1D`JUd0XskvRNWJGpB;IQDDV z8!Op?cljr=aby|iIv*LV>fBd9e81=Yi6FU-&~7G~p<9DLQ1{lnt8$^@L5qi*EDCsT zxs*SJq|$f*Js%1zO@9hQivYmq4XCI~c5#v599{gZXUn`yPjIID(@ffymHSx)JCuR{JeN?h z;L~)~+6icYh~ABgya}_D%Pbu?oSF@L#?`%A08gtroaUbN2g#|~>ndMa^QzvRXuE)k ztmaCz_JcDmKsCjv{p<-NA5IhYovNs@Odv6^5tYe()10nZ3chA){e;XD)%_7)<}mJ3qh#C7N%})SC2Yp+op-F zMKR9>>2y%yLrsL)J}QRbg}u1oUcZDkW$_zSwB;E`))t)On+6H%@QFsKum&+J9F~u4E3fs!c;kub(N^q`RLp0ug759|X z87_OmT-j0-g_HTy-q88}tqkpiwOJ5d|X%+h(^p0AqQCkncpX_(tx!V=CZ$zi?T9vWE zPzd6NFHJ%hC%N_`ZD^W}(|Xi|)?ObX-?GeJ%3uUiM}F!g2yYMqsCr=al>O~MznB$) z|4;;_F@h+F$XAQ(-Md3Wf8%Xof4+>mUwQOE67#zfvzQ-D$I)q|EV^>2DT{`tSYBMQF7knJne zLN0`IcwyWD^7`9vO8kM#pE3i-@VH_V*O~hPK*E&0KS;$htzlt7K9|3zz*Br4;>{rN zr>Trz^&F;7z#&4^6WA9wr)er3w}IX2FMI*=X(tkw3Lm|gEq_Piff2z7f=e^=SArwn zz7g7*-m4#azv=Yt47y7@vsbDY?@T`u^<69PAi*PH9^|N?pk^=<2C=5;f8iE* zW8puMb8wk(Y7=PBcvUVj9hvkY=9!|s1mRcFT)*IvLUP2fP(OAJaPp2)r?==@!SRs3 zp<|ekPxuF$A+w7dOJ^vs&~&fgU&k=vlrO8tbCLYtJ--9aJEMNui2NMxG)Jk;iKnDn zr*))`uy4uAK93nI{BT8>Ewl2__P<((5(eXlXug04U367*rfJ0XK@(RB_OpzMEa+Yt z<^Uyl-bEq!3azs2^2Ie6w| zsqSAEv~#nKVKb0&`f=236h9kAH7E;9g;Wsk{S5aFO?J%%>o=)U$NX1kL2<+TZz*_9%Wr zlQ_yg+G8HlS0i*8asH5r{anR(oL5>luXP}>t~lZKfvmpoLm0c{AP;n>t0vy*auaV3 zZU4Tld=bYu%tjMW`E`Oc9&T-`LfSutic!ak+3lZl?42y@c9U@ftn(eM=(`@S5A?EQ z2;Wh=Qr~IkG_?mD`0*Qgyf2YEsa@4boorw@?!s3xEx~)L-=B(uOsa!GARM`twFvUy zCe%Nh2buhPBTkEZ!wV7XJS1M@Q(ECVz8*+yk)f0L^n11!4rg@C5z~AG=zn={RCH|b z?^u4M&5GAuMxJSGQHxw5A_Pmhy5otBitiE`zKZ{zc>USTLPaNOr)2a~QuU`RWaIY2 z(d$$5*te_fh;4iL{2yfbe1Rqjm9{@cTv`fZB5F?&82lN(2V-8cGsMC;dH5dV5do!( zc7os=wtwnvzUvF=epDecbTArpT5P7W34MQKVf7=yz7sb|W@bU@E#Y%{ePjtkMCA8* zTN*NV==dg{O#o_XF`7=A4x-1an9R@gVadMM>CwZ|7gTLaKe{rPkctHnaXb}Y@N!;x z$baYMoPBdynwHU2qx`H3#96#83 zXUw8tMBaUt+A%O6gi7Oia2{&{tuViE%=u&kfj{7^0g1pjNW*IM>97|+mn?Qp@&+cQG-jXx6fH7q}Zx zj+j#RJhEN~!Npc|pZ%lX8u`Z~1eI^MmV+y_I&8@KI=e|f-g$4kziz{a=CuBpB09<1 zHXusdPx8_haz9kZBEp2Nk;qm_<%gB*-^jiH#tBe1`>0$_>v7b_&6goCFWrY?oRuGEtc#B^ z)+98DIWBd-RF)Y=DBM5A((v@Itw+v%kQEGeX`Kl`15+Atni?yDYVR#cq7MlNs^?A5 zzRp+wA&YTJs1~g^vOO5rp1QylLFtTUSYKI@&BC(4{mLQjNJ;Fp}8Gj|a@lLuL^`4r4Jm*Ev zpPN>u^Xey#qnXHD)nQ>J%nR=3^cx@)O#df-Z1@sfW(7BiFxVc9p%0B2TVO<3Us(wI zmabYB!kp|0N@GjK7#w{lWMYvOr@6r-LxALRn`K_uGdPOO@T)3LDLRZYBHdo7k7o5v&jF^=Kl5AeeEb#*k7eaWXf##3dcK);t#4oOH(BI4dG1G8UhH z$)q-8bnubL<6b$mG(*5eHJZVTS*BM@sL3>9HF-c*x%uO^F^iHkcQ_p$LbmX6aT7@> z5%`j{$oATY$Q%-m@xz``N5Jz6AfV)zq+apn0m7u&(eH+*&3#$#+lh#Brb6feT!f6F z!*7x(&EcWTuI>`bFLje>hS|9H!;;se7619opHC<68E;jGpKNpbk<2DxztQls11ft#8c4^IL16064N@j)J4Z(8a}nx`m8J+QdnMJ{MD zJhuL*Q&V2xGw(u@$w^=Qhsf49wKS~>op2RoPdFfxNV3iljjaF_#EKUIW+XldCs4@p z&o2e)`*~kK9b+ckyeuYDW4#gizLck{I`Aa7hQAAoTrGc>Ve^x}3q02ehDk4^0eQu; zv;Lw}jRcz|y57R`*y3#SEI#+UzBP-)On%lM5)&H3-FuEn6cS>(1FznDKadHlmcBk6 zPER-#?6(0$_+>aYL<$K#tpB#O@ywh&(O-*O^Py|Gr<%Q*dC-5r&t&7MIERGdf#i-4 zsW0-2PS%#)R9#BPk$Xz%%uMuQSRG}!VF-RSbr zp6&W7qQIJx)&r!ZvYb*7Na4+alTV76sjUIkZ9L+ zSbj!UejvG_zShNoSSJfB-cYQhQG}3x4%CsC-uf)4NNCS-W-sO76;G3mm{i-oM;8A~ zk3!{RS7E&9hJ?61FH(rLC%NCz*wrt^RX--8$#r6%wY>rU!n$Jhg!hzJiYmidCPJqY zt6j_64;J>-^HX(laq#y(bP(!qPL(^iEMkM|lacA9!l2pjD*{iBv8XH#|5;JD{Jt=l za;2|H$+4yM*=h2^GGS7B7+b4)LeE}Jz`e@VxAo-- zto;W&n%*5+prwh>U>gu(?M&-9|E8(^Kd?afE_tu-A^NI4?KIvNorLdjaj8qw?Hj>j zXl@9dBBiCR%Y7XRrn3{OXt5m~9LM;&>NsG^UHCVWLDIhxB|6J06AU-wn}Rr56gbhC zh$D3gZ52?NhGm%~s{j&I@n#kSD62(o$2m!#dVfY}G1t64ebE@L2J^2V4KYgxIF$Sg zE5v1q01(0VsVQJXwadPT;?wXcAf*&mKFaT1E)gK|zt}u`^f7?7AbPyC>h{XbK*i)$ zQH|>H2S9N;HKL(DIJ#wb)Qx3ZBk5Fr=OnZ#aM`Tg@8aQ0TiAXu)4(2@ZnWZ_j4Hel znXm&_AG(?!KQTpsI&9?t%2CgQ&xj|lWPiJPZ5c^F(f6u9d<2hF*hdg zOY?Sj*V2ctncQTAw+39AOfHKGzI~6ag;Cd##mCYIzp3_4-AR>S+66{ibqyT2x!SH9 zi!tqVp0~9K!m#K<<^DcSx`wP64EL!-Od2CB1hBw#U)zu8ZGIq?ebhST%txisKBfKX zo=w}ne<{hT1>eeS-K>Y_6?yHUC$EsEGzh~!D=-$}= zn^A^}p=yB~g$e3d*?JJYhI=`_@Zh5&;ger{RfhG7lYiC{V5i z!y1C3+iN+Vu79NmWOn}iBt~7eOco^x+$h9&E;F-Ze)kEDZACNAgJ_|TE^G;%{07oh z{g)&?eDSYLGp1ON_D51YdMAokFBYs5{Ut!8P221=77AnbbQ#B2Pc=AP@PtSAbRKEh z`O=d4tXzk~MmA~*_VOIKuj}Z*nNiTgATz%f43VR_@xsQeb<8^F>-D|JRyacqRajf+ z96w7eke+s88Y86&PWF1~-pg%OkK%GQ`BEj629HSEESH(+!tWgQahn;@D+giS!JCq{ zcMLSL=f4=o<%Oj2HFucHj6Z)+tD{S-;AgjX!$p{(l`E#}$;2;C((pXEb{#B8HJms^`-ktYiycVd&WeG!yP%V-_EYbwFZ;RooEajfo94q=6 zS8Z!5Le?)HJSYoMqJJ))vi&yO$FtmtNU0;KRwc53zn-?&GAh*teQm|(HmO8A7w*i} zn)CNMA3NI~8jEJ*?iOi7tcyzdQ7wxrG1CxVi;2<206ExZz!{0O3Zp z=tKZoM+zlsntVVFO-z0bMiZ{+{cWcZKG2G!Q+RF`($%t0r+-V#9Qz#w#d?0}c}Svs zDCFE%%sNQJwgfgOK2m9WY7g9fABP!9j=GnJqu)_s%qjbq`DsLW4uZ1e=lJid?FnM* zUMBS6XKXF^WyZwi1FD3d0oDXr^PA?2@e5iwoYwS~cfk1rEcil!Tx%3S1dK_u zOWs8KVJwRvLc5DgK)0XtBNv)>p)MUPWE-Pc9t$~lSa zUP!X)WtRf|w^yR`76fq{iRsetF=ir}l9CZ6Wxu={E;(jJx-hrbXFEg&>Vk-BSbsAa zs|)RQjb8WqG#ePzybiMma$xv~B^(Tor#c1;t`bo&PG0XC*amJ-^(8jQv!)Q0o*5=2 zG#c9d&^bJc$FkbgS1$woNb`C9$ zLF%+#O>5tZoNck|OJMTyZu!*Pdcq!?i<=bi85Q`t2er%ZO*{V>NFTmzZo^cL~fAa;@i z9O7YtL%ce?yPX0i#BvzQ=dP9ai(d)g<|Yoq2^^(QC6?MYPO&M-l3Zn$Z-P69F$PIeF@$zc{ye4tLlb zuG)p@ z2Wtd!UQ{Gk4^5MoPS_P05k&LDbyqM-F@&wgZFRVRXCMbm8$J*k%5rl* zMIv+zRQM_eyV91lE6j| z5N1Ws&By1|1$Y zS5IR(wD|w=UsqtY-sY&hvog26iQiU&f=5s@A_3@k7x#Lr>uFc(ndbAC@g5y7m51yL zoV-UbCtUp^0x)bsJReR-LU4VxTk>(FFt=&6v(h3CpP(e&2c==Bf9;?zEeu-6(PW7j zf<;T&n>fKyj%_~y;y(zzY3ng1L&0oK(aGMOt+`(luvr~SoNYsV@Uo62*-0m!SHOf_ zL)QS93MAF4Jgr+j0Y(omqi$E2Q5d(wug|DVwZd2HYfTpRt7zS86NHJj2h8O<>E|pk z4wu=bXXX2Ql9>sn(Nk6M5;hyWDU+e9ZTZKDh~|R2k}TaII*mDkrrYrHozg&@8wLXF zUl0n9Q)C@|VnI8HWmxy+H8`RE_XgLSUYSrRB)edNvF7wSxJ<$uoYj2u54Y*UJaU8BfvZ&?aVX`^kUvvnddQM5_Z!sr?XzG`wueSZ)|SsQkkuMn z$Is$-PRVH)GsQmB)s;1j6y}H3?lojWT$N z-f=#J>qb&J*al$u<*xus!JteWSc$u#3g3gv;&tmV^4 z8puqIn2G$Ggijn|G@IQ+jI)Q2#1)}B8~B+zK8Y= zpWZWafHOtyO9eIj3MB11++=3&EgF|wu@oYMBj)y_%M%#UZQ8TU+4KNby~M(eV#n2> z@QUvm1CYh2U8cpBHX=C!1y(&q{Y}-Lm(J{aEX-IdSAt}((G?Lk=RH0KZa|Lz1DpT< fk^X7-dzMMrk)b+Iw+GC>4FJzowV~C@mf`;o%69@T diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc-2-0-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2 Sc-2-0-box2.png index 5460a3836a1c743caf0caf94d159f9ceaf2f08df..3dbbb594233a820b64cf3c8587ad86df627b61e0 100644 GIT binary patch literal 2137 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJC^1y2{pkcv5P@A!A8gi9X( zXmD9^!2}K`F(J+$QcAl{7)i%Fi0u;-FMlj;z`bxgmmb%#mW9Et92=Wm<|MdV&0Obr ztdWJ&=R)BO`%nQEP3zn9+N$^3)V_LBX&3(^clWuS+h1*d^L*ayo4eEf>m@fneS214 z$?Ut_q%;d-I!=$*AaDPCSU%%8ucXi*UR%=a<|^Q(|yBwzHOCmlKXs{8q=h}_iJK+k;(uH zABF|M0HQMU%YSp8>rT^lJp5B9*llz9;lq=k1*6w)mv_^i3=m1awsk@cpXJZ@KU?!rSpt}-|ET8Ows!pO zd|_MTZ>yx!o8LyBxOV$KFnI6pU!AitBBuYw(s~(SpgG*9pA$g=606DZT>taQIdko9 z0;BkN{gF3++N1dt=KlYZoBQ|m-2C}FJ|5%&+JYA>4QJ0x-y!P>zf2Reb*KJ?j;d)oQc>mt74~}*Nb8#ALLw-ESd9)}=rZW{(6n**w zEOw2=rThB%7m1ZF17&2TZ|Bti|8l%y_a|w4_l>N*yf;6+Ir&=9+Q#O89GmW|zu&JJ z@Lbp9Lk%^D^80UBpbBB|9IpI+uZtmyDj@LnUo|(X5CcPr=Y5+Q9jsr!y{-RmkQJET zwaR>p^6#sk-f;`w{%-q$Aj&(LqawVaXwK vs5=Hc>>$6WoaJB$ddQ$4%7;lUxc6KB;TijtZ+<&J1BH;MtDnm{r-UW|C;EE( literal 3638 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2-2-0-box1.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2-2-0-box1.png index 981cf74dfd8b238a693a6785561b124fdf904137..14206c495d0f1e63c8b24667f576983bcb44b703 100644 GIT binary patch literal 5248 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 TqFDaR>tKIlK literal 12436 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 diff --git a/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2-2-0-box2.png b/test/python_tests/images/support/pgraster/rgba_8bui-rgba_8bui C T_16x16 O_2-2-0-box2.png index 5460a3836a1c743caf0caf94d159f9ceaf2f08df..3dbbb594233a820b64cf3c8587ad86df627b61e0 100644 GIT binary patch literal 2137 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJC^1y2{pkcv5P@A!A8gi9X( zXmD9^!2}K`F(J+$QcAl{7)i%Fi0u;-FMlj;z`bxgmmb%#mW9Et92=Wm<|MdV&0Obr ztdWJ&=R)BO`%nQEP3zn9+N$^3)V_LBX&3(^clWuS+h1*d^L*ayo4eEf>m@fneS214 z$?Ut_q%;d-I!=$*AaDPCSU%%8ucXi*UR%=a<|^Q(|yBwzHOCmlKXs{8q=h}_iJK+k;(uH zABF|M0HQMU%YSp8>rT^lJp5B9*llz9;lq=k1*6w)mv_^i3=m1awsk@cpXJZ@KU?!rSpt}-|ET8Ows!pO zd|_MTZ>yx!o8LyBxOV$KFnI6pU!AitBBuYw(s~(SpgG*9pA$g=606DZT>taQIdko9 z0;BkN{gF3++N1dt=KlYZoBQ|m-2C}FJ|5%&+JYA>4QJ0x-y!P>zf2Reb*KJ?j;d)oQc>mt74~}*Nb8#ALLw-ESd9)}=rZW{(6n**w zEOw2=rThB%7m1ZF17&2TZ|Bti|8l%y_a|w4_l>N*yf;6+Ir&=9+Q#O89GmW|zu&JJ z@Lbp9Lk%^D^80UBpbBB|9IpI+uZtmyDj@LnUo|(X5CcPr=Y5+Q9jsr!y{-RmkQJET zwaR>p^6#sk-f;`w{%-q$Aj&(LqawVaXwK vs5=Hc>>$6WoaJB$ddQ$4%7;lUxc6KB;TijtZ+<&J1BH;MtDnm{r-UW|C;EE( literal 3638 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 From 15213d31764ab06e1c5bdfef5716a472580531cd Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 14:12:24 -0700 Subject: [PATCH 13/18] use postgres/postgis from mason, test on osx --- .travis.yml | 31 +++++++++---------------------- bootstrap.sh | 31 ++++++++++++++++++++++--------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6d4b3628b..8972bc1c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,10 @@ language: generic -git: - submodules: true - depth: 10 - -addons: - postgresql: "9.4" - matrix: include: - os: linux sudo: false - compiler: ": clang" + compiler: clang # note: only using ccache for CC is intentional here to # workaround an odd bug in distutils that manifests when only `ccache` is used to link # because distutils also has a bug whereby CC is used to compile instead of CXX, this works :) @@ -20,11 +13,10 @@ matrix: apt: sources: [ 'ubuntu-toolchain-r-test'] packages: [ 'libstdc++-5-dev', 'gdb', 'apport'] - # disabled until I have time to fix https://github.com/mapnik/python-mapnik/issues/95 - #- os: osx - # osx_image: xcode7.3 # upgrades clang from 6 -> 7 - # compiler: clang - # env: JOBS=4 + - os: osx + osx_image: xcode8.2 + compiler: clang + env: JOBS=4 cache: directories: @@ -61,17 +53,8 @@ before_install: which clang++ else sudo easy_install pip; - brew info postgres; - export DATA_PATH=$(brew --prefix)/var/postgres; - rm -rf ${DATA_PATH}; - initdb ${DATA_PATH} -E utf8; - pg_ctl -w start -l postgres.log --pgdata ${DATA_PATH}; - cat postgres.log; - createuser -s postgres; export LDSHARED=$(python -c "import os;from distutils import sysconfig;print sysconfig.get_config_var('LDSHARED').replace('cc ','clang++ ')"); fi - - psql -c 'create database template_postgis;' -U postgres - - psql -c 'create extension postgis;' -d template_postgis -U postgres - pip install --upgrade --user nose - pip install --upgrade --user wheel - pip install --upgrade --user twine @@ -84,8 +67,12 @@ install: - python setup.py install --prefix ${PYTHONUSERBASE} before_script: + # start postgres/postgis + - source mason-config.env && ./mason_packages/.link/bin/postgres > postgres.log & - python test/run_tests.py - python test/visual.py -q + # stop postgres + - ./mason_packages/.link/bin/pg_ctl -w stop script: - | diff --git a/bootstrap.sh b/bootstrap.sh index 0d6dde9eb..0134f3115 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -42,15 +42,28 @@ function install_mason_deps() { function setup_runtime_settings() { local MASON_LINKED_ABS=$(pwd)/mason_packages/.link - export PROJ_LIB=${MASON_LINKED_ABS}/share/proj - export ICU_DATA=${MASON_LINKED_ABS}/share/icu/${ICU_VERSION} - export GDAL_DATA=${MASON_LINKED_ABS}/share/gdal - if [[ $(uname -s) == 'Darwin' ]]; then - export DYLD_LIBRARY_PATH=$(pwd)/mason_packages/.link/lib:${DYLD_LIBRARY_PATH} - else - export LD_LIBRARY_PATH=$(pwd)/mason_packages/.link/lib:${LD_LIBRARY_PATH} - fi - export PATH=$(pwd)/mason_packages/.link/bin:${PATH} + echo "export PROJ_LIB=${MASON_LINKED_ABS}/share/proj" >> mason-config.env + echo "export ICU_DATA=${MASON_LINKED_ABS}/share/icu/${ICU_VERSION}" >> mason-config.env + echo "export GDAL_DATA=${MASON_LINKED_ABS}/share/gdal" >> mason-config.env + echo "export PATH=${MASON_LINKED_ABS}/mason_packages/.link/bin:${PATH}" >> mason-config.env + echo "export PGTEMP_DIR=${MASON_LINKED_ABS}/local-tmp" >> mason-config.env + echo "export PGDATA=${MASON_LINKED_ABS}/local-postgres" >> mason-config.env + source mason-config.env + rm -rf ${PGDATA} + mkdir -p ${PGDATA} + rm -rf ${PGTEMP_DIR} + mkdir -p ${PGTEMP_DIR} + ./mason_packages/.link/bin/initdb + sleep 2 + ./mason_packages/.link/bin/postgres > postgres.log & + sleep 2 + ./mason_packages/.link/bin/psql postgres -c "CREATE TABLESPACE temp_disk LOCATION '${PGTEMP_DIR}';" + ./mason_packages/.link/bin/psql postgres -c "SET temp_tablespaces TO 'temp_disk';" + ./mason_packages/.link/bin/psql postgres -c "CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;" + ./mason_packages/.link/bin/createdb template_postgis -T postgres + ./mason_packages/.link/bin/psql template_postgis -c "CREATE EXTENSION postgis;" + ./mason_packages/.link/bin/psql template_postgis -c "SELECT PostGIS_Full_Version();" + ./mason_packages/.link/bin/pg_ctl -w stop } function main() { From d9183fcd89c33c2f71d423a55cc621f395ec6287 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 14:39:40 -0700 Subject: [PATCH 14/18] ensure mason-config.env is created anew --- bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.sh b/bootstrap.sh index 0134f3115..5d84cd857 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -42,7 +42,7 @@ function install_mason_deps() { function setup_runtime_settings() { local MASON_LINKED_ABS=$(pwd)/mason_packages/.link - echo "export PROJ_LIB=${MASON_LINKED_ABS}/share/proj" >> mason-config.env + echo "export PROJ_LIB=${MASON_LINKED_ABS}/share/proj" > mason-config.env echo "export ICU_DATA=${MASON_LINKED_ABS}/share/icu/${ICU_VERSION}" >> mason-config.env echo "export GDAL_DATA=${MASON_LINKED_ABS}/share/gdal" >> mason-config.env echo "export PATH=${MASON_LINKED_ABS}/mason_packages/.link/bin:${PATH}" >> mason-config.env From 8579cbd55fe0f54a99083344a099fae4ad7626eb Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 14:39:56 -0700 Subject: [PATCH 15/18] move tests to script so they all run through --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8972bc1c5..e82340f96 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,12 +69,12 @@ install: before_script: # start postgres/postgis - source mason-config.env && ./mason_packages/.link/bin/postgres > postgres.log & + +script: - python test/run_tests.py - python test/visual.py -q # stop postgres - ./mason_packages/.link/bin/pg_ctl -w stop - -script: - | if [[ ${COMMIT_MESSAGE} =~ "[publish]" ]]; then python setup.py bdist_wheel From 21b7c79c6550db699dfc74978956c3d78f31219f Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 14:42:24 -0700 Subject: [PATCH 16/18] update to mapnik v3.0.15 test data --- test/data | 2 +- test/data-visual | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/data b/test/data index 6ce59adfc..cd681781c 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit 6ce59adfc4f11b16a5dc0e2020c36dc614850989 +Subproject commit cd681781c6efbfe9c83e365501d1cb44b8d6b366 diff --git a/test/data-visual b/test/data-visual index 941db3d00..70bfb10e8 160000 --- a/test/data-visual +++ b/test/data-visual @@ -1 +1 @@ -Subproject commit 941db3d00920dc7aceaa6797096a7228bc7bac14 +Subproject commit 70bfb10e89be57f8c108083bd8712c5db68fcd7f From 728f98a4d15bd3814d6600d5797d38b5863281ad Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 15:00:29 -0700 Subject: [PATCH 17/18] load everything into the template_postgis db --- bootstrap.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 5d84cd857..79cb51051 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -57,10 +57,10 @@ function setup_runtime_settings() { sleep 2 ./mason_packages/.link/bin/postgres > postgres.log & sleep 2 - ./mason_packages/.link/bin/psql postgres -c "CREATE TABLESPACE temp_disk LOCATION '${PGTEMP_DIR}';" - ./mason_packages/.link/bin/psql postgres -c "SET temp_tablespaces TO 'temp_disk';" - ./mason_packages/.link/bin/psql postgres -c "CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;" ./mason_packages/.link/bin/createdb template_postgis -T postgres + ./mason_packages/.link/bin/psql template_postgis -c "CREATE TABLESPACE temp_disk LOCATION '${PGTEMP_DIR}';" + ./mason_packages/.link/bin/psql template_postgis -c "SET temp_tablespaces TO 'temp_disk';" + ./mason_packages/.link/bin/psql template_postgis -c "CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;" ./mason_packages/.link/bin/psql template_postgis -c "CREATE EXTENSION postgis;" ./mason_packages/.link/bin/psql template_postgis -c "SELECT PostGIS_Full_Version();" ./mason_packages/.link/bin/pg_ctl -w stop From f39a2b800adba102ec680bfa347e1991d057430e Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 20 Jun 2017 15:06:37 -0700 Subject: [PATCH 18/18] run postgres on alt host/port to avoid conflicting with travis installed postgres --- .travis.yml | 3 ++- bootstrap.sh | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index e82340f96..6d3648a6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -68,7 +68,8 @@ install: before_script: # start postgres/postgis - - source mason-config.env && ./mason_packages/.link/bin/postgres > postgres.log & + - source mason-config.env + - ./mason_packages/.link/bin/postgres -k ${PGHOST} > postgres.log & script: - python test/run_tests.py diff --git a/bootstrap.sh b/bootstrap.sh index 79cb51051..78ac56aca 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -45,17 +45,22 @@ function setup_runtime_settings() { echo "export PROJ_LIB=${MASON_LINKED_ABS}/share/proj" > mason-config.env echo "export ICU_DATA=${MASON_LINKED_ABS}/share/icu/${ICU_VERSION}" >> mason-config.env echo "export GDAL_DATA=${MASON_LINKED_ABS}/share/gdal" >> mason-config.env - echo "export PATH=${MASON_LINKED_ABS}/mason_packages/.link/bin:${PATH}" >> mason-config.env - echo "export PGTEMP_DIR=${MASON_LINKED_ABS}/local-tmp" >> mason-config.env - echo "export PGDATA=${MASON_LINKED_ABS}/local-postgres" >> mason-config.env + echo "export PATH=$(pwd)/mason_packages/.link/bin:${PATH}" >> mason-config.env + echo "export PGTEMP_DIR=$(pwd)/local-tmp" >> mason-config.env + echo "export PGDATA=$(pwd)/local-postgres" >> mason-config.env + echo "export PGHOST=$(pwd)/local-unix-socket" >> mason-config.env + echo "export PGPORT=1111" >> mason-config.env + source mason-config.env + rm -rf ${PGHOST} + mkdir -p ${PGHOST} rm -rf ${PGDATA} mkdir -p ${PGDATA} rm -rf ${PGTEMP_DIR} mkdir -p ${PGTEMP_DIR} ./mason_packages/.link/bin/initdb sleep 2 - ./mason_packages/.link/bin/postgres > postgres.log & + ./mason_packages/.link/bin/postgres -k ${PGHOST} > postgres.log & sleep 2 ./mason_packages/.link/bin/createdb template_postgis -T postgres ./mason_packages/.link/bin/psql template_postgis -c "CREATE TABLESPACE temp_disk LOCATION '${PGTEMP_DIR}';"