about summary refs log tree commit diff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/Execute-Tests113
-rw-r--r--test/Test-Order89
-rw-r--r--test/all-in-place.ok351
-rwxr-xr-xtest/all-in-place.test104
-rw-r--r--test/bmp-roundtrip.ok2
-rwxr-xr-xtest/bmp-roundtrip.test6
-rw-r--r--test/cut-paste-roundtrip.ok1
-rwxr-xr-xtest/cut-paste-roundtrip.test6
-rw-r--r--test/g3-roundtrip.ok3
-rwxr-xr-xtest/g3-roundtrip.test13
-rw-r--r--test/gif-roundtrip.ok3
-rwxr-xr-xtest/gif-roundtrip.test30
-rw-r--r--test/hdiff-roundtrip.ok1
-rwxr-xr-xtest/hdiff-roundtrip.test6
-rw-r--r--test/pad-crop-roundtrip.ok2
-rwxr-xr-xtest/pad-crop-roundtrip.test8
-rw-r--r--test/pamcut.ok4
-rwxr-xr-xtest/pamcut.test14
-rw-r--r--test/pamdepth-roundtrip.ok8
-rwxr-xr-xtest/pamdepth-roundtrip.test12
-rw-r--r--test/pamdice-roundtrip.ok1
-rwxr-xr-xtest/pamdice-roundtrip.test9
-rw-r--r--test/pamditherbw.ok4
-rwxr-xr-xtest/pamditherbw.test31
-rw-r--r--test/pamedge.ok77
-rwxr-xr-xtest/pamedge.test7
-rw-r--r--test/pamenlarge.ok4
-rwxr-xr-xtest/pamenlarge.test12
-rw-r--r--test/pamfile.ok3
-rwxr-xr-xtest/pamfile.test7
-rw-r--r--test/pamflip-roundtrip.ok12
-rwxr-xr-xtest/pamflip-roundtrip.test34
-rw-r--r--test/pamflip.ok6
-rwxr-xr-xtest/pamflip.test16
-rw-r--r--test/pamseq.ok1
-rwxr-xr-xtest/pamseq.test5
-rw-r--r--test/pamslice-roundtrip.ok2
-rwxr-xr-xtest/pamslice-roundtrip.test29
-rw-r--r--test/pamsumm.ok8
-rwxr-xr-xtest/pamsumm.test13
-rw-r--r--test/pamtopam.ok16
-rwxr-xr-xtest/pamtopam.test9
-rw-r--r--test/pbmclean.ok73
-rwxr-xr-xtest/pbmclean.test16
-rw-r--r--test/pbmmake.ok43
-rwxr-xr-xtest/pbmmake.test18
-rw-r--r--test/pbmminkowski.ok23
-rwxr-xr-xtest/pbmminkowski.test10
-rw-r--r--test/pbmpage.ok3
-rwxr-xr-xtest/pbmpage.test7
-rw-r--r--test/pbmpscale.ok50
-rwxr-xr-xtest/pbmpscale.test11
-rw-r--r--test/pbmtext.ok21
-rwxr-xr-xtest/pbmtext.test11
-rw-r--r--test/pbmtog3.ok11
-rwxr-xr-xtest/pbmtog3.test28
-rw-r--r--test/pbmupc.ok1
-rwxr-xr-xtest/pbmupc.test8
-rw-r--r--test/pgmhist.ok14
-rwxr-xr-xtest/pgmhist.test6
-rw-r--r--test/pgmmake.ok2
-rwxr-xr-xtest/pgmmake.test10
-rw-r--r--test/pgmramp.ok32
-rwxr-xr-xtest/pgmramp.test12
-rw-r--r--test/pgmtopgm.ok1
-rwxr-xr-xtest/pgmtopgm.test5
-rw-r--r--test/pgmtoppm.ok3
-rwxr-xr-xtest/pgmtoppm.test18
-rw-r--r--test/png-roundtrip.ok2
-rwxr-xr-xtest/png-roundtrip.test7
-rw-r--r--test/pnm-pam-roundtrip.ok2
-rwxr-xr-xtest/pnm-pam-roundtrip.test7
-rw-r--r--test/pnm-plain-roundtrip.ok2
-rwxr-xr-xtest/pnm-plain-roundtrip.test9
-rw-r--r--test/pnmcat.ok4
-rwxr-xr-xtest/pnmcat.test9
-rw-r--r--test/pnminvert-roundtrip.ok2
-rwxr-xr-xtest/pnminvert-roundtrip.test6
-rw-r--r--test/pnminvert.ok7
-rwxr-xr-xtest/pnminvert.test20
-rw-r--r--test/pnmpsnr.ok2
-rwxr-xr-xtest/pnmpsnr.test11
-rw-r--r--test/pnmremap1.ok1
-rwxr-xr-xtest/pnmremap1.test19
-rw-r--r--test/pnmremap2.ok3
-rwxr-xr-xtest/pnmremap2.test21
-rw-r--r--test/pnmtile.ok2
-rwxr-xr-xtest/pnmtile.test12
-rw-r--r--test/pnmtopnm-plain.ok48
-rwxr-xr-xtest/pnmtopnm-plain.test10
-rw-r--r--test/ppmbrighten.ok3
-rwxr-xr-xtest/ppmbrighten.test7
-rw-r--r--test/ppmchange-roundtrip.ok2
-rwxr-xr-xtest/ppmchange-roundtrip.test11
-rw-r--r--test/ppmcie.ok1
-rw-r--r--test/ppmcie.out-641
-rwxr-xr-xtest/ppmcie.test20
-rw-r--r--test/ppmdim.ok13
-rwxr-xr-xtest/ppmdim.test19
-rw-r--r--test/ppmdither.ok3
-rwxr-xr-xtest/ppmdither.test7
-rw-r--r--test/ppmgauss.ok81
-rwxr-xr-xtest/ppmgauss.test11
-rw-r--r--test/ppmhist.ok11
-rwxr-xr-xtest/ppmhist.test7
-rw-r--r--test/ppmmake.ok2
-rwxr-xr-xtest/ppmmake.test13
-rw-r--r--test/ppmmix.ok17
-rwxr-xr-xtest/ppmmix.test29
-rw-r--r--test/ppmtopgm.ok1
-rwxr-xr-xtest/ppmtopgm.test7
-rw-r--r--test/ppmtoppm.ok1
-rwxr-xr-xtest/ppmtoppm.test5
-rw-r--r--test/ppmwheel.ok2
-rwxr-xr-xtest/ppmwheel.test113
-rw-r--r--test/ps-roundtrip.ok2
-rwxr-xr-xtest/ps-roundtrip.test21
-rw-r--r--test/rgb3-roundtrip.ok5
-rwxr-xr-xtest/rgb3-roundtrip.test31
-rw-r--r--test/testgrid.pbm3
-rw-r--r--test/testimg.ppm4
-rw-r--r--test/tiff-roundtrip.ok4
-rwxr-xr-xtest/tiff-roundtrip.test20
-rw-r--r--test/xbm-roundtrip.ok2
-rwxr-xr-xtest/xbm-roundtrip.test6
-rw-r--r--test/xpm-roundtrip.ok1
-rwxr-xr-xtest/xpm-roundtrip.test8
-rw-r--r--test/xwd-roundtrip.ok3
-rwxr-xr-xtest/xwd-roundtrip.test14
129 files changed, 2236 insertions, 0 deletions
diff --git a/test/Execute-Tests b/test/Execute-Tests
new file mode 100755
index 00000000..104853e5
--- /dev/null
+++ b/test/Execute-Tests
@@ -0,0 +1,113 @@
+#! /bin/bash
+
+# Confirm that PBM_TESTPREFIX is set.
+# PBM_TESTPREFIX is the directory with the Netpbm programs you want to
+# test.  This can be null, but this is not recommended.
+#
+# You can set it here by decommenting and modifying the next line:
+# export PBM_TESTPREFIX="/usr/local/bin/"
+
+
+if [ -z $PBM_TESTPREFIX ]
+  then
+  echo "Warning: PBM_TESTPREFIX is not set."
+  echo "Programs in the default execution path:"
+  echo $PATH
+  echo "will be tested."
+elif [ ! -d $PBM_TESTPREFIX ]
+  then
+  echo "Error: No directory named $PBM_TESTPREFIX"
+  exit 1
+else
+  # append "/" to end of string if necessary
+  export PBM_TESTPREFIX=`echo $PBM_TESTPREFIX | sed '/\/$/!s@$@/@'`
+fi
+
+# Set PBM_BINPREFIX.
+# PBM_BINPREFIX is the directory where Netpbm programs which play
+# auxiliary roles in tests (such as image generators for producing
+# test images, analyzers to summarize output and so forth).
+#
+# If testing a fresh install, this should be the same as PBM_TESTPREFIX.
+# If you are developing a single Netpbm program, you may want to
+# set this to a directory with stable executables.
+# If set to null, executables in the default execution path will
+# be used.
+
+# export PBM_BINPREFIX="/usr/local/bin/"
+# export PBM_BINPREFIX=""
+export PBM_BINPREFIX=${PBM_TESTPREFIX}
+
+# Add PBM_BINPREFIX to PATH.
+# This is necessary for Netpbm programs (mosly scripts) that call
+# other Netpbm programs.
+
+if [ ! -z $PBM_BINPREFIX ]
+  then
+  export PATH=${PBM_BINPREFIX}:$PATH
+fi
+
+# Set tmpdir, which is used in some of the test scripts.
+# This must be an existing directory.
+
+if [ -z $tmpdir ]
+  then
+  if [ -z $TMPDIR ]
+    then
+    export tmpdir=/tmp/
+    else 
+    export tmpdir=$TMPDIR
+  fi
+fi
+
+# If necessary set the RGBDEF environment variable.
+#export RGBDEF=/etc/rgb.txt
+#export RGBDEF=/usr/local/netpbm/lib/rgb.txt
+#export RGBDEF=/usr/share/emacs/*/etc/rgb.txt
+
+# Declare arrays used to count and report test results.
+# For now only "SUCCESS" and "FAILURE" are used.
+declare -a array=(0 0 0 0 0)
+declare -a status=("SUCCESS" "FAILURE" "UNEXPECTED SUCCESS" \
+                   "EXPECTED FAILURE" "NOT SUPPORTED")
+
+# Execute the tests, as described in the "Test-Order" file.
+#
+# To execute just one test, or a few tests, replace the grep part
+# within backquotes with names of tests you want to run like this:
+# 
+# for t in pbmmake.test pgmmake.test ppmmake.test
+
+for t in `grep -v "^#" Test-Order | grep "."`
+do
+echo == $t ==
+./$t >  ${t%.test}.out ; let result=$?
+case $result in
+0)   cmp --quiet ${t%.test}.out ${t%.test}.ok ;
+     if [ $? -eq 0 ]
+        then let result=0;  rm  ${t%.test}.out ;
+        else let result=1;
+     fi ;;
+1 | 2 | 3 ) ;;
+*) let result=1 ;;
+esac
+
+# Print out a summary report.
+
+echo $t: ${status[${result}]}; echo
+let array[${result}]=${array[${result}]}+1
+done
+
+echo "Test summary:"
+echo ==================
+
+for s in 0 1 2 3 4
+do
+if [[ ${array[${s}]} -gt 0 || s -eq 1 ]]
+then
+echo ${status[${s}]} ${array[${s}]}
+fi
+done
+
+echo ==================
+echo "All tests done."
diff --git a/test/Test-Order b/test/Test-Order
new file mode 100644
index 00000000..2801878a
--- /dev/null
+++ b/test/Test-Order
@@ -0,0 +1,89 @@
+# General test
+
+all-in-place.test
+
+# Generator tests
+
+pbmmake.test
+pgmmake.test
+ppmmake.test
+pamseq.test
+
+pbmpage.test
+pbmtext.test
+pbmupc.test
+pgmramp.test
+ppmgauss.test
+ppmcie.test
+ppmwheel.test
+
+# Analyzer tests
+
+pamfile.test
+pgmhist.test
+ppmhist.test
+pamsumm.test
+pnmpsnr.test
+pbmminkowski.test
+
+# Basic (internal) converter tests
+
+pamtopam.test
+pgmtopgm.test
+ppmtoppm.test
+pgmtoppm.test
+ppmtopgm.test
+pnmtopnm-plain.test
+
+# Editor tests
+
+pamditherbw.test
+
+pbmclean.test
+pamcut.test
+pnmcat.test
+pamflip.test
+pamenlarge.test
+pnminvert.test
+
+pbmpscale.test
+pnmremap1.test
+pnmremap2.test
+pnmtile.test
+ppmbrighten.test
+ppmdither.test
+pamedge.test
+ppmdim.test
+
+ppmmix.test
+
+# Format converter tests
+
+pbmtog3.test
+
+# Round-trip tests : editors
+
+pnm-plain-roundtrip.test
+pnm-pam-roundtrip.test
+pnminvert-roundtrip.test
+pamflip-roundtrip.test
+pamdepth-roundtrip.test
+pad-crop-roundtrip.test
+cut-paste-roundtrip.test
+rgb3-roundtrip.test
+ppmchange-roundtrip.test
+pamdice-roundtrip.test
+pamslice-roundtrip.test
+
+# Round-trip tests : lossless converters
+
+g3-roundtrip.test
+bmp-roundtrip.test
+gif-roundtrip.test
+png-roundtrip.test
+ps-roundtrip.test
+tiff-roundtrip.test
+xbm-roundtrip.test
+xpm-roundtrip.test
+xwd-roundtrip.test
+hdiff-roundtrip.test
diff --git a/test/all-in-place.ok b/test/all-in-place.ok
new file mode 100644
index 00000000..52334382
--- /dev/null
+++ b/test/all-in-place.ok
@@ -0,0 +1,351 @@
+411toppm: ok
+asciitopgm: ok
+atktopbm: ok
+avstopam: ok
+bioradtopgm: ok
+bmptopnm: ok
+bmptoppm: ok
+brushtopbm: ok
+cameratopam: ok
+cistopbm: ok
+cmuwmtopbm: ok
+ddbugtopbm: ok
+escp2topbm: ok
+eyuvtoppm: ok
+fitstopnm: ok
+fstopgm: ok
+g3topbm: ok
+gemtopbm: ok
+gemtopnm: ok
+giftopnm: ok
+gouldtoppm: ok
+hdifftopam: ok
+hipstopgm: ok
+icontopbm: ok
+ilbmtoppm: ok
+imgtoppm: ok
+infotopam: ok
+jbigtopnm: ok
+jpeg2ktopam: ok
+jpegtopnm: ok
+leaftoppm: ok
+lispmtopgm: ok
+macptopbm: ok
+mdatopbm: ok
+mgrtopbm: ok
+mrftopbm: ok
+mtvtoppm: ok
+neotoppm: ok
+palmtopnm: ok
+pamaddnoise: ok
+pamarith: ok
+pambackground: ok
+pambayer: ok
+pamchannel: ok
+pamcomp: ok
+pamcut: ok
+pamdeinterlace: ok
+pamdepth: ok
+pamdice: ok
+pamditherbw: ok
+pamedge: ok
+pamendian: ok
+pamenlarge: ok
+pamexec: ok
+pamfile: ok
+pamfixtrunc: ok
+pamflip: ok
+pamfunc: ok
+pamgauss: ok
+pamgradient: ok
+pamlookup: ok
+pammasksharpen: ok
+pammixinterlace: ok
+pammosaicknit: ok
+pamoil: ok
+pampaintspill: ok
+pamperspective: ok
+pampick: ok
+pampop9: ok
+pamrecolor: ok
+pamrgbatopng: ok
+pamrubber: ok
+pamscale: ok
+pamseq: ok
+pamsharpmap: ok
+pamsharpness: ok
+pamsistoaglyph: ok
+pamslice: ok
+pamsplit: ok
+pamstack: ok
+pamstereogram: ok
+pamstretch: ok
+pamsumm: ok
+pamsummcol: ok
+pamthreshold: ok
+pamtilt: ok
+pamtoavs: ok
+pamtodjvurle: ok
+pamtofits: ok
+pamtogif: ok
+pamtohdiff: ok
+pamtohtmltbl: ok
+pamtojpeg2k: ok
+pamtompfont: ok
+pamtooctaveimg: ok
+pamtopam: ok
+pamtopdbimg: ok
+pamtopfm: ok
+pamtopnm: ok
+pamtosrf: ok
+pamtosvg: ok
+pamtotga: ok
+pamtotiff: ok
+pamtouil: ok
+pamtoxvmini: ok
+pamundice: ok
+pamwipeout: ok
+pamx: ok
+pbmclean: ok
+pbmlife: ok
+pbmmake: ok
+pbmmask: ok
+pbmminkowski: ok
+pbmpage: ok
+pbmpscale: ok
+pbmreduce: ok
+pbmtext: ok
+pbmtextps: ok
+pbmto10x: ok
+pbmto4425: ok
+pbmtoascii: ok
+pbmtoatk: ok
+pbmtobbnbg: ok
+pbmtocis: ok
+pbmtocmuwm: ok
+pbmtodjvurle: ok
+pbmtoepsi: ok
+pbmtoepson: ok
+pbmtoescp2: ok
+pbmtog3: ok
+pbmtogem: ok
+pbmtogo: ok
+pbmtoibm23xx: ok
+pbmtoicon: ok
+pbmtolj: ok
+pbmtoln03: ok
+pbmtolps: ok
+pbmtomacp: ok
+pbmtomatrixorbital: ok
+pbmtomda: ok
+pbmtomgr: ok
+pbmtomrf: ok
+pbmtonokia: ok
+pbmtopgm: ok
+pbmtopi3: ok
+pbmtopk: ok
+pbmtoplot: ok
+pbmtoppa: ok
+pbmtopsg3: ok
+pbmtoptx: ok
+pbmtosunicon: ok
+pbmtowbmp: ok
+pbmtoxbm: ok
+pbmtoybm: ok
+pbmtozinc: ok
+pbmupc: ok
+pc1toppm: ok
+pcxtoppm: ok
+pdbimgtopam: ok
+pfmtopam: ok
+pgmabel: ok
+pgmbentley: ok
+pgmcrater: ok
+pgmdeshadow: ok
+pgmedge: ok
+pgmenhance: ok
+pgmhist: ok
+pgmkernel: ok
+pgmmake: ok
+pgmmedian: ok
+pgmminkowski: ok
+pgmmorphconv: ok
+pgmnoise: ok
+pgmnorm: ok
+pgmoil: ok
+pgmramp: ok
+pgmslice: ok
+pgmtexture: ok
+pgmtofs: ok
+pgmtolispm: ok
+pgmtopbm: ok
+pgmtopgm: ok
+pgmtoppm: ok
+pi1toppm: ok
+pi3topbm: ok
+picttoppm: ok
+pjtoppm: ok
+pktopbm: ok
+pngtopam: ok
+pngtopnm: ok
+pnmalias: ok
+pnmarith: ok
+pnmcat: ok
+pnmcolormap: ok
+pnmcomp: ok
+pnmconvol: ok
+pnmcrop: ok
+pnmcut: ok
+pnmdepth: ok
+pnmenlarge: ok
+pnmfile: ok
+pnmflip: ok
+pnmgamma: ok
+pnmhisteq: ok
+pnmhistmap: ok
+pnmindex: ok
+pnminterp: ok
+pnminvert: ok
+pnmmercator: ok
+pnmmontage: ok
+pnmnlfilt: ok
+pnmnorm: ok
+pnmpad: ok
+pnmpaste: ok
+pnmpsnr: ok
+pnmremap: ok
+pnmrotate: ok
+pnmscale: ok
+pnmscalefixed: ok
+pnmshear: ok
+pnmsmooth: ok
+pnmsplit: ok
+pnmstitch: ok
+pnmtile: ok
+pnmtoddif: ok
+pnmtofiasco: ok
+pnmtofits: ok
+pnmtojbig: ok
+pnmtojpeg: ok
+pnmtopalm: ok
+pnmtopclxl: ok
+pnmtopng: ok
+pnmtopnm: ok
+pnmtops: ok
+pnmtorast: ok
+pnmtorle: ok
+pnmtosgi: ok
+pnmtosir: ok
+pnmtotiff: ok
+pnmtotiffcmyk: ok
+pnmtoxwd: ok
+ppm3d: ok
+ppmbrighten: ok
+ppmchange: ok
+ppmcie: ok
+ppmcolormask: ok
+ppmcolors: ok
+ppmdcfont: ok
+ppmddumpfont: ok
+ppmdim: ok
+ppmdist: ok
+ppmdither: ok
+ppmdmkfont: ok
+ppmdraw: ok
+ppmflash: ok
+ppmforge: ok
+ppmglobe: ok
+ppmhist: ok
+ppmlabel: ok
+ppmmake: ok
+ppmmix: ok
+ppmnorm: ok
+ppmntsc: ok
+ppmpat: ok
+ppmquant: ok
+ppmrelief: ok
+ppmrough: ok
+ppmshift: ok
+ppmspread: ok
+ppmtoacad: ok
+ppmtoapplevol: ok
+ppmtoarbtxt: ok
+ppmtoascii: ok
+ppmtobmp: ok
+ppmtoeyuv: ok
+ppmtogif: ok
+ppmtoicr: ok
+ppmtoilbm: ok
+ppmtojpeg: ok
+ppmtoleaf: ok
+ppmtolj: ok
+ppmtomitsu: ok
+ppmtompeg: ok
+ppmtoneo: ok
+ppmtopcx: ok
+ppmtopgm: ok
+ppmtopi1: ok
+ppmtopict: ok
+ppmtopj: ok
+ppmtopjxl: ok
+ppmtoppm: ok
+ppmtopuzz: ok
+ppmtorgb3: ok
+ppmtosixel: ok
+ppmtospu: ok
+ppmtoterm: ok
+ppmtouil: ok
+ppmtowinicon: ok
+ppmtoxpm: ok
+ppmtoyuv: ok
+ppmtoyuvsplit: ok
+ppmtv: ok
+ppmwheel: ok
+psidtopgm: ok
+pstopnm: ok
+qrttoppm: ok
+rasttopnm: ok
+rawtopgm: ok
+rawtoppm: ok
+rgb3toppm: ok
+rlatopam: ok
+rletopnm: ok
+sbigtopgm: ok
+sgitopnm: ok
+sirtopnm: ok
+sldtoppm: ok
+spctoppm: ok
+spottopgm: ok
+sputoppm: ok
+srftopam: ok
+sunicontopnm: ok
+svgtopam: ok
+tgatoppm: ok
+thinkjettopbm: ok
+tifftopnm: ok
+wbmptopbm: ok
+winicontoppm: ok
+xbmtopbm: ok
+ximtoppm: ok
+xpmtoppm: ok
+xvminitoppm: ok
+xwdtopnm: ok
+ybmtopbm: ok
+yuvsplittoppm: ok
+yuvtoppm: ok
+zeisstopnm: ok
+fiascotopnm: ok
+anytopnm: ok
+hpcdtoppm: ok
+manweb: ok
+pbmtox10bm: ok
+pnmmargin: ok
+pnmnoraw: ok
+pnmquant: ok
+pnmquantall: ok
+pnmtoplainpnm: ok
+ppmfade: ok
+ppmquantall: ok
+ppmrainbow: ok
+ppmshadow: ok
+ppmtomap: ok
diff --git a/test/all-in-place.test b/test/all-in-place.test
new file mode 100755
index 00000000..1726337b
--- /dev/null
+++ b/test/all-in-place.test
@@ -0,0 +1,104 @@
+#! /bin/bash
+# Tests whether the executable files listed below are in place.
+
+# See Netpbm Library Prerequisites
+# http://netpbm.sourceforge.net/prereq.html
+# if make succeeds but this test fails.
+
+# Test programs which support the --version flag.
+
+for i in \
+  411toppm asciitopgm atktopbm avstopam bioradtopgm \
+  bmptopnm bmptoppm brushtopbm cameratopam cistopbm \
+  cmuwmtopbm ddbugtopbm escp2topbm eyuvtoppm fitstopnm \
+  fstopgm g3topbm gemtopbm gemtopnm giftopnm gouldtoppm \
+  hdifftopam hipstopgm icontopbm ilbmtoppm imgtoppm infotopam \
+  jbigtopnm jpeg2ktopam jpegtopnm leaftoppm lispmtopgm \
+  macptopbm mdatopbm mgrtopbm mrftopbm mtvtoppm neotoppm \
+  palmtopnm pamaddnoise pamarith pambackground pambayer \
+  pamchannel pamcomp pamcut pamdeinterlace pamdepth \
+  pamdice pamditherbw pamedge pamendian pamenlarge \
+  pamexec pamfile pamfixtrunc pamflip pamfunc pamgauss \
+  pamgradient pamlookup pammasksharpen pammixinterlace \
+  pammosaicknit pamoil pampaintspill pamperspective pampick \
+  pampop9 pamrecolor pamrgbatopng pamrubber pamscale pamseq \
+  pamsharpmap pamsharpness pamsistoaglyph pamslice pamsplit \
+  pamstack pamstereogram pamstretch pamsumm pamsummcol \
+  pamthreshold pamtilt pamtoavs pamtodjvurle pamtofits \
+  pamtogif pamtohdiff pamtohtmltbl pamtojpeg2k pamtompfont \
+  pamtooctaveimg pamtopam pamtopdbimg pamtopfm pamtopnm \
+  pamtosrf pamtosvg pamtotga pamtotiff pamtouil pamtoxvmini \
+  pamundice pamwipeout pamx pbmclean pbmlife pbmmake pbmmask \
+  pbmminkowski pbmpage pbmpscale pbmreduce pbmtext pbmtextps \
+  pbmto10x pbmto4425 pbmtoascii pbmtoatk pbmtobbnbg pbmtocis \
+  pbmtocmuwm pbmtodjvurle pbmtoepsi pbmtoepson pbmtoescp2 \
+  pbmtog3 pbmtogem pbmtogo pbmtoibm23xx pbmtoicon pbmtolj \
+  pbmtoln03 pbmtolps pbmtomacp pbmtomatrixorbital pbmtomda \
+  pbmtomgr pbmtomrf pbmtonokia pbmtopgm pbmtopi3 pbmtopk \
+  pbmtoplot pbmtoppa pbmtopsg3 pbmtoptx pbmtosunicon \
+  pbmtowbmp pbmtoxbm pbmtoybm pbmtozinc pbmupc pc1toppm \
+  pcxtoppm pdbimgtopam pfmtopam pgmabel pgmbentley pgmcrater \
+  pgmdeshadow pgmedge pgmenhance pgmhist pgmkernel pgmmake \
+  pgmmedian pgmminkowski pgmmorphconv pgmnoise pgmnorm \
+  pgmoil pgmramp pgmslice pgmtexture pgmtofs pgmtolispm \
+  pgmtopbm pgmtopgm pgmtoppm pi1toppm pi3topbm picttoppm \
+  pjtoppm pktopbm pngtopam pngtopnm pnmalias pnmarith pnmcat \
+  pnmcolormap pnmcomp pnmconvol pnmcrop pnmcut pnmdepth \
+  pnmenlarge pnmfile pnmflip pnmgamma pnmhisteq pnmhistmap \
+  pnmindex pnminterp pnminvert pnmmercator pnmmontage \
+  pnmnlfilt pnmnorm pnmpad pnmpaste pnmpsnr pnmremap \
+  pnmrotate pnmscale pnmscalefixed pnmshear pnmsmooth \
+  pnmsplit pnmstitch pnmtile pnmtoddif pnmtofiasco pnmtofits \
+  pnmtojbig pnmtojpeg pnmtopalm pnmtopclxl pnmtopng pnmtopnm \
+  pnmtops pnmtorast pnmtorle pnmtosgi pnmtosir pnmtotiff \
+  pnmtotiffcmyk pnmtoxwd ppm3d ppmbrighten ppmchange \
+  ppmcie ppmcolormask ppmcolors ppmdcfont ppmddumpfont \
+  ppmdim ppmdist ppmdither ppmdmkfont ppmdraw ppmflash \
+  ppmforge ppmglobe ppmhist ppmlabel ppmmake ppmmix ppmnorm \
+  ppmntsc ppmpat ppmquant ppmrelief ppmrough ppmshift \
+  ppmspread ppmtoacad ppmtoapplevol ppmtoarbtxt ppmtoascii \
+  ppmtobmp ppmtoeyuv ppmtogif ppmtoicr ppmtoilbm ppmtojpeg \
+  ppmtoleaf ppmtolj ppmtomitsu ppmtompeg ppmtoneo ppmtopcx \
+  ppmtopgm ppmtopi1 ppmtopict ppmtopj ppmtopjxl ppmtoppm \
+  ppmtopuzz ppmtorgb3 ppmtosixel ppmtospu ppmtoterm ppmtouil \
+  ppmtowinicon ppmtoxpm ppmtoyuv ppmtoyuvsplit ppmtv ppmwheel \
+  psidtopgm pstopnm qrttoppm rasttopnm rawtopgm rawtoppm \
+  rgb3toppm rlatopam rletopnm sbigtopgm sgitopnm sirtopnm \
+  sldtoppm spctoppm spottopgm sputoppm srftopam sunicontopnm \
+  svgtopam tgatoppm thinkjettopbm tifftopnm wbmptopbm \
+  winicontoppm xbmtopbm ximtoppm xpmtoppm xvminitoppm \
+  xwdtopnm ybmtopbm yuvsplittoppm yuvtoppm zeisstopnm
+  do
+    ${PBM_TESTPREFIX}$i --version 2> /dev/null;
+    case $? in
+      0) echo $i": ok";;
+      127) echo $i": no such file";;
+      *) echo $i": error" $?;;
+    esac
+  done
+
+
+# Test fiascotopnm, which has a unique -v flag
+
+${PBM_TESTPREFIX}fiascotopnm -v 2> /dev/null
+  case $? in
+      2) echo fiascotopnm": ok";;
+      127) echo fiascotopnm": no such file";;
+      *) echo fiascotopnm": error" $?;;
+  esac
+
+
+# Test programs which do not have no --version flag.
+
+for i in \
+  anytopnm hpcdtoppm manweb pbmtox10bm pnmmargin \
+  pnmnoraw pnmquant pnmquantall pnmtoplainpnm ppmfade ppmquantall \
+  ppmrainbow ppmshadow ppmtomap
+  do
+    if [ -x ${PBM_TESTPREFIX}$i ]
+    then echo $i": ok"
+    elif [ -f ${PBM_TESTPREFIX}$i ]
+      then echo $i": not executable"
+      else echo $i": no such file"
+    fi
+ done
diff --git a/test/bmp-roundtrip.ok b/test/bmp-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/bmp-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/bmp-roundtrip.test b/test/bmp-roundtrip.test
new file mode 100755
index 00000000..af0e6948
--- /dev/null
+++ b/test/bmp-roundtrip.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: bmptopnm ppmtobmp
+# Also requires: 
+
+${PBM_TESTPREFIX}ppmtobmp testimg.ppm | ${PBM_TESTPREFIX}bmptopnm | cksum
+${PBM_TESTPREFIX}ppmtobmp testgrid.pbm | ${PBM_TESTPREFIX}bmptopnm | cksum
\ No newline at end of file
diff --git a/test/cut-paste-roundtrip.ok b/test/cut-paste-roundtrip.ok
new file mode 100644
index 00000000..82eac5a8
--- /dev/null
+++ b/test/cut-paste-roundtrip.ok
@@ -0,0 +1 @@
+1926073387 101484
diff --git a/test/cut-paste-roundtrip.test b/test/cut-paste-roundtrip.test
new file mode 100755
index 00000000..cd81a1c6
--- /dev/null
+++ b/test/cut-paste-roundtrip.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: pamcut pnmpaste
+# Also requires: 
+
+${PBM_TESTPREFIX}pamcut 50 40 100 70 ~/test-netpbm/testimg.ppm | \
+${PBM_TESTPREFIX}pnmpaste -replace - 50 40 ~/test-netpbm/testimg.ppm | cksum
diff --git a/test/g3-roundtrip.ok b/test/g3-roundtrip.ok
new file mode 100644
index 00000000..bb0b1cf6
--- /dev/null
+++ b/test/g3-roundtrip.ok
@@ -0,0 +1,3 @@
+0
+0
+0
diff --git a/test/g3-roundtrip.test b/test/g3-roundtrip.test
new file mode 100755
index 00000000..c5c21fa0
--- /dev/null
+++ b/test/g3-roundtrip.test
@@ -0,0 +1,13 @@
+#! /bin/bash
+# This script tests: g3topbm pbmtog3
+# Also requires: pnmcrop
+
+${PBM_TESTPREFIX}pbmtog3 -nofixedwidth testgrid.pbm | \
+${PBM_TESTPREFIX}g3topbm -width=14 | diff - testgrid.pbm ; echo $?
+
+${PBM_TESTPREFIX}pbmtog3 -nofixedwidth -reversebits testgrid.pbm | \
+${PBM_TESTPREFIX}g3topbm -width=14 -reversebits | diff - testgrid.pbm ; echo $?
+
+${PBM_TESTPREFIX}pbmtog3 testgrid.pbm | \
+${PBM_TESTPREFIX}g3topbm  | ${PBM_BINPREFIX}pnmcrop -white -right -bottom | \
+ diff - testgrid.pbm ; echo $?
diff --git a/test/gif-roundtrip.ok b/test/gif-roundtrip.ok
new file mode 100644
index 00000000..011ebd3a
--- /dev/null
+++ b/test/gif-roundtrip.ok
@@ -0,0 +1,3 @@
+2871603838 33838
+1926073387 101484
+2425386270 41
diff --git a/test/gif-roundtrip.test b/test/gif-roundtrip.test
new file mode 100755
index 00000000..73246705
--- /dev/null
+++ b/test/gif-roundtrip.test
@@ -0,0 +1,30 @@
+#! /bin/bash
+# This script tests: giftopnm pamtogif
+# Also requires: ppmtopgm ppmtorgb3 rgb3toppm
+
+# Test 1. Should produce 2871603838 33838
+# which is the result of ppmtopgm testimg.ppm | cksum
+
+${PBM_BINPREFIX}ppmtopgm testimg.ppm | \
+  ${PBM_TESTPREFIX}pamtogif | ${PBM_TESTPREFIX}giftopnm | cksum
+
+# Test 2. Break up input image into three monochrome planes,
+# maxval 255.  Transform each plane to gif and back to pgm.
+# Reassemble the planes.  Result should be identical to input.
+# Should print 1926073387 101484
+
+cp testimg.ppm ${tmpdir} &&
+${PBM_BINPREFIX}ppmtorgb3 ${tmpdir}/testimg.ppm &&
+${PBM_TESTPREFIX}pamtogif ${tmpdir}/testimg.red | \
+  ${PBM_TESTPREFIX}giftopnm > ${tmpdir}/out.red &&
+${PBM_TESTPREFIX}pamtogif ${tmpdir}/testimg.grn |
+  ${PBM_TESTPREFIX}giftopnm > ${tmpdir}/out.grn &&
+${PBM_TESTPREFIX}pamtogif ${tmpdir}/testimg.blu | \
+  ${PBM_TESTPREFIX}giftopnm | \
+  ${PBM_BINPREFIX}rgb3toppm ${tmpdir}/testimg.red ${tmpdir}/testimg.grn - | \
+  cksum
+
+rm ${tmpdir}/testimg.{ppm,red,grn,blu} ${tmpdir}/out.{red,grn}
+
+# Test 3. Should produce 2425386270 41
+${PBM_TESTPREFIX}pamtogif testgrid.pbm | ${PBM_TESTPREFIX}giftopnm | cksum
diff --git a/test/hdiff-roundtrip.ok b/test/hdiff-roundtrip.ok
new file mode 100644
index 00000000..82eac5a8
--- /dev/null
+++ b/test/hdiff-roundtrip.ok
@@ -0,0 +1 @@
+1926073387 101484
diff --git a/test/hdiff-roundtrip.test b/test/hdiff-roundtrip.test
new file mode 100755
index 00000000..dbe74701
--- /dev/null
+++ b/test/hdiff-roundtrip.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: hdifftopam pamtohdiff
+# Also requires: 
+
+${PBM_TESTPREFIX}pamtohdiff testimg.ppm | \
+  ${PBM_TESTPREFIX}hdifftopam -pnm | cksum
\ No newline at end of file
diff --git a/test/pad-crop-roundtrip.ok b/test/pad-crop-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/pad-crop-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/pad-crop-roundtrip.test b/test/pad-crop-roundtrip.test
new file mode 100755
index 00000000..532b6cbd
--- /dev/null
+++ b/test/pad-crop-roundtrip.test
@@ -0,0 +1,8 @@
+#! /bin/bash
+# This script tests: pnmcrop pnmmargin
+# Also requires: 
+
+${PBM_TESTPREFIX}pnmmargin -white 10 testimg.ppm | \
+  ${PBM_TESTPREFIX}pnmcrop | cksum
+${PBM_TESTPREFIX}pnmmargin -white 10 testgrid.pbm | \
+  ${PBM_TESTPREFIX}pnmcrop | cksum
diff --git a/test/pamcut.ok b/test/pamcut.ok
new file mode 100644
index 00000000..61ef99bc
--- /dev/null
+++ b/test/pamcut.ok
@@ -0,0 +1,4 @@
+2958909756 124815
+1550940962 10933
+708474423 14
+3412257956 129
diff --git a/test/pamcut.test b/test/pamcut.test
new file mode 100755
index 00000000..080bcad8
--- /dev/null
+++ b/test/pamcut.test
@@ -0,0 +1,14 @@
+#! /bin/bash
+# This script tests: pamcut pbmmake
+# Also requires: 
+
+# Test 1.  Should print 2958909756 124815
+${PBM_TESTPREFIX}pamcut -top 0 -left 0 -width 260 -height 160 \
+  -pad testimg.ppm | cksum
+# Test 2.  Should print 1550940962 10933
+${PBM_TESTPREFIX}pamcut -top 200 -left 120 -width 40 -height 40 \
+  -pad testimg.ppm | cksum
+# Test 3.  Should print 708474423 14
+${PBM_TESTPREFIX}pamcut -top 5 -left 5 -bottom 5 -right 5 testimg.ppm | cksum
+# Test 3.  Should print 3412257956 129
+${PBM_TESTPREFIX}pbmmake -g 50 50 | ${PBM_TESTPREFIX}pamcut 5 5 30 30 | cksum
diff --git a/test/pamdepth-roundtrip.ok b/test/pamdepth-roundtrip.ok
new file mode 100644
index 00000000..89db1a57
--- /dev/null
+++ b/test/pamdepth-roundtrip.ok
@@ -0,0 +1,8 @@
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+2425386270 41
diff --git a/test/pamdepth-roundtrip.test b/test/pamdepth-roundtrip.test
new file mode 100755
index 00000000..2795d659
--- /dev/null
+++ b/test/pamdepth-roundtrip.test
@@ -0,0 +1,12 @@
+#! /bin/bash
+# This script tests: pamdepth pgmtopbm
+# Also requires: 
+
+for i in 300 500 1023 4095 5000 16383 65535
+do
+${PBM_TESTPREFIX}pamdepth $i testimg.ppm | \
+  ${PBM_TESTPREFIX}pamdepth 255 | cksum
+done
+
+${PBM_TESTPREFIX}pamdepth 255 testgrid.pbm | ${PBM_TESTPREFIX}pamdepth 1 | \
+  ${PBM_TESTPREFIX}pgmtopbm -th -val=0.5 | cksum
diff --git a/test/pamdice-roundtrip.ok b/test/pamdice-roundtrip.ok
new file mode 100644
index 00000000..82eac5a8
--- /dev/null
+++ b/test/pamdice-roundtrip.ok
@@ -0,0 +1 @@
+1926073387 101484
diff --git a/test/pamdice-roundtrip.test b/test/pamdice-roundtrip.test
new file mode 100755
index 00000000..06fef8b2
--- /dev/null
+++ b/test/pamdice-roundtrip.test
@@ -0,0 +1,9 @@
+#! /bin/bash
+# This script tests: pamdice pamundice
+# Also requires: 
+
+${PBM_TESTPREFIX}pamdice testimg.ppm -outstem=${tmpdir}/a -width=50 -height=40
+${PBM_TESTPREFIX}pamundice ${tmpdir}/a_%1d_%1a.ppm -down=4 -across=5 | cksum
+
+rm ${tmpdir}/a_?_?.ppm
+
diff --git a/test/pamditherbw.ok b/test/pamditherbw.ok
new file mode 100644
index 00000000..0711fa38
--- /dev/null
+++ b/test/pamditherbw.ok
@@ -0,0 +1,4 @@
+1421025574 33894
+164421928 33894
+486487763 33894
+3606822102 33894
diff --git a/test/pamditherbw.test b/test/pamditherbw.test
new file mode 100755
index 00000000..5335f12d
--- /dev/null
+++ b/test/pamditherbw.test
@@ -0,0 +1,31 @@
+#! /bin/bash
+# This script tests: pamditherbw
+# Also requires: ppmtopgm
+
+# Make test input
+${PBM_BINPREFIX}ppmtopgm testimg.ppm >${tmpdir}/testimg.pgm
+
+# Test 1.  Simple threshold
+${PBM_TESTPREFIX}pamditherbw -threshold -val=0.5 \
+   ${tmpdir}/testimg.pgm | cksum
+
+# Test 2.  Floyd-Steinberg
+#${PBM_TESTPREFIX}pamditherbw -floyd -val=0.5 ${tmpdir}/testimg.pgm | cksum
+
+# Test 3. Atkinson
+#${PBM_TESTPREFIX}pamditherbw -atkinson -val=0.5 ${tmpdir}/testimg.pgm | cksum
+
+# Test 4. Hilbert
+${PBM_TESTPREFIX}pamditherbw -hilbert ${tmpdir}/testimg.pgm | cksum
+
+# Test 5. Dither-8
+${PBM_TESTPREFIX}pamditherbw -dither8 ${tmpdir}/testimg.pgm | cksum
+
+# Test 6. Cluster4
+${PBM_TESTPREFIX}pamditherbw -cluster4 ${tmpdir}/testimg.pgm | cksum
+
+# Test 7. Atkinson
+#${PBM_TESTPREFIX}pamditherbw -atkinson -val=0.5 ${tmpdir}/testimg.pgm | cksum
+
+# Remove test file
+rm ${tmpdir}/testimg.pgm
diff --git a/test/pamedge.ok b/test/pamedge.ok
new file mode 100644
index 00000000..f1df7b80
--- /dev/null
+++ b/test/pamedge.ok
@@ -0,0 +1,77 @@
+P1
+60 75
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111000000000000000000000000000000000011111111111
+111111111111110000000000000000000000000000000000001111111111
+111111111111110001111111111111111111111111111110000111111111
+111111111111110011111111111111111111111111111111000111111111
+111111111111110001111111111111111111111111111111100111111111
+111111111111110000011111110000000000000000001111100111111111
+111111111111111000001111100000000000000000000111100111111111
+111111111111111110000111000011111111111111000011100111111111
+111111111111111111000111000111111111111111100011100111111111
+111111111111111111100111001111111111111111110001000111111111
+111111111111111111100111001111111111111111110000000111111111
+111111111111111111100111001111111111111111111000001111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111100000111111111111111
+111111111111111111100111001111111111111000000011111111111111
+111111111111111111100111001111111111111000100011111111111111
+111111111111111111100111000111111111110001110011111111111111
+111111111111111111100111000011111111100001110011111111111111
+111111111111111111100111100000000000000011110011111111111111
+111111111111111111100111110000000000000111110011111111111111
+111111111111111111100111111111111111111111110011111111111111
+111111111111111111100111111111111111111111110011111111111111
+111111111111111111100111111111111111111111110011111111111111
+111111111111111111100111110000000000000111110011111111111111
+111111111111111111100111100000000000000011110011111111111111
+111111111111111111100111000011111111100001110011111111111111
+111111111111111111100111000111111111110001110011111111111111
+111111111111111111100111001111111111111000100011111111111111
+111111111111111111100111001111111111111000000011111111111111
+111111111111111111100111001111111111111100000111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111100111001111111111111111111111111111111111
+111111111111111111000111000111111111111111111111111111111111
+111111111111111110000111000011111111111111111111111111111111
+111111111111111000001111100000000001111111111111111111111111
+111111111111110000011111110000000000111111111111111111111111
+111111111111110001111111111111111000111111111111111111111111
+111111111111110011111111111111111100111111111111111111111111
+111111111111110001111111111111111000111111111111111111111111
+111111111111110000000000000000000000111111111111111111111111
+111111111111111000000000000000000001111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111
diff --git a/test/pamedge.test b/test/pamedge.test
new file mode 100755
index 00000000..da1c0145
--- /dev/null
+++ b/test/pamedge.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: pamedge
+# Also requires: pbmpscale pbmtext pgmtopbm pgmtopgm ppmtopgm
+
+${PBM_BINPREFIX}pbmtext " F " -nom | ${PBM_BINPREFIX}pbmpscale 5 | \
+${PBM_BINPREFIX}pgmtopgm | ${PBM_TESTPREFIX}pamedge | \
+${PBM_BINPREFIX}ppmtopgm | ${PBM_BINPREFIX}pgmtopbm -th -val=.5 -plain
diff --git a/test/pamenlarge.ok b/test/pamenlarge.ok
new file mode 100644
index 00000000..40be5918
--- /dev/null
+++ b/test/pamenlarge.ok
@@ -0,0 +1,4 @@
+3424505894 913236
+4152147096 304422
+3342398172 297
+237488670 3133413
diff --git a/test/pamenlarge.test b/test/pamenlarge.test
new file mode 100755
index 00000000..c3efc4b2
--- /dev/null
+++ b/test/pamenlarge.test
@@ -0,0 +1,12 @@
+#! /bin/bash
+# This script tests: pamenlarge
+# Also requires: ppmtopgm
+
+# Test 1.  Should print 3424505894 913236
+${PBM_TESTPREFIX}pamenlarge 3 testimg.ppm | cksum
+# Test 2.  Should print 4152147096 304422
+${PBM_BINPREFIX}ppmtopgm testimg.ppm | ${PBM_TESTPREFIX}pamenlarge 3 | cksum
+# Test 3.  Should print 3342398172 297
+${PBM_TESTPREFIX}pamenlarge 3 testgrid.pbm | cksum
+# Test 4.  Should print 237488670 3133413
+${PBM_TESTPREFIX}pamenlarge 3 -plain testimg.ppm | cksum
diff --git a/test/pamfile.ok b/test/pamfile.ok
new file mode 100644
index 00000000..6cdf0433
--- /dev/null
+++ b/test/pamfile.ok
@@ -0,0 +1,3 @@
+testimg.ppm:	PPM raw, 227 by 149  maxval 255
+testgrid.pbm:	PBM raw, 14 by 16
+stdin:	PGM raw, 227 by 149  maxval 255
diff --git a/test/pamfile.test b/test/pamfile.test
new file mode 100755
index 00000000..36ee557c
--- /dev/null
+++ b/test/pamfile.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: pamfile
+# Also requires: ppmtopgm
+
+${PBM_TESTPREFIX}pamfile testimg.ppm
+${PBM_TESTPREFIX}pamfile testgrid.pbm
+${PBM_BINPREFIX}ppmtopgm testimg.ppm | ${PBM_TESTPREFIX}pamfile
diff --git a/test/pamflip-roundtrip.ok b/test/pamflip-roundtrip.ok
new file mode 100644
index 00000000..653ab007
--- /dev/null
+++ b/test/pamflip-roundtrip.ok
@@ -0,0 +1,12 @@
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+2425386270 41
+2425386270 41
+2425386270 41
+2425386270 41
+2425386270 41
+2425386270 41
diff --git a/test/pamflip-roundtrip.test b/test/pamflip-roundtrip.test
new file mode 100755
index 00000000..7a17359f
--- /dev/null
+++ b/test/pamflip-roundtrip.test
@@ -0,0 +1,34 @@
+#! /bin/bash
+# This script tests: pamflip
+# Also requires: 
+
+${PBM_TESTPREFIX}pamflip -lr testimg.ppm | ${PBM_TESTPREFIX}pamflip -lr | cksum
+${PBM_TESTPREFIX}pamflip -tb testimg.ppm | ${PBM_TESTPREFIX}pamflip -tb | cksum
+${PBM_TESTPREFIX}pamflip -r180 testimg.ppm | \
+  ${PBM_TESTPREFIX}pamflip -r180 | cksum
+${PBM_TESTPREFIX}pamflip -xy testimg.ppm | ${PBM_TESTPREFIX}pamflip -xy | cksum
+${PBM_TESTPREFIX}pamflip -r90 testimg.ppm | \
+  ${PBM_TESTPREFIX}pamflip -r90 | \
+  ${PBM_TESTPREFIX}pamflip -r90 | \
+  ${PBM_TESTPREFIX}pamflip -r90 | cksum
+${PBM_TESTPREFIX}pamflip -r270 testimg.ppm | \
+  ${PBM_TESTPREFIX}pamflip -r270 | \
+  ${PBM_TESTPREFIX}pamflip -r270 | \
+  ${PBM_TESTPREFIX}pamflip -r270 | cksum
+
+${PBM_TESTPREFIX}pamflip -lr testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -lr | cksum
+${PBM_TESTPREFIX}pamflip -tb testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -tb | cksum
+${PBM_TESTPREFIX}pamflip -r180 testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -r180 | cksum
+${PBM_TESTPREFIX}pamflip -xy testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -xy | cksum
+${PBM_TESTPREFIX}pamflip -r90 testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -r90 | \
+  ${PBM_TESTPREFIX}pamflip -r90 | \
+  ${PBM_TESTPREFIX}pamflip -r90 | cksum
+${PBM_TESTPREFIX}pamflip -r270 testgrid.pbm | \
+  ${PBM_TESTPREFIX}pamflip -r270 | \
+  ${PBM_TESTPREFIX}pamflip -r270 | \
+  ${PBM_TESTPREFIX}pamflip -r270 | cksum
diff --git a/test/pamflip.ok b/test/pamflip.ok
new file mode 100644
index 00000000..c7427e46
--- /dev/null
+++ b/test/pamflip.ok
@@ -0,0 +1,6 @@
+2116496681 101484
+217037000 101484
+2052917888 101484
+3375384165 41
+604323149 41
+490797850 37
diff --git a/test/pamflip.test b/test/pamflip.test
new file mode 100755
index 00000000..59f8e639
--- /dev/null
+++ b/test/pamflip.test
@@ -0,0 +1,16 @@
+#! /bin/bash
+# This script tests: pamflip
+# Also requires: 
+
+# Test 1.  Should print 2116496681 101484
+${PBM_TESTPREFIX}pamflip -lr testimg.ppm | cksum 
+# Test 2.  Should print 217037000 101484
+${PBM_TESTPREFIX}pamflip -cw testimg.ppm | cksum
+# Test 3.  Should print 2052917888 101484
+${PBM_TESTPREFIX}pamflip -tb testimg.ppm | cksum
+# Test 4.  Should print 3375384165 41
+${PBM_TESTPREFIX}pamflip -lr testgrid.pbm | cksum
+# Test 5.  Should print 604323149 41
+${PBM_TESTPREFIX}pamflip -tb testgrid.pbm | cksum
+# Test 6.  Should print 490797850 37
+${PBM_TESTPREFIX}pamflip -cw testgrid.pbm | cksum
diff --git a/test/pamseq.ok b/test/pamseq.ok
new file mode 100644
index 00000000..52bb3dd8
--- /dev/null
+++ b/test/pamseq.ok
@@ -0,0 +1 @@
+3929266994 304
diff --git a/test/pamseq.test b/test/pamseq.test
new file mode 100755
index 00000000..1c6ae44b
--- /dev/null
+++ b/test/pamseq.test
@@ -0,0 +1,5 @@
+#! /bin/bash
+# This script tests: pamseq
+# Also requires: 
+
+${PBM_TESTPREFIX}pamseq 1 255 | cksum
diff --git a/test/pamslice-roundtrip.ok b/test/pamslice-roundtrip.ok
new file mode 100644
index 00000000..f9fe0bb4
--- /dev/null
+++ b/test/pamslice-roundtrip.ok
@@ -0,0 +1,2 @@
+2425386270 41
+1926073387 101484
diff --git a/test/pamslice-roundtrip.test b/test/pamslice-roundtrip.test
new file mode 100755
index 00000000..fd125500
--- /dev/null
+++ b/test/pamslice-roundtrip.test
@@ -0,0 +1,29 @@
+#! /bin/bash
+# This script tests: pamslice
+# Also requires: pnmtopnm
+
+# Slice rows, one by one, out of testgrid.pbm.
+# Add header and reconstruct pbm image.
+# Note that in pamslice output 0 is white and 1 is black: opposite of PBM
+# Should print 2425386270 41
+
+(echo "P1"
+ echo "14 16"
+ seq 0 15 | while read i; 
+     do
+     ${PBM_TESTPREFIX}pamslice -row=$i testgrid.pbm  | \
+      awk '{print $2}' | sed 'y/01/10/'; 
+     done ) |  ${PBM_BINPREFIX}pnmtopnm | cksum
+
+# Slice rows, one by one, out of testimg.ppm.
+# Add header and reconstruct pbm image.
+# Should print 1926073387 101484
+
+(echo "P3"
+ echo "227 149"
+ echo "255"
+ seq 0 148 | while read i; 
+     do
+     ${PBM_TESTPREFIX}pamslice -row=$i testimg.ppm  | awk '{print $2, $3, $4}'; 
+     done ) |  ${PBM_BINPREFIX}pnmtopnm | cksum
+
diff --git a/test/pamsumm.ok b/test/pamsumm.ok
new file mode 100644
index 00000000..0643081b
--- /dev/null
+++ b/test/pamsumm.ok
@@ -0,0 +1,8 @@
+56
+0
+1
+0.250000
+10772432
+15
+255
+106.164760
diff --git a/test/pamsumm.test b/test/pamsumm.test
new file mode 100755
index 00000000..9c5f1b84
--- /dev/null
+++ b/test/pamsumm.test
@@ -0,0 +1,13 @@
+#! /bin/bash
+# This script tests: pamsumm
+# Also requires: 
+
+for type in -sum -min -max -mean
+  do
+  ${PBM_TESTPREFIX}pamsumm -brief $type testgrid.pbm
+  done
+
+for type in -sum -min -max -mean
+  do
+  ${PBM_TESTPREFIX}pamsumm -brief $type testimg.ppm
+  done
diff --git a/test/pamtopam.ok b/test/pamtopam.ok
new file mode 100644
index 00000000..dcb597d3
--- /dev/null
+++ b/test/pamtopam.ok
@@ -0,0 +1,16 @@
+P7
+WIDTH 227
+HEIGHT 149
+DEPTH 3
+MAXVAL 255
+TUPLTYPE RGB
+ENDHDR
+P7
+WIDTH 14
+HEIGHT 16
+DEPTH 1
+MAXVAL 1
+TUPLTYPE BLACKANDWHITE
+ENDHDR
+1873848880 101532
+2260748250 293
diff --git a/test/pamtopam.test b/test/pamtopam.test
new file mode 100755
index 00000000..1a4cdff6
--- /dev/null
+++ b/test/pamtopam.test
@@ -0,0 +1,9 @@
+#! /bin/bash
+# This script tests: pamtopam
+# Also requires: 
+
+${PBM_TESTPREFIX}pamtopam < testimg.ppm  | sed '/ENDHDR/q'
+${PBM_TESTPREFIX}pamtopam < testgrid.pbm | sed '/ENDHDR/q'
+
+${PBM_TESTPREFIX}pamtopam < testimg.ppm   | cksum
+${PBM_TESTPREFIX}pamtopam < testgrid.pbm  | cksum
diff --git a/test/pbmclean.ok b/test/pbmclean.ok
new file mode 100644
index 00000000..71b622d0
--- /dev/null
+++ b/test/pbmclean.ok
@@ -0,0 +1,73 @@
+P1
+7 7
+1111111
+1111111
+1101011
+1110111
+1101011
+1111111
+1111111
+P1
+7 7
+1111111
+1111111
+1101011
+1110111
+1101011
+1111111
+1111111
+P1
+7 7
+1111111
+1111111
+1101011
+1110111
+1101011
+1111111
+1111111
+P1
+7 7
+0111110
+1111111
+1101011
+1110111
+1101011
+1111111
+0111110
+P1
+7 7
+0111110
+1111111
+1101011
+1110111
+1101011
+1111111
+0111110
+P1
+7 7
+0000000
+0111110
+0100010
+0100010
+0100010
+0111110
+0000000
+P1
+7 7
+0000000
+0110110
+0100010
+0000000
+0100010
+0110110
+0000000
+P1
+7 7
+0000000
+0000000
+0000000
+0000000
+0000000
+0000000
+0000000
+760076056 4210813
diff --git a/test/pbmclean.test b/test/pbmclean.test
new file mode 100755
index 00000000..05fe9338
--- /dev/null
+++ b/test/pbmclean.test
@@ -0,0 +1,16 @@
+#! /bin/bash
+# This script tests: pbmclean
+# Also requires: pbmmake pbmpage pnmmargin
+
+${PBM_BINPREFIX}pbmmake -g 3 3 | ${PBM_BINPREFIX}pnmmargin -black 2 \
+ >${tmpdir}/test.pbm
+
+for n in 1 2 3 4 5 6 7 8
+do
+${PBM_TESTPREFIX}pbmclean -min=$n -black -plain ${tmpdir}/test.pbm
+done
+
+rm ${tmpdir}/test.pbm
+
+# Should print 760076056 4210813
+${PBM_BINPREFIX}pbmpage 1 | ${PBM_TESTPREFIX}pbmclean -black | cksum
diff --git a/test/pbmmake.ok b/test/pbmmake.ok
new file mode 100644
index 00000000..754eefdf
--- /dev/null
+++ b/test/pbmmake.ok
@@ -0,0 +1,43 @@
+P11 10
+P11 11
+P11 10
+P12 20000
+P12 21111
+P12 20110
+P13 3000000000
+P13 3111111111
+P13 3010101010
+P14 40000000000000000
+P14 41111111111111111
+P14 40101101001011010
+P15 50000000000000000000000000
+P15 51111111111111111111111111
+P15 50101010101010101010101010
+P16 6000000000000000000000000000000000000
+P16 6111111111111111111111111111111111111
+P16 6010101101010010101101010010101101010
+P17 70000000000000000000000000000000000000000000000000
+P17 71111111111111111111111111111111111111111111111111
+P17 70101010101010101010101010101010101010101010101010
+P18 80000000000000000000000000000000000000000000000000000000000000000
+P18 81111111111111111111111111111111111111111111111111111111111111111
+P18 80101010110101010010101011010101001010101101010100101010110101010
+4058563256 45
+3969089344 105
+702117756 189
+1343035453 234
+2621551326 363
+1487646353 522
+3096107498 597
+2833028503 801
+4244475883 891
+294944575 1140
+244734977 1419
+2956143361 1539
+2229243214 1863
+1123259599 2217
+3622140854 2367
+194247095 2766
+1824232358 2931
+3651864954 3375
+3302595397 3849
diff --git a/test/pbmmake.test b/test/pbmmake.test
new file mode 100755
index 00000000..82fdb941
--- /dev/null
+++ b/test/pbmmake.test
@@ -0,0 +1,18 @@
+#! /bin/bash
+# This script tests: pbmmake
+# Also requires: 
+
+for i in `seq 1 8`
+do
+for color in -w -b -g
+do
+${PBM_TESTPREFIX}pbmmake -plain $color $i $i | tr -d '\n'; echo
+done
+done
+for i in `seq 8 5 98`
+do
+ ( ${PBM_TESTPREFIX}pbmmake -w $i $i ;
+  ${PBM_TESTPREFIX}pbmmake -b $i $i ;
+  ${PBM_TESTPREFIX}pbmmake  -g $i $i ) | cksum
+done
+
diff --git a/test/pbmminkowski.ok b/test/pbmminkowski.ok
new file mode 100644
index 00000000..71a909ce
--- /dev/null
+++ b/test/pbmminkowski.ok
@@ -0,0 +1,23 @@
+   tiles:	1
+ x-edges:	2
+ y-edges:	2
+vertices:	4
+    area:	1
+perimeter:	4
+ eulerchi:	1
+
+   tiles:	5
+ x-edges:	10
+ y-edges:	10
+vertices:	16
+    area:	5
+perimeter:	20
+ eulerchi:	1
+
+   tiles:	56
+ x-edges:	112
+ y-edges:	112
+vertices:	224
+    area:	56
+perimeter:	224
+ eulerchi:	56
diff --git a/test/pbmminkowski.test b/test/pbmminkowski.test
new file mode 100755
index 00000000..d0376e9e
--- /dev/null
+++ b/test/pbmminkowski.test
@@ -0,0 +1,10 @@
+#! /bin/bash
+# This script tests: pbmminkowski
+# Also requires: pbmmake pnmmargin
+
+${PBM_BINPREFIX}pbmmake -w 1 1 | ${PBM_BINPREFIX}pnmmargin -b 1 | \
+  ${PBM_TESTPREFIX}pbmminkowski
+echo
+${PBM_BINPREFIX}pbmmake -g 3 3 | ${PBM_TESTPREFIX}pbmminkowski
+echo
+${PBM_TESTPREFIX}pbmminkowski testgrid.pbm
\ No newline at end of file
diff --git a/test/pbmpage.ok b/test/pbmpage.ok
new file mode 100644
index 00000000..7f68da74
--- /dev/null
+++ b/test/pbmpage.ok
@@ -0,0 +1,3 @@
+550172004 4210813
+4142746975 4210813
+2347597649 4210813
diff --git a/test/pbmpage.test b/test/pbmpage.test
new file mode 100755
index 00000000..dcf8e688
--- /dev/null
+++ b/test/pbmpage.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: pbmpage 
+# Also requires: 
+
+${PBM_TESTPREFIX}pbmpage 1 | cksum
+${PBM_TESTPREFIX}pbmpage 2 | cksum
+${PBM_TESTPREFIX}pbmpage 3 | cksum
\ No newline at end of file
diff --git a/test/pbmpscale.ok b/test/pbmpscale.ok
new file mode 100644
index 00000000..e25d4027
--- /dev/null
+++ b/test/pbmpscale.ok
@@ -0,0 +1,50 @@
+P1
+21 45
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+111111111111111111110
+111111111111111111111
+111111111111111111111
+001111100000000001111
+000111000000000000111
+000111000000000000111
+000111000000000000000
+000111000000000000000
+000111000000000000000
+000111000000000111000
+000111000000000111000
+000111100000001111000
+000111111111111111000
+000111111111111111000
+000111111111111111000
+000111100000001111000
+000111000000000111000
+000111000000000111000
+000111000000000000000
+000111000000000000000
+000111000000000000000
+000111000000000000000
+000111000000000000000
+001111100000000000000
+111111111111000000000
+111111111111000000000
+111111111111000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+000000000000000000000
+2150868536 457
+3761734242 1065
+3462719777 1803
diff --git a/test/pbmpscale.test b/test/pbmpscale.test
new file mode 100755
index 00000000..e1125fc7
--- /dev/null
+++ b/test/pbmpscale.test
@@ -0,0 +1,11 @@
+#! /bin/bash
+# This script tests: pbmpscale
+# Also requires: pamenlarge pbmtext
+
+${PBM_BINPREFIX}pbmtext -nomargin "F" | ${PBM_TESTPREFIX}pbmpscale 3 -plain 
+
+for i in 2 3 4
+do
+${PBM_BINPREFIX}pamenlarge 2 testgrid.pbm | \
+  ${PBM_TESTPREFIX}pbmpscale $i | cksum
+done
diff --git a/test/pbmtext.ok b/test/pbmtext.ok
new file mode 100644
index 00000000..438fe7b8
--- /dev/null
+++ b/test/pbmtext.ok
@@ -0,0 +1,21 @@
+1427751145 328
+1975911793 129
+3145408696 273
+2662867350 328
+3630387453 129
+1251480181 297
+1522829573 299
+1333433014 114
+4128014259 249
+2350105502 270
+2044333794 84
+2845861861 177
+2754777566 416
+3452484090 174
+2294575230 297
+67558248 387
+1647907430 159
+2846042958 249
+307551150 328
+584153820 114
+3355717231 177
diff --git a/test/pbmtext.test b/test/pbmtext.test
new file mode 100755
index 00000000..69fa9b23
--- /dev/null
+++ b/test/pbmtext.test
@@ -0,0 +1,11 @@
+#! /bin/bash
+# This script tests: pbmtext
+# Also requires: 
+
+for i in 0123456789 abcdefghijk lmnopqrst uzwxyz ABCDEFGHIJK LMNOPQRST UVWXYZ
+do
+for flags in "" "-nom" "-builtin fixed"
+do
+echo $i | ${PBM_TESTPREFIX}pbmtext $flags | cksum
+done
+done
diff --git a/test/pbmtog3.ok b/test/pbmtog3.ok
new file mode 100644
index 00000000..a0768f95
--- /dev/null
+++ b/test/pbmtog3.ok
@@ -0,0 +1,11 @@
+3697098186 144
+1248301383 122
+686713716 144
+215463240 122
+28792587 47
+277456854 32
+28792587 47
+871281767 162
+3736247115 62
+2820255307 2191856
+4159089282 2226575
diff --git a/test/pbmtog3.test b/test/pbmtog3.test
new file mode 100755
index 00000000..09b5d784
--- /dev/null
+++ b/test/pbmtog3.test
@@ -0,0 +1,28 @@
+#! /bin/bash
+# This script tests: pbmtog3
+# Also requires: pbmmake
+
+# Test 1.  Should print 3697098186 144
+${PBM_TESTPREFIX}pbmtog3 testgrid.pbm | cksum
+# Test 2.  Should print 1248301383 122
+${PBM_TESTPREFIX}pbmtog3 -nofixedwidth testgrid.pbm | cksum
+# Test 3.  Should print 686713716 144
+${PBM_TESTPREFIX}pbmtog3 -reverse testgrid.pbm | cksum
+# Test 4.  Should print 215463240 122
+${PBM_TESTPREFIX}pbmtog3 -nofixedwidth -reverse testgrid.pbm | cksum
+# Test 5.  Should print 28792587 47
+${PBM_BINPREFIX}pbmmake -w 10 10 | ${PBM_TESTPREFIX}pbmtog3 | cksum
+# Test 6.  Should print 277456854 32
+${PBM_BINPREFIX}pbmmake -w 10 10 | \
+  ${PBM_TESTPREFIX}pbmtog3 -nofixedwidth | cksum
+# Test 7.  Should print 28792587 47
+${PBM_BINPREFIX}pbmmake -w 10000 10 | ${PBM_TESTPREFIX}pbmtog3 | cksum
+# Test 8.  Should print 871281767 162
+${PBM_BINPREFIX}pbmmake -w 10000 10 | \
+  ${PBM_TESTPREFIX}pbmtog3 -nofixedwidth | cksum
+# Test 9.  Should print 3736247115 62
+${PBM_BINPREFIX}pbmmake -b 10 10 | ${PBM_TESTPREFIX}pbmtog3 | cksum
+# Test 10.  Should print 2820255307 2191856
+${PBM_BINPREFIX}pbmmake -g 1700 2286 | ${PBM_TESTPREFIX}pbmtog3 | cksum
+# Test 11.  Should print 4159089282 2226575
+${PBM_BINPREFIX}pbmmake -g 1800 2286 | ${PBM_TESTPREFIX}pbmtog3 | cksum
diff --git a/test/pbmupc.ok b/test/pbmupc.ok
new file mode 100644
index 00000000..3e58f409
--- /dev/null
+++ b/test/pbmupc.ok
@@ -0,0 +1 @@
+2619309127 10172
diff --git a/test/pbmupc.test b/test/pbmupc.test
new file mode 100755
index 00000000..6fa772d7
--- /dev/null
+++ b/test/pbmupc.test
@@ -0,0 +1,8 @@
+#! /bin/bash
+# This script tests: pbmupc
+# Also requires: 
+
+for type in -s1 -s2
+do
+${PBM_TESTPREFIX}pbmupc $type 0 72890 00011
+done | cksum
diff --git a/test/pgmhist.ok b/test/pgmhist.ok
new file mode 100644
index 00000000..d98c2244
--- /dev/null
+++ b/test/pgmhist.ok
@@ -0,0 +1,14 @@
+value  count  b%      w%   
+-----  -----  ------  ------
+    0      2   12.5%    100%
+    1      2     25%   87.5%
+    2      2   37.5%     75%
+    3      2     50%   62.5%
+    4      2   62.5%     50%
+    5      2     75%   37.5%
+    6      2   87.5%     25%
+    8      2    100%   12.5%
+value  count  b%      w%   
+-----  -----  ------  ------
+    0    168     75%    100%
+  255     56    100%     25%
diff --git a/test/pgmhist.test b/test/pgmhist.test
new file mode 100755
index 00000000..b5e7ef7d
--- /dev/null
+++ b/test/pgmhist.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: pgmhist
+# Also requires: pgmramp
+
+${PBM_BINPREFIX}pgmramp -maxval=8 -lr 8 2 | ${PBM_TESTPREFIX}pgmhist
+${PBM_TESTPREFIX}pgmhist testgrid.pbm
\ No newline at end of file
diff --git a/test/pgmmake.ok b/test/pgmmake.ok
new file mode 100644
index 00000000..b9a03af2
--- /dev/null
+++ b/test/pgmmake.ok
@@ -0,0 +1,2 @@
+3662611538 2513
+3109612402 5012
diff --git a/test/pgmmake.test b/test/pgmmake.test
new file mode 100755
index 00000000..0180b502
--- /dev/null
+++ b/test/pgmmake.test
@@ -0,0 +1,10 @@
+#! /bin/bash
+# This script tests: pgmmake
+# Also requires: 
+
+${PBM_TESTPREFIX}pgmmake 1 50 50 | cksum
+${PBM_TESTPREFIX}pgmmake .2 50 100 -maxval=5 | cksum 
+
+
+
+ 
\ No newline at end of file
diff --git a/test/pgmramp.ok b/test/pgmramp.ok
new file mode 100644
index 00000000..0971ccd7
--- /dev/null
+++ b/test/pgmramp.ok
@@ -0,0 +1,32 @@
+P2
+4 4
+3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+P2
+4 4
+3
+0 0 0 0
+1 1 1 1
+2 2 2 2
+3 3 3 3
+P2
+4 4
+3
+0 0 1 0
+0 1 2 1
+1 2 3 2
+0 1 2 1
+P2
+4 4
+3
+0 0 0 0
+0 1 2 1
+0 2 3 2
+0 1 2 1
+1777787286 65551
+2046889993 65551
+1975520432 65551
+807973067 65551
diff --git a/test/pgmramp.test b/test/pgmramp.test
new file mode 100755
index 00000000..cf3d91d7
--- /dev/null
+++ b/test/pgmramp.test
@@ -0,0 +1,12 @@
+#! /bin/bash
+# This script tests: pgmramp
+# Also requires: 
+
+for type in -lr -tb -rect -ell
+do
+${PBM_TESTPREFIX}pgmramp -maxval=3 $type 4 4 -plain
+done
+
+for type in -lr -tb -rect -ell
+do ${PBM_TESTPREFIX}pgmramp $type 256 256 | cksum
+done
diff --git a/test/pgmtopgm.ok b/test/pgmtopgm.ok
new file mode 100644
index 00000000..53c25a44
--- /dev/null
+++ b/test/pgmtopgm.ok
@@ -0,0 +1 @@
+729348909 237
diff --git a/test/pgmtopgm.test b/test/pgmtopgm.test
new file mode 100755
index 00000000..638cb68b
--- /dev/null
+++ b/test/pgmtopgm.test
@@ -0,0 +1,5 @@
+#! /bin/bash
+# This script tests: pgmtopgm
+# Also requires: 
+
+${PBM_TESTPREFIX}pgmtopgm < testgrid.pbm | cksum
diff --git a/test/pgmtoppm.ok b/test/pgmtoppm.ok
new file mode 100644
index 00000000..55e5af95
--- /dev/null
+++ b/test/pgmtoppm.ok
@@ -0,0 +1,3 @@
+1767073524 779
+1676700883 779
+718580145 779
diff --git a/test/pgmtoppm.test b/test/pgmtoppm.test
new file mode 100755
index 00000000..b93d7867
--- /dev/null
+++ b/test/pgmtoppm.test
@@ -0,0 +1,18 @@
+#! /bin/bash
+# This script tests: pgmtoppm
+# Also requires: pamseq pamtopnm pgmramp
+
+${PBM_BINPREFIX}pgmramp -maxval=5 -lr 256 1 >${tmpdir}/test.pgm
+${PBM_BINPREFIX}pamseq 3 5 -tupletype=RGB | ${PBM_BINPREFIX}pamtopnm \
+  >${tmpdir}/palette
+
+# Test 1.
+${PBM_TESTPREFIX}pgmtoppm green ${tmpdir}/test.pgm | cksum
+
+${PBM_TESTPREFIX}pgmtoppm yellow-blue ${tmpdir}/test.pgm | cksum
+
+${PBM_TESTPREFIX}pgmtoppm -map=${tmpdir}/palette ${tmpdir}/test.pgm | cksum
+
+rm ${tmpdir}/test.pgm ${tmpdir}/palette
+
+
diff --git a/test/png-roundtrip.ok b/test/png-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/png-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/png-roundtrip.test b/test/png-roundtrip.test
new file mode 100755
index 00000000..6f25d1c3
--- /dev/null
+++ b/test/png-roundtrip.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: pngtopnm pnmtopng
+# Also requires: 
+
+${PBM_TESTPREFIX}pnmtopng testimg.ppm | ${PBM_TESTPREFIX}pngtopnm | cksum
+${PBM_TESTPREFIX}pnmtopng testgrid.pbm | ${PBM_TESTPREFIX}pngtopnm | cksum
+
diff --git a/test/pnm-pam-roundtrip.ok b/test/pnm-pam-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/pnm-pam-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/pnm-pam-roundtrip.test b/test/pnm-pam-roundtrip.test
new file mode 100755
index 00000000..1aef986c
--- /dev/null
+++ b/test/pnm-pam-roundtrip.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: pamtopam pamtopnm
+# Also requires: 
+
+${PBM_TESTPREFIX}pamtopam < testimg.ppm | ${PBM_TESTPREFIX}pamtopnm | cksum
+${PBM_TESTPREFIX}pamtopam < testgrid.pbm | ${PBM_TESTPREFIX}pamtopnm | cksum
+
diff --git a/test/pnm-plain-roundtrip.ok b/test/pnm-plain-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/pnm-plain-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/pnm-plain-roundtrip.test b/test/pnm-plain-roundtrip.test
new file mode 100755
index 00000000..eab0b0d7
--- /dev/null
+++ b/test/pnm-plain-roundtrip.test
@@ -0,0 +1,9 @@
+#! /bin/bash
+# This script tests: pnmtopnm
+# Also requires: 
+
+${PBM_TESTPREFIX}pnmtopnm -plain testimg.ppm | \
+  ${PBM_TESTPREFIX}pnmtopnm | cksum
+${PBM_TESTPREFIX}pnmtopnm -plain testgrid.pbm | \
+  ${PBM_TESTPREFIX}pnmtopnm | cksum
+
diff --git a/test/pnmcat.ok b/test/pnmcat.ok
new file mode 100644
index 00000000..68052957
--- /dev/null
+++ b/test/pnmcat.ok
@@ -0,0 +1,4 @@
+1704087873 73
+4150323653 73
+1522490272 202953
+2862441566 202953
diff --git a/test/pnmcat.test b/test/pnmcat.test
new file mode 100755
index 00000000..35efd515
--- /dev/null
+++ b/test/pnmcat.test
@@ -0,0 +1,9 @@
+#! /bin/bash
+# This script tests: pnmcat
+# Also requires: 
+
+${PBM_TESTPREFIX}pnmcat -lr testgrid.pbm testgrid.pbm | cksum
+${PBM_TESTPREFIX}pnmcat -tb testgrid.pbm testgrid.pbm | cksum
+
+${PBM_TESTPREFIX}pnmcat -lr testimg.ppm testimg.ppm | cksum
+${PBM_TESTPREFIX}pnmcat -tb testimg.ppm testimg.ppm | cksum
diff --git a/test/pnminvert-roundtrip.ok b/test/pnminvert-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/pnminvert-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/pnminvert-roundtrip.test b/test/pnminvert-roundtrip.test
new file mode 100755
index 00000000..8cdb6c25
--- /dev/null
+++ b/test/pnminvert-roundtrip.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: pnminvert
+# Also requires: 
+
+${PBM_TESTPREFIX}pnminvert testimg.ppm | ${PBM_TESTPREFIX}pnminvert | cksum
+${PBM_TESTPREFIX}pnminvert testgrid.pbm | ${PBM_TESTPREFIX}pnminvert | cksum
diff --git a/test/pnminvert.ok b/test/pnminvert.ok
new file mode 100644
index 00000000..081e53ee
--- /dev/null
+++ b/test/pnminvert.ok
@@ -0,0 +1,7 @@
+1240379484 41
+1416115901 101484
+2961441369 33838
+2595564405 14
+2595564405 14
+2595564405 14
+2896726098 15
diff --git a/test/pnminvert.test b/test/pnminvert.test
new file mode 100755
index 00000000..7fc8523c
--- /dev/null
+++ b/test/pnminvert.test
@@ -0,0 +1,20 @@
+#! /bin/bash
+# This script tests: pnminvert
+# Also requires: pbmmake ppmtopgm
+
+# Test 1.  Should print 1240379484 41
+${PBM_TESTPREFIX}pnminvert testgrid.pbm | cksum
+# Test 2.  Should print 1416115901 101484
+${PBM_TESTPREFIX}pnminvert testimg.ppm | cksum
+# Test 3.  Should print 2961441369 33838
+# printed 4215652354 33838 with older ppmtopgm
+${PBM_BINPREFIX}ppmtopgm testimg.ppm | ${PBM_TESTPREFIX}pnminvert | cksum
+# Test 4.  Should print 2595564405 14
+${PBM_BINPREFIX}pbmmake -w 7 7 | ${PBM_TESTPREFIX}pnminvert | cksum
+# Test 5.  Should print 2595564405 14
+${PBM_BINPREFIX}pbmmake -b 7 7 | cksum
+# Test 6.  Should print 2595564405 14
+${PBM_BINPREFIX}pbmmake -b 7 7 | ${PBM_TESTPREFIX}pnminvert | \
+  ${PBM_TESTPREFIX}pnminvert | cksum
+# Test 7.  Should print 2896726098 15
+${PBM_BINPREFIX}pbmmake -g 8 8 | ${PBM_TESTPREFIX}pnminvert | cksum
diff --git a/test/pnmpsnr.ok b/test/pnmpsnr.ok
new file mode 100644
index 00000000..eff18efa
--- /dev/null
+++ b/test/pnmpsnr.ok
@@ -0,0 +1,2 @@
+0.00 dB
+don't differ.
diff --git a/test/pnmpsnr.test b/test/pnmpsnr.test
new file mode 100755
index 00000000..d5aa07f3
--- /dev/null
+++ b/test/pnmpsnr.test
@@ -0,0 +1,11 @@
+#! /bin/bash
+# This script tests: pnmpsnr
+# Also requires: pbmmake
+
+${PBM_BINPREFIX}pbmmake -w 10 10 > ${tmpdir}/w.pbm
+${PBM_BINPREFIX}pbmmake -b 10 10 > ${tmpdir}/b.pbm
+${PBM_TESTPREFIX}pnmpsnr  ${tmpdir}/w.pbm  ${tmpdir}/b.pbm 2>&1 | \
+ awk '{print $(NF-1),$NF}'
+${PBM_TESTPREFIX}pnmpsnr  ${tmpdir}/w.pbm  ${tmpdir}/w.pbm 2>&1 | \
+ awk '{print $(NF-1),$NF}'
+rm ${tmpdir}/b.pbm ${tmpdir}/w.pbm
diff --git a/test/pnmremap1.ok b/test/pnmremap1.ok
new file mode 100644
index 00000000..a6cfc2bd
--- /dev/null
+++ b/test/pnmremap1.ok
@@ -0,0 +1 @@
+2667816854 101482
diff --git a/test/pnmremap1.test b/test/pnmremap1.test
new file mode 100755
index 00000000..1e68c8ad
--- /dev/null
+++ b/test/pnmremap1.test
@@ -0,0 +1,19 @@
+#! /bin/bash
+# This script tests: pnmremap
+# Also requires: pamdepth pamseq pamtopnm
+
+${PBM_BINPREFIX}pamseq 3 5 -tupletype=RGB | ${PBM_BINPREFIX}pamtopnm \
+ > ${tmpdir}/palette
+${PBM_BINPREFIX}pamdepth 255 ${tmpdir}/palette > ${tmpdir}/palette255
+
+# Test 1. Floyd-Steinberg
+# This fails with older versions of Netpbm and x86-64.
+# May also fail on other non-Intel architectures.
+# v. 10.59.2
+# x86-32: 2667816854 101482 
+# x86-64: 3602410851 101482
+
+${PBM_TESTPREFIX}pnmremap -mapfile=${tmpdir}/palette -floyd -norandom \
+ testimg.ppm | cksum
+
+rm ${tmpdir}/palette{,255}
diff --git a/test/pnmremap2.ok b/test/pnmremap2.ok
new file mode 100644
index 00000000..a2d1c0dc
--- /dev/null
+++ b/test/pnmremap2.ok
@@ -0,0 +1,3 @@
+3224011488 101482
+2325696119 101484
+2325696119 101484
diff --git a/test/pnmremap2.test b/test/pnmremap2.test
new file mode 100755
index 00000000..f2fd92e0
--- /dev/null
+++ b/test/pnmremap2.test
@@ -0,0 +1,21 @@
+#! /bin/bash
+# This script tests: pnmremap
+# Also requires: pamdepth pamseq pamtopnm
+
+${PBM_BINPREFIX}pamseq 3 5 -tupletype=RGB | ${PBM_BINPREFIX}pamtopnm \
+ > ${tmpdir}/palette
+${PBM_BINPREFIX}pamdepth 255 ${tmpdir}/palette > ${tmpdir}/palette255
+
+# Test 2. Default (unmodified quantization)
+${PBM_TESTPREFIX}pnmremap -mapfile=${tmpdir}/palette -nofloyd \
+testimg.ppm | cksum
+
+# Test 3. Use first color in palette for missing colors
+${PBM_TESTPREFIX}pnmremap -mapfile=${tmpdir}/palette255 -nofloyd \
+ -firstisdefault testimg.ppm | cksum
+
+# Test 4. Use black for missing colors
+${PBM_TESTPREFIX}pnmremap -mapfile=${tmpdir}/palette255 -nofloyd \
+-missingcolor=black testimg.ppm | cksum
+
+rm ${tmpdir}/palette{,255}
diff --git a/test/pnmtile.ok b/test/pnmtile.ok
new file mode 100644
index 00000000..559d0f65
--- /dev/null
+++ b/test/pnmtile.ok
@@ -0,0 +1,2 @@
+4228632379 259
+0
diff --git a/test/pnmtile.test b/test/pnmtile.test
new file mode 100755
index 00000000..b0c14ca6
--- /dev/null
+++ b/test/pnmtile.test
@@ -0,0 +1,12 @@
+#! /bin/bash
+# This script tests: pnmtile
+# Also requires: pnmcat
+
+${PBM_TESTPREFIX}pnmtile 40 50 testgrid.pbm | cksum
+
+${PBM_TESTPREFIX}pnmtile 454 298 testimg.ppm > ${tmpdir}/testimg4.ppm &&
+${PBM_BINPREFIX}pnmcat -lr testimg.ppm testimg.ppm > ${tmpdir}/testimg2.ppm &&
+${PBM_BINPREFIX}pnmcat -tb ${tmpdir}/testimg2.ppm ${tmpdir}/testimg2.ppm | \
+diff - ${tmpdir}/testimg4.ppm && echo $?
+
+rm ${tmpdir}/testimg{2,4}.ppm
diff --git a/test/pnmtopnm-plain.ok b/test/pnmtopnm-plain.ok
new file mode 100644
index 00000000..02d99f1e
--- /dev/null
+++ b/test/pnmtopnm-plain.ok
@@ -0,0 +1,48 @@
+P1
+14 16
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+10101010101010
+11111111111111
+P2
+14 16
+255
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 255 0 255 0 255 0 255 0 255 0 255 0 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+P3
+14 16
+255
+0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 
+0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 
+0 0 0 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
diff --git a/test/pnmtopnm-plain.test b/test/pnmtopnm-plain.test
new file mode 100755
index 00000000..3cbd5752
--- /dev/null
+++ b/test/pnmtopnm-plain.test
@@ -0,0 +1,10 @@
+#! /bin/bash
+# This script tests: pnmtopnm
+# Also requires: pgmtopgm ppmtoppm
+
+${PBM_TESTPREFIX}pnmtopnm -plain testgrid.pbm
+
+${PBM_BINPREFIX}pgmtopgm < testgrid.pbm | ${PBM_TESTPREFIX}pnmtopnm -plain
+
+${PBM_BINPREFIX}ppmtoppm < testgrid.pbm | ${PBM_TESTPREFIX}pnmtopnm -plain | \
+  head -n11
diff --git a/test/ppmbrighten.ok b/test/ppmbrighten.ok
new file mode 100644
index 00000000..65feb812
--- /dev/null
+++ b/test/ppmbrighten.ok
@@ -0,0 +1,3 @@
+2737989845 101484
+1059247992 101484
+32344911 101484
diff --git a/test/ppmbrighten.test b/test/ppmbrighten.test
new file mode 100755
index 00000000..72bebff4
--- /dev/null
+++ b/test/ppmbrighten.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: ppmbrighten
+# Also requires: 
+
+${PBM_TESTPREFIX}ppmbrighten -v 100 testimg.ppm | cksum
+${PBM_TESTPREFIX}ppmbrighten -v 100 -normalize testimg.ppm | cksum
+${PBM_TESTPREFIX}ppmbrighten -s 100 -v -50 testimg.ppm | cksum
diff --git a/test/ppmchange-roundtrip.ok b/test/ppmchange-roundtrip.ok
new file mode 100644
index 00000000..a676a1f2
--- /dev/null
+++ b/test/ppmchange-roundtrip.ok
@@ -0,0 +1,2 @@
+2425386270 41
+2425386270 41
diff --git a/test/ppmchange-roundtrip.test b/test/ppmchange-roundtrip.test
new file mode 100755
index 00000000..c303c11b
--- /dev/null
+++ b/test/ppmchange-roundtrip.test
@@ -0,0 +1,11 @@
+#! /bin/bash
+# This script tests: ppmchange
+# Also requires: pgmtopbm pnminvert ppmtopgm
+
+${PBM_TESTPREFIX}ppmchange black white white black testgrid.pbm | \
+${PBM_BINPREFIX}pnminvert | ${PBM_BINPREFIX}ppmtopgm | \
+${PBM_BINPREFIX}pgmtopbm -th -val=0.5 | cksum
+
+${PBM_TESTPREFIX}ppmchange  black white white black testgrid.pbm | \
+${PBM_TESTPREFIX}ppmchange  black white white black -plain  | \
+${PBM_BINPREFIX}ppmtopgm | ${PBM_BINPREFIX}pgmtopbm -th -val=0.5 | cksum
diff --git a/test/ppmcie.ok b/test/ppmcie.ok
new file mode 100644
index 00000000..3398b2f7
--- /dev/null
+++ b/test/ppmcie.ok
@@ -0,0 +1 @@
+955840041 786447
diff --git a/test/ppmcie.out-64 b/test/ppmcie.out-64
new file mode 100644
index 00000000..3d8ca13a
--- /dev/null
+++ b/test/ppmcie.out-64
@@ -0,0 +1 @@
+2583941766 786447
diff --git a/test/ppmcie.test b/test/ppmcie.test
new file mode 100755
index 00000000..cd84536a
--- /dev/null
+++ b/test/ppmcie.test
@@ -0,0 +1,20 @@
+#! /bin/bash
+# This script tests: ppmcie
+# Also requires: 
+
+# Test 1. Should print 955840041 786447
+# Without -nolabel -noaxes -nowpoint -noblack older versions of
+# Netpbm produce slightly different charts.
+# Output from "ppmcie | cksum" :
+# v. 10.35.86: 288356530 786447   
+# v. 10.59.2 : 2292601420 786447  
+#
+# This test fails when ppmcie is compiled with SSE features are turned on.
+# Note that Gcc turns on SSE,SSE2 on by default for x86-64.
+
+# v. 10.59.2
+# x86 32 bit: 955840041 786447
+# x86 64 bit: 4208660683 786447
+
+${PBM_TESTPREFIX}ppmcie -nolabel -noaxes -nowpoint -noblack  | cksum
+
diff --git a/test/ppmdim.ok b/test/ppmdim.ok
new file mode 100644
index 00000000..9c55e064
--- /dev/null
+++ b/test/ppmdim.ok
@@ -0,0 +1,13 @@
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
diff --git a/test/ppmdim.test b/test/ppmdim.test
new file mode 100755
index 00000000..27bbc4e1
--- /dev/null
+++ b/test/ppmdim.test
@@ -0,0 +1,19 @@
+#! /bin/bash
+# This script tests: ppmdim
+# Also requires: pamfunc pamarith pamsumm
+
+# Compare ppmdim and pamfunc with various dim factors
+# Due to the difference rounding methods, pamfunc produces slightly
+# brighter images, by about 0.5 per pixel.
+# If the mean difference is between 0 and 0.75 we consider the output
+# normal.  This works for dim values up to 0.994 .
+
+for i in  0.125 0.25 0.5 0.75 0.1 0.0117 0.2 0.4 0.333 0.666 0.8 0.9 0.95
+  do
+  ${PBM_TESTPREFIX}ppmdim $i testimg.ppm > ${tmpdir}/dim1.ppm
+  ${PBM_BINPREFIX}pamfunc -mult=$i testimg.ppm > ${tmpdir}/dim2.ppm
+  ${PBM_BINPREFIX}pnmarith -diff ${tmpdir}/dim1.ppm ${tmpdir}/dim2.ppm | \
+    ${PBM_BINPREFIX}pamsumm -mean -brief | \
+    awk '{print $1<0.75 ? "ok" : "fail"}'
+  done
+rm ${tmpdir}/dim[12].ppm
diff --git a/test/ppmdither.ok b/test/ppmdither.ok
new file mode 100644
index 00000000..3159f17e
--- /dev/null
+++ b/test/ppmdither.ok
@@ -0,0 +1,3 @@
+1519741676 101482
+3886084802 101482
+3737986353 101482
diff --git a/test/ppmdither.test b/test/ppmdither.test
new file mode 100755
index 00000000..5fea0bb4
--- /dev/null
+++ b/test/ppmdither.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: ppmdither
+# Also requires: 
+
+${PBM_TESTPREFIX}ppmdither testimg.ppm | cksum
+${PBM_TESTPREFIX}ppmdither -red 2 -green 2 -blue 2 testimg.ppm | cksum
+${PBM_TESTPREFIX}ppmdither -dim 2 testimg.ppm | cksum
diff --git a/test/ppmgauss.ok b/test/ppmgauss.ok
new file mode 100644
index 00000000..cf708d64
--- /dev/null
+++ b/test/ppmgauss.ok
@@ -0,0 +1,81 @@
+3712518499 55
+3712518499 55
+1147844094 55
+731871722 55
+1259293616 55
+4234223225 55
+171732531 55
+448293386 55
+3030522957 55
+757204806 62
+757204806 62
+2890088558 62
+4276668903 62
+1462902064 62
+4161772187 62
+2741154810 62
+417660035 62
+1026188683 62
+1236982144 71
+1236982144 71
+2668915323 71
+499504068 71
+3377926681 71
+1877781725 71
+1741784255 71
+2975827721 71
+185899480 71
+1890880170 82
+1890880170 82
+2007282168 82
+2290578407 82
+3295586348 82
+3202728672 82
+3794283497 82
+1136760947 82
+2659761303 82
+3268058875 95
+3268058875 95
+4112134785 95
+3700010306 95
+909823480 95
+2336604848 95
+3042873446 95
+299128630 95
+1852505233 95
+3614879265 110
+3614879265 110
+3727088180 110
+3861671574 110
+952180714 110
+1393452065 110
+1551903756 110
+2198775655 110
+3231547603 110
+3184597171 127
+3184597171 127
+406519147 127
+1836966508 127
+1796467962 127
+1932274161 127
+1852779549 127
+1734420920 127
+2400421918 127
+3252995941 148
+3252995941 148
+2022176119 148
+473753498 148
+3178129210 148
+2278608777 148
+3169785704 148
+85136480 148
+2396646133 148
+1871459418 169
+1871459418 169
+639002491 169
+1810927285 169
+4218372313 169
+1320749835 169
+4102007360 169
+3022719594 169
+1769176609 169
diff --git a/test/ppmgauss.test b/test/ppmgauss.test
new file mode 100755
index 00000000..a75d272c
--- /dev/null
+++ b/test/ppmgauss.test
@@ -0,0 +1,11 @@
+#! /bin/bash
+# This script tests: pamgauss
+# Also requires: 
+
+for i in `seq 3 11`
+do
+for s in `seq 1 9`
+do
+${PBM_TESTPREFIX}pamgauss $i $i -sigma=.$s | cksum
+done
+done
diff --git a/test/ppmhist.ok b/test/ppmhist.ok
new file mode 100644
index 00000000..91731d4b
--- /dev/null
+++ b/test/ppmhist.ok
@@ -0,0 +1,11 @@
+value  count  b%      w%   
+-----  -----  ------  ------
+    0      2   12.5%    100%
+    1      2     25%   87.5%
+    2      2   37.5%     75%
+    3      2     50%   62.5%
+    4      2   62.5%     50%
+    5      2     75%   37.5%
+    6      2   87.5%     25%
+    8      2    100%   12.5%
+3438989921 711087
diff --git a/test/ppmhist.test b/test/ppmhist.test
new file mode 100755
index 00000000..29bba206
--- /dev/null
+++ b/test/ppmhist.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: ppmhist
+# Also requires: pgmhist pgmramp
+
+${PBM_BINPREFIX}pgmramp -maxval=8 -lr 8 2 | ${PBM_BINPREFIX}pgmhist
+${PBM_TESTPREFIX}ppmhist -map -sort=rgb testimg.ppm | cksum
+
diff --git a/test/ppmmake.ok b/test/ppmmake.ok
new file mode 100644
index 00000000..0e871732
--- /dev/null
+++ b/test/ppmmake.ok
@@ -0,0 +1,2 @@
+2477651508 15012
+2378991101 7513
diff --git a/test/ppmmake.test b/test/ppmmake.test
new file mode 100755
index 00000000..02e747ab
--- /dev/null
+++ b/test/ppmmake.test
@@ -0,0 +1,13 @@
+#! /bin/bash
+# This script tests: ppmmake
+# Also requires: 
+
+#export RGBDEF=/usr/share/emacs/23.2/etc/rgb.txt
+
+${PBM_TESTPREFIX}ppmmake rgb:ff/80/80 50 100 -maxval=5 | cksum
+${PBM_TESTPREFIX}ppmmake red 50 50  | cksum
+
+
+
+
+ 
\ No newline at end of file
diff --git a/test/ppmmix.ok b/test/ppmmix.ok
new file mode 100644
index 00000000..88bcef4a
--- /dev/null
+++ b/test/ppmmix.ok
@@ -0,0 +1,17 @@
+P2
+8 8
+3
+3 2 3 2 1 0 1 0 
+2 3 2 3 0 1 0 1 
+3 2 3 2 1 0 1 0 
+2 3 2 3 0 1 0 1 
+1 0 1 0 3 2 3 2 
+0 1 0 1 2 3 2 3 
+1 0 1 0 3 2 3 2 
+0 1 0 1 2 3 2 3 
+1926073387 101484
+1926073387 101484
+1926073387 101484
+1926073387 101484
+127
+127
diff --git a/test/ppmmix.test b/test/ppmmix.test
new file mode 100755
index 00000000..0f9deedc
--- /dev/null
+++ b/test/ppmmix.test
@@ -0,0 +1,29 @@
+#! /bin/bash
+# This script tests: ppmmix
+# Also requires: pamdepth pamenlarge pamsumm pbmmake
+# Also requires: pgmtopgm pnminvert ppmtopgm
+
+# Print a pretty checkerboard pattern
+${PBM_BINPREFIX}pbmmake -g 8 8 | \
+ ${PBM_BINPREFIX}pgmtopgm > ${tmpdir}/a1.pgm &&
+${PBM_BINPREFIX}pbmmake -g 2 2 | ${PBM_BINPREFIX}pamenlarge 4 | \
+ ${PBM_BINPREFIX}pgmtopgm > ${tmpdir}/a2.pgm &&
+${PBM_TESTPREFIX}ppmmix 0.75 ${tmpdir}/a1.pgm ${tmpdir}/a2.pgm -plain | \
+ ${PBM_BINPREFIX}ppmtopgm | ${PBM_BINPREFIX}pamdepth 3 -plain &&
+rm ${tmpdir}/a1.pgm ${tmpdir}/a2.pgm
+
+# Mix image with itself.
+# Output should match input regardless of ratio. 
+for i in 0 0.5 0.6 1
+do 
+${PBM_TESTPREFIX}ppmmix $i testimg.ppm testimg.ppm | cksum
+done
+
+# Mix image with its own inverse.
+# Output should be a monotone gray sheet.
+${PBM_BINPREFIX}pnminvert testimg.ppm | ${PBM_TESTPREFIX}ppmmix .5 \
+    testimg.ppm - | tee ${tmpdir}/a3.ppm | \
+  ${PBM_BINPREFIX}pamsumm -brief -max &&
+  ${PBM_BINPREFIX}pamsumm -brief -min ${tmpdir}/a3.ppm &&
+
+rm ${tmpdir}/a3.ppm
diff --git a/test/ppmtopgm.ok b/test/ppmtopgm.ok
new file mode 100644
index 00000000..32a4743b
--- /dev/null
+++ b/test/ppmtopgm.ok
@@ -0,0 +1 @@
+2871603838 33838
diff --git a/test/ppmtopgm.test b/test/ppmtopgm.test
new file mode 100755
index 00000000..7ab481c6
--- /dev/null
+++ b/test/ppmtopgm.test
@@ -0,0 +1,7 @@
+#! /bin/bash
+# This script tests: ppmtopgm
+# Also requires: 
+
+# Test 1. Should produce 2871603838 33838
+${PBM_TESTPREFIX}ppmtopgm testimg.ppm | cksum
+
diff --git a/test/ppmtoppm.ok b/test/ppmtoppm.ok
new file mode 100644
index 00000000..764a3464
--- /dev/null
+++ b/test/ppmtoppm.ok
@@ -0,0 +1 @@
+829921912 685
diff --git a/test/ppmtoppm.test b/test/ppmtoppm.test
new file mode 100755
index 00000000..c073ecff
--- /dev/null
+++ b/test/ppmtoppm.test
@@ -0,0 +1,5 @@
+#! /bin/bash
+# This script tests: ppmtoppm
+# Also requires: 
+
+${PBM_TESTPREFIX}ppmtoppm < testgrid.pbm | cksum
\ No newline at end of file
diff --git a/test/ppmwheel.ok b/test/ppmwheel.ok
new file mode 100644
index 00000000..24756d1e
--- /dev/null
+++ b/test/ppmwheel.ok
@@ -0,0 +1,2 @@
+1537578995 59
+875938089 86
diff --git a/test/ppmwheel.test b/test/ppmwheel.test
new file mode 100755
index 00000000..4d786f26
--- /dev/null
+++ b/test/ppmwheel.test
@@ -0,0 +1,113 @@
+#! /bin/bash
+# This script tests: ppmwheel
+# Also requires: 
+
+# For values 6 and above, x86(-32) and x86-64 produce different output.
+# SSE floating-point math is the probable cause.
+
+for i in 4 5
+do
+${PBM_TESTPREFIX}ppmwheel $i | cksum
+done
+
+#   i    32 bit              64 bit
+#
+#   6:   343122583   119     142348877   119
+#   7:  3572780137   158    3220488357   158
+#   8:  3078449954   203    1413542034   203
+#   9:  3437862278   254     311501249   254
+#  10:  1111245327   313     582960969   313
+#  11:   548273236   376    3726921442   376
+#  12:  2741456118   445    3696607391   445
+#  13:   673636665   520    1059273944   520
+#  14:  2445730101   601    3445053713   601
+#  15:   592850912   688    1691004230   688
+#  16:  3302887123   781      86998539   781
+#  17:  1786065899   880    2476986124   880
+#  18:   186804914   985    2853442889   985
+#  19:  1453260662  1096    3182405636  1096
+#  20:  1467480434  1213    4040494227  1213
+#  21:  1062903055  1336     810283715  1336
+#  22:  2638704989  1465     338245948  1465
+#  23:  3441453532  1600    2213581565  1600
+#  24:  1836362684  1741    2056241218  1741
+#  25:  3423398348  1888    3519123827  1888
+#  26:  3262548375  2041     684292199  2041
+#  27:  3598993221  2200    1577275941  2200
+#  28:  3728319498  2365    1061803162  2365
+#  29:  3729945629  2536     133069086  2536
+#  30:  3645113424  2713    3302414477  2713
+#  31:  2873651818  2896    3660671646  2896
+#  32:  1408491813  3085    2010949125  3085
+#  33:  3781351758  3280    1548995986  3280
+#  34:  3242345057  3481    3082631326  3481
+#  35:  2550511376  3688    1038419921  3688
+#  36:  1028065649  3901    2532290776  3901
+#  37:  1140380377  4120    2428435544  4120
+#  38:  1066850059  4345    3102961014  4345
+#  39:  3620700071  4576    1898018896  4576
+#  40:   504158758  4813     272658385  4813
+#  41:  1349365217  5056     270227718  5056
+#  42:    41774986  5305     509262620  5305
+#  43:  2655322328  5560    4133072843  5560
+#  44:  2318607206  5821    3294034402  5821
+#  45:  2178510518  6088    3314361750  6088
+#  46:  3285054002  6361    2469557621  6361
+#  47:  3047461329  6640    3629344726  6640
+#  48:   137286416  6925    4222495543  6925
+#  49:  2115001463  7216    2668575184  7216
+#  50:  1677997300  7513    2978221605  7513
+#  51:  1365174489  7816    3575061958  7816
+#  52:  2863311036  8125    1791798959  8125
+#  53:  3791281707  8440    3482008958  8440
+#  54:  2687508733  8761    4163388707  8761
+#  55:  2593010606  9088    3561733531  9088
+#  56:  2976537803  9421    3234561645  9421
+#  57:  2850729115  9760    1244925692  9760
+#  58:   224433311 10105    3825098819 10105
+#  59:   547683536 10456    3988409437 10456
+#  60:   369722519 10813    2020750234 10813
+#  61:   745454697 11176    1184600938 11176
+#  62:  1380472574 11545    1044589924 11545
+#  63:  1812671001 11920     238104621 11920
+#  64:  2833858343 12301     228306790 12301
+#  65:   957265138 12688     470109697 12688
+#  66:   895413590 13081     944950937 13081
+#  67:  3724154793 13480     126668527 13480
+#  68:   741064239 13885    1930273504 13885
+#  69:   785023636 14296    3279987135 14296
+#  70:  3649222232 14713    2854788625 14713
+#  71:  1997467987 15136    1689264112 15136
+#  72:  3469507186 15565     682126673 15565
+#  73:  2831204610 16000    1826370607 16000
+#  74:  3154512856 16441    1843713601 16441
+#  75:  1469123916 16888    3700274597 16888
+#  76:  2909139778 17341    2769322155 17341
+#  77:  2945643808 17800    1176063119 17800
+#  78:  3334870474 18265    2274153840 18265
+#  79:  1788316629 18736    1170513638 18736
+#  80:  1236198778 19213     780491458 19213
+#  81:  1946474293 19696    2989417839 19696
+#  82:  1479086076 20185    1500511762 20185
+#  83:  3510147444 20680    1990564736 20680
+#  84:  4044688071 21181    2820276538 21181
+#  85:  1293455808 21688    1335142677 21688
+#  86:  3408774244 22201    2664774438 22201
+#  87:  3591290969 22720    1236374968 22720
+#  88:  3814759633 23245    2889543826 23245
+#  89:  4157749717 23776    4033323913 23776
+#  90:  3512276083 24313    1722273029 24313
+#  91:   797424413 24856    1737843448 24856
+#  92:  3480584612 25405    1304329442 25405
+#  93:  2445523895 25960    1260847516 25960
+#  94:  3157009888 26521    1120864660 26521
+#  95:   103872014 27088    2076594208 27088
+#  96:  1584398684 27661     213099822 27661
+#  97:  3586313190 28240     944151015 28240
+#  98:  4086203619 28825    1961862620 28825
+#  99:  3656777902 29416    2475351252 29416
+# 100:  2246720411 30015    4055518595 30015
+
+
+
+ 
\ No newline at end of file
diff --git a/test/ps-roundtrip.ok b/test/ps-roundtrip.ok
new file mode 100644
index 00000000..67f7a1fe
--- /dev/null
+++ b/test/ps-roundtrip.ok
@@ -0,0 +1,2 @@
+1926073387 101484
+2425386270 41
diff --git a/test/ps-roundtrip.test b/test/ps-roundtrip.test
new file mode 100755
index 00000000..6d6935af
--- /dev/null
+++ b/test/ps-roundtrip.test
@@ -0,0 +1,21 @@
+#! /bin/bash
+# This script tests: pnmtops pstopnm
+# Also requires: pnmtopnm
+
+${PBM_TESTPREFIX}pnmtops -nocenter -equalpixels -dpi 72 -noturn testimg.ppm \
+  > ${tmpdir}/testimg.ps
+xysize=`awk  '/BoundingBox/ {print "-xsize="$4,"-ysize="$5}' \
+  ${tmpdir}/testimg.ps` 
+${PBM_TESTPREFIX}pstopnm -xborder=0 -yborder=0 $xysize -stdout \
+  -quiet ${tmpdir}/testimg.ps | \
+  ${PBM_BINPREFIX}pnmtopnm | cksum
+
+${PBM_TESTPREFIX}pnmtops -nocenter -equalpixels -dpi 72 -noturn testgrid.pbm \
+  > ${tmpdir}/testgrid.ps
+xysize=`awk  '/BoundingBox/ {print "-xsize="$4,"-ysize="$5}' \
+  ${tmpdir}/testgrid.ps`
+${PBM_TESTPREFIX}pstopnm -xborder=0 -yborder=0 $xysize -stdout \
+  -quiet ${tmpdir}/testgrid.ps -pbm | \
+  ${PBM_BINPREFIX}pnmtopnm | cksum
+
+rm  ${tmpdir}/testgrid.ps  ${tmpdir}/testimg.ps
diff --git a/test/rgb3-roundtrip.ok b/test/rgb3-roundtrip.ok
new file mode 100644
index 00000000..745a7c5f
--- /dev/null
+++ b/test/rgb3-roundtrip.ok
@@ -0,0 +1,5 @@
+1926073387 101484
+2425386270 41
+0
+0
+0
diff --git a/test/rgb3-roundtrip.test b/test/rgb3-roundtrip.test
new file mode 100755
index 00000000..9cc45499
--- /dev/null
+++ b/test/rgb3-roundtrip.test
@@ -0,0 +1,31 @@
+#! /bin/bash
+# This script tests: ppmtorgb3 rgb3toppm
+# Also requires: pgmtopbm pgmtopgm ppmtopgm
+
+# Break an image into three monochrome planes, reassemble the
+# image from them and check whether the resulting output is
+# identical to the original input.
+
+cp testimg.ppm ${tmpdir} &&
+${PBM_TESTPREFIX}ppmtorgb3 ${tmpdir}/testimg.ppm &&
+${PBM_TESTPREFIX}rgb3toppm ${tmpdir}/testimg.red ${tmpdir}/testimg.grn \
+  ${tmpdir}/testimg.blu | cksum
+
+rm ${tmpdir}/testimg.{ppm,red,grn,blu}
+
+cp testgrid.pbm ${tmpdir} &&
+${PBM_TESTPREFIX}ppmtorgb3 ${tmpdir}/testgrid.pbm &&
+${PBM_TESTPREFIX}rgb3toppm ${tmpdir}/testgrid.red ${tmpdir}/testgrid.grn \
+  ${tmpdir}/testgrid.blu | \
+  ${PBM_BINPREFIX}ppmtopgm | ${PBM_BINPREFIX}pgmtopbm -th -val=0.5 | cksum
+
+
+# With PGM or PBM input, the three monochrome planes should be
+# identical.  Test for this.
+
+diff ${tmpdir}/testgrid.red ${tmpdir}/testgrid.grn ; echo $?
+diff ${tmpdir}/testgrid.grn ${tmpdir}/testgrid.blu ; echo $?
+${PBM_BINPREFIX}pgmtopgm < testgrid.pbm | diff - ${tmpdir}/testgrid.red;
+  echo $?
+
+rm ${tmpdir}/testgrid.{pbm,red,grn,blu}
diff --git a/test/testgrid.pbm b/test/testgrid.pbm
new file mode 100644
index 00000000..cc6a50aa
--- /dev/null
+++ b/test/testgrid.pbm
@@ -0,0 +1,3 @@
+P4
+14 16
+
\ No newline at end of file
diff --git a/test/testimg.ppm b/test/testimg.ppm
new file mode 100644
index 00000000..061d5368
--- /dev/null
+++ b/test/testimg.ppm
@@ -0,0 +1,4 @@
+P6
+227 149
+255
+0/-0/-10.21/51.51.62/62/83/83/:3-:3-:3-:3-:3-:3-:2/91.91.80-80-91.91.:2/80-80-80-80-80-80-80-80-6.+6.+6.+5-*5-*4,)4,)4,)4,)4,)4,)4,)4,)4,)4,)2-)/*$/,%/,%0-&1.'2/(30)30)63,63,74-85.85.96/:70:7.A:0B<0D>2F@4IA4JB5KC6KC6MD5MD5OC3NB2OC3OC3PD4RE5R?1Y?2b@4nB5}E6H8G9F7G:G9E:G;G>G?H@E@FLCLDKEICIBD>B=A;A:@:?<??@@>?<A7=/@.@.?-?-@-?-@-@,A,A-B,@*A)@*A,>-?/?/>.>,=+<+<+?+?+=*=*=*>+?,@/?6>5=2?1B3D3D4D4?0A2F8H;H9oA2T8*C3&=5295495473271160050-50-72/72/72/61.61-50,50,41,//-.0-//-//-0/-0/-2.-2.-5,-4+,4*+3)*7(+=.1E69P:<jBC|IHMMOOW[dnot{~sy`aTKvPDhSJgOG^MH^TQbfdo|}{|lfgUXWEQNEUR[UQbUQb0/-0/-10.10.40-51.62/62/83/83/:3-:3-:3-:3-:3-:3-91.91.80-80-80-80-91.91.80-80-80-80-80-80-80-80-6.+6.+5-*5-*5-*4,)4,)4,)5-*5-*5-*5-*5-*5-*5-*3.*0+%0-&0-&1.'2/(30)41*41*63,63,74-74-85.96/:70:7.@9/A;/C=1E?3H@3IA4JB5JB5LC4LC4MA1MA1MA1NB2OC3QD4P>0U?1^A3jC4xD6E4E5C3C4A4A4B7D:E<F=C@EIBICIDHDGBD@C?C;A:@:?<??@A>@<@6>/@.?-?-?-?,?-@-@,@+A-A+@*A)@*A,>-?/>.>.>,=+<+<+?+>*=*=*=*>+?,@/@5>5>3>1A3D4C4D5A2C6F8I;G:l@3S9*B4)>63:6595484382271161.61.72/72/72/61.61-50,50,41,//-.0-//-//-0/-0/-2.-2.-3--5,-4*+3)*5)+<-0C47N8:d>=vEAJINLTVajl}r{{ou[[QHuOCiOFeOG_PH_RN_[Yfnot~ojkY][LVSJXSZVRaXQa/.,/.,0/-10.40-40-51.51.72.72.72.72.92,92,92,92,91.80.7/-7/-7/-7/-80.91/80.80.80.80.80.80.80.80.6.,5-+5-+5-+4,*4,*4,*4,*5-+5-+5-+5-+5-+5-+5-+3.*2-'1.'2/(30)30)41*41*52+63,63,63,74-85.96/96/:7.?8.@:.B<0D>2G?4H@5H@3H@3I@1I@1K?1K?1K?/L@0MA1NB2MA1QA1YB2dC2qC3|C2B2A0<-:+;.=2@6D:F=D>CE@FBGBFDFCEAD?D;@:?;@=@@@A=@;@5=.@-@-?,?-?->,@,?-@-@,A+A,?*@*@+>->.>.>.=+=+=+=+>,>,<+<+=,=,?+?.A6?5>3>2A4C5D5C5D8F;I=J=G;h@4Q:,B5,?74=77<66:4494183072/72/62/62/62/51.52-41,41,21,.0-,1-.0-.0-//-//-0/-2.-5//4..5,-4*+4*+9-/>24I56[97l?9|E@IDOM[`fvmw}}u~fmTVMEvLAkMAeOFcQHcMH^NK\[[eqty|xzlfiXZ[MVSLZU[ZT`[S`.-+/.,/.,0/-3/,40-40-40-61-61-61-61-81+81+81+81+7/-7/-6.,6.,6.,6.,7/-7/-80.80.80.80.80.80.80.80.5-+5-+5-+4,*4,*4,*3+)3+)6.,6.,6.,6.,6.,6.,6.,4/,30+30)30)41*41*52+52+52+52+52+63,74-85.85.96/96->7-?9-@:.B<0E=2E=2F>1F>1G=1G>/H<.I=/I=/J>.L@0JA0KD2NE4UD4^D3iD2sB1~A/?-9)9'9*<-@3E8H<F>DCACBCDCCDBC@C?A;@:?;@>@A@B=@9@3=-@,@,@,>,?,?,?+@-?,@+@*@+@*@)?*>,>.>.=-=+=+<*<*=+=+<*<*<+>,>-?-A6?5>2@4B6C8C7B7F<J?L@K>|F:b@4L:.A7-@85>96=77<74:5294183083062/62/62/32.52-21,21,12--2.-2./1./1.00.00.10.10.5106005//5,-4+,6,-:01D22T71c;3qA7{E;HDRU_lis}yx}ow`fQRLEyL@pL@hPEgQFfLC^GBVMLZ^^fjnquyxx}wzvwzokoa`bTWYLTTL]WY]V]]V^------.-+/.,0/-10.3/,40-3/,3/,4/+4/+4/+4/+6/)6/)4/,4/,3.+3.+3.+3.+4/,4/,50-50-50-50-50-50-50-50-3.+3.+2-*2-*2-*1,)1,)1,)4/,4/,4/,4/,4/,4/,4/,4/,41,41,41,41,41,52-52-52-52-52-63.63.74/85096196/<5-=6,?8.@9/B:/C;0C;0C;.D:.D:.F:.G;-H<.I=/J>0I@1JG6MH5RG5YF5bE3jD1uB/}>,;):):*=,B2F8J=I?GBDCDBEBBBAA=@<>:?:<<>?>B>C:A5?0?-?,?,?,>->->-?->.?-?,?+?,?+>*>*>,?.>->->-=,=,=,=,=,=,=,<,>->.?.B4A4@1@3A7C9B8A7C;H?LCJ@tE;Z>2E9-<5+@93@85?75>63=52<4194083/62/43/43/23.32.12-12-02--2.,2.-2.-2./1./1.00.10.3205105104..2,,4+,7./=/.N5.Y9.e=1n@3sB;yKKZegpzxu{ks_dTTOGLBwNAmNBhMAeJA`GBYGFXKKWMPU]cc`fbbia`f\Z`TW[MUXMXXP^YV`WX`WZ,,,,,,.-+.-+/.,0/-3/,3/,2.+2.+3.*3.*3.*3.*5.(5-*3.+3.+2-*1,)1,)2-*3.+3.+3.+3.+3.+3.+3.+3.+3.+3.+2-*2-*2-*2-*1,)1,)1,)0+(3.+3.+3.+3.+3.+3.+3.+3.+41,41,41,41,41,41,41,41,41,52-52-63.74/85085085.;4,<5+=6,>7-@7.A9.A9.A9.C9/C9-E9-F:.G;/H<.J>0HA1JG6IH6NG5VF6\E3dC2n@0v>-{<+;);*=,@1F5J:J=H@EAFAE@CA@>>?:<;<:;<=@=C=C8@2>,?,@,?+?+?->,>,?,>-?,?,>,?+>*>)?*>+>->->-=,=,=,<+=,<+<+<+<-=,>/?.B4A2@2B5C9C:B:A;A9I@NGNEoG=S?4A;/96-@93A75?74>63<4194083/74/43/43/34/23.23.02-02-.3--3/-3/.3/.3/02/02/11/11/21/32032040/2.-1-,4..8.,G4-O4)X8+`<0e?6mGFyYdku||w|nudh[[RMLB~OArL@hI=cH>`HB^ECX@BO;@FBGJDMJJQJJQIIQFKQEOUIVWO^YS`YS`XU++++++,,,---/.,/.,0/-0/-1-*1-*1-*1-*2-)2-)2-)2-)2-*2,,1++1++1++1++2,,2,,1++1++1++1++1++1++1++1++2,,2,,2,,1++1++1++0**0**3--3--3--3--3--3--3--3.+41,41,41,30+30+30+30+30+41,41,52-63.74/74/85085.:3+;4,<5-=6.?6/?6-?6-?7,B8.B8.E8/E9-G;/H<0J>2H@3HE6GF4KE5QD4XC2_B2f?.n=,v=,|:*9);*=.B2F7F8F<F>F>E>D@C?@@>>::;:<<A<C;D6@/=)?-@-@-?,>.>.=->-=.?.?-?-?,>*?*>)>+>->-=,=.=.<-<-<-=-;,<,</>.=0?/C2B1A1B6C:C<C=C=FAQJXRXQsRIWI>CC7<?6>93@72>71=60:5/94.83/63.43.43.34/13.13..3-.3-.3--3/-3/-3/-3/.3/.3/02/02/00.11/22021/0/-/.,2.-4/,?0+D0)K3)T8-Z<4dFFu]js~tzmpceVSLCK?qI<gG;cE>_FB]DBW?AN;?H:BE>HGDMHGQIGQHJRGNVKUXM^ZOaYNaXO++++++,,,,,,.,-/.,0/-0/-1-*1-*1-*1-*2-)2-)2-)2-*2,,1++1++0**0**1++1++2,,0**0**0**0**0**0**0**0**2,,2,,2,,1++1++0**0**0**2,,2,,2,,2,,2,,2,,2,,2,,3/,30+30+30+30+30+30+30+41,41,52-63.63.74/85085092,:3+;4,<5->5.>5.>5.>5,B8/B8.E8/E8/G:1I=1J>2I?3FC4FC4JB5OA4TA2\@2b>0j<-q<.w9*}8)8(:,=/B4B5F:E;F>G?G@FACAB@;;;;>;B;D:D4@->(A-A-@,@.@.?-?->/>.@.?.?->+?*>)>+>->->-=,=.<-<-=-=-<.<.<.</>/>1?1D2C1B4C6C;D>D>EAPL[Te\f]u_T[UIGMACI?<92?82>71;6094.74-63.43.43.34.24/13./4..3-.3-.3--3/-3/-3/-3/.3/.3/02/02///-00.22022010.0/-0/-3/,8,,;,)C0*K70S<6^IHtbnzƄzrxikWWIDE=nG<dD<aC>^CAY@CV@DP>EKGQRKWUQ^WU`XS_UR^TT^SY_S^[LaZJaZJ,-/,-/,-/,.-------.-+.-+/.,/.,1-*0,)0,)0,)/+(/+(/+*/+*/+*/+*/+*/+*/+*0,+/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*0,+0,+1-,1-,2.-1-,1-,1-,1-,1-,1-,1-,1-,0,)1-*2.+3/,3/,3/,3/,3/,3/,3/,3/,3/,40-51.62/74/80-92,:3-;4.=4/>5.>5.>5.?4.?5,B5-C6.D7/F90G:1F<2G?4H@5J@6P?5T>3X<1^90b6+m9.t8-|8+9,;/=0?1>0A3A4C8E:G=G>E?C@@?BADAE>D8B1A.B,A.@-?,>.=-=->.?/<,=,<->-=,=+=*>*<+<+=-<,<,<,:-;-=/</</=0>3@2A5A4E5D4E9I>G@D>EAMGZRf_qfsh~rdjj^V^SIQFLLBJF=B>5<8/95,74+63,33+43.34.14-14-02-/1,,1+,1+-2.-2.-2.-2./1./1./1./1.02/02/11/11/11/11/11/40/4+0;/3A32C4/J;6]OOymyϐكtzjn_bZ[LItHBdA>]>>X?BUAIVLU\U`bbqnn}xv|rulyoguh_k_W_P]\Hb\Fc]G,-/,-/,-/,-/------.,-.-+/.,.-+0,)0,)/+(/+(/+(/+(.*).*).*).*)/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/+*0,+0,+0,+1-,1-,1-,1-,1-,1-,1-,1-,1-,1-,0,+0,)1-*2.+3/,3/,2.+2.+2.+2.+2.+2.+3/,40-51.62/80.91.:2/;4.=4/>50>50=4-?4.?4.A4.B5-C6.E80G:2H;3H>5H>5L=6O>6Q=4V;2Z90_7/h70p7.w7-9-9.<1<1=1@3A3B5D8E:F<E=D=D@E@FAG>F8C2B-B-C.B-@.?-?-?->.>.=,>,=-=,=+>+>*=,<+=+<,<,<,;+;-<-</=/=1=1>2@6A7B6G9E7G<J@IBGALFTNd\qf~oo|mmseZfZNXMLNAKI=EC7@=4=:188.44,11)23-23-03,/2+/1,.0+.0+.0+/1.-2./1./1./1./1./1./1.02/02/11/11/11/11/11/2015+49-7<23?53H?:^VTxr|ʐԄyqykthn\_XZqSUjRWjT^hZgmfvvrt~~vyrqfteZeT[ZE`Z@b\D,-/,-/,-/,-/,-/,.-------.-+.-+.-+-,*/+(.*'.*'.*',+),*+,*+,*++)*+)*+)*+)*-+,-+,-+,-+,-+,-+,-+,-+,,*+,*+-+,-+,-+,.,-.,-.,-.,-.,-.,-/-./-./-./-./.,0,+0,+1-,2.-2.-2.-2.-1-,1-,1-,1-,1-,2.-3/.40/51.80.91.:2/;30=31=4/=4/=4/?40?4.A4.A4.C60D71F93G:4H;5J;6K<7N=6P;6S:5V72[6.c60k6.t5,}7/9/;0<0<1?3@4@3@3C6D8E:D:F@H@IBI?E:C3B.A.B/A.?.>->->->/?0<-=-<.=.>-=,<+=+<*<*<,;+;-<-:-;-<0<0<2>3?4A8C:D9J=H;H>KDKFLGSM`Vsgqz{wsocqbXcUNRDMN@HI;DD8@@49;.46+/1&01)01)/0*/0*./*./*//-//-//-.0-//-//-//-//-//-//-00.00.00.00.00.00.00.1/26+97+98/4;63HE>_^Yzz|DŽ}{|}}wq~n}n~~o~y|{j{i\hTXX@]Y<_[@-.0-.0-.0-.0-.0-.0.......-+.-+-,*-,*.*'.*'.*'.*),*++)*+)*+)*+)**()*()*(),*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*+-+,-+,-+,-+,.,-.,-.,-.,-/-./-./-./+*0,+1-,1-,1-,1-,0,+0,+0,+0,+0,+0,+1-,2.-3/.40/91/:20;31<41=31=31=31=4/>3/>3/@2/@3-A4.C60D71E82F93H94I:5J;6L:6N94Q83T50^72e60o6/x8/90:/<1>1?4?4?2?1A2B5D7E:G>H@JAI>F:B5A0@.A-A-?->,>,>,=.>.<,=,=.=-=,=+=-<,;););+;+;,;,;-;,;/<1<1>5@7C:D<E<L@H<G>JCLIQL]Vj^oyzxm{jbm]SZJQUFKO@EI:@D6;=057,13(01)/0(./).-(.-).-)/.,0/-/.,/.,/.,/.,/.,..,/.,..,0/-//-0/-//-//-//-//-2-17,:6*83-1961HJ?bfX{z}|k|iXfOSV;ZV9^Z=+/2+/2+/2+/2-.0-.0......------.-+-,*-,*,+),+),+),*+,*+,*++)*+)**()*()*(),*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*+,*++)*+)*+)*,*+-+,-+,.,-.,-/-./-./-./+*0,+0,+0,+0,+0,+/+*.*)/+*/+*/+*/+*0,+1-,3/.40/901:20;31<42=32=31<20<20=20=2.?1.?1.@2/A30B5/C60D63C84D95E:6G96H94K84N50X72_60i70r7/}:1<1>2>2@6?5?5?3@3C5C6E8E;G=H>G=D8A5?0@/@-@-?.>-=,<,=/=/<.;-</<.<-<,<,<,;+:*:*:*:+:+:,:.:0<1=4?6B9D=F@H?KAH=G?LEPLXQf]vhw~}tqjue\eRV_LNUCEL:?F6<@27:/68-01)00(.-(/,'/+(/+*1-,2.-1-,1-,1-,1-,1-,/.,1-,/.,2.-0/-2.-0/-0/-0/-0/-2-18,:5)51++66,GL8`hQzp{xgzdTbIQT9VU9XW;,03,03,03,03./1./1//////....../.,.-+.-+.-+-,*-,*-+,-+,-+,,*++)**()*()*()+)*+)*+)*+)*+)*+)*+)*+)*,*+,*++)*+)*+)**()*()*(),*+,*+,*+-+,.,-.,-/-./-./+*/+*0,+0,+/+*/+*.*)-)(0,+0,+/+*0,+1-,2.-3/.40/:12:12;31<42=32<21<20;1/=20<1/>0->0-?1.@2/A4.?4.@51@72@93A:4B94C84F74H5/Q51X5/a6/l8-u9.</>0=1?5>5?5?4B4B4C4D4B5D8E:E;B7?4>1>0?.?+=,=,<+<+<.<.;-<-<.;-;,<,;+;+:*:*9):):+9*9-9-<1<3?6A8C<F?IBICJAG>HCNJVR`Zper}~~yup{jdp\]iSR^JJS@BK:>E5:@29<134,22*1.)/,'/))0**1++2,,1++1++1++1++1++0,+0,+0,+1-,1-,1-,1-,/.,/.,/.,2,.8*75(13+(56&EK1\gGudyťέɭʰ˱Ȭ{wrdx]Q_ENR7QQ5SR6,03,03,03,03./1./1./1./1/////////////.,/.,.-+.-+/-..,-.,--+,,*++)*+)**()+)*+)*+)*+)*+)*+)*+)*+)*+)*+)*+)**()*()*())'()'(+)*+)*,*+-+,.,-.,-/-./-./+*/+*/+*/+*/+*.*)-)(,('0,+0,+0,+0,+1-,2.-40/40/:12;23;23<34=32<21<21;10<1/<1/>0/=/.>0->0-?1.>3/=60;60;83<94=:5>93@72C60G4.O4+Y4+d5+n8,x:-;.;.<4<5>3@3A2B1A2@0>1@4B7B9@6>5=2?2?-?->,=+;*;*<-<-;.;.;-;-;.:-:,;,9)9):)9(9*9*~8,~8,<1=4@7B9E>IAKFMFIAH@JFSO]Xhb{ny~wxnjxadr[ZhQQ]IITCCL;>D6<?467/44,30+0+'1()1()2)*4+,2)*2)*2)*2)*2)*0**0**0**1++1++0,+0,+0,+0,+0,+1+-6)25)-4-%46!AH&Wc;qWm}ȔНӫҮѭ˥{{tqk_sWM]BIO3JM0KK/./1,01./1./1.0/.0/.0////00.00.00.0/-0/-0/+/.,1-,2.-1-,1-,0,+/+,,*++)*+)*+)*+)*+)*+)*+)*+)*+),+)*+),+)*-(,*(),())'()'((&'*()+)*,*+,+)-+,.-+/.,/.,-,*-,*/+*/+*.*)-)(,(',('1-,2-*2-*2-*3.+4/,50-61.;31;31<42<42=31<20;1/;1/<1/<1/=/.=/.=/,>0-?1.=2.=4-=6.;819919:29:2;81?6/C2+J1,T2)^3*g7+o9-u=.z</=2=3?2@2@3@1?1=/</>2B6C7B7?4>2>1>/=.=-<,=,=,=.>/<.<.</;.:-:-:,;,:+:+:*~;*~;+|:*}9,|:.>2>5@6C:G=JBNEOGICIDPJ\Tg`uiu~zytoi}bby]\pUUgOO\HGRAAH8=A388.85.7/,3+)2()2()3)*4*+0*,/+*0*,0**0*,0*,2),2),3*-1+-1+-1+-0,-0,-0,-1+/4)/4*+4-%46!?F%T`8m|Qgtz~z{Ĉːəǝƚ~xvolfZnSJZ?GM3FJ1DF./0+.0+/0+01,01,01,12-21-32.43/43/62/51.41,3/,4/,50-50-4/,3.+2,,1-,0,+0,+.,-.,---/--/,,.++-*).))+.)/.)-/(/.)-/)-.)-.*+.*+/+*/+*-,*.-)--+-.)./*./*------.,-/-./.,0/-2.+2.+2-*4,)5-*6.+8/*:1,:1*;2+=4-=4->50>50>50=4/<3.;2-=2.<1-<1/;0.=/.>0/>0/@1.A0)@2);4*77-39-28.56.:3-?-)F*'L)'S*&Z/(`5,d<0k@0yA0@/A1B3@3=0;/8-;/=.A1B2C2A0>.;,;0:2;1=0?0?/?.>.@1?0>1<0;/:.:-;-{9+~@3w<.q7)w>-w>-v;-}?2{;/@4E9I?LAMBPCNEKISPbYpa}jq|~u{ouiib_[zXZsUZnSWeNPWEJK=C?6@93;0.6**3')3'+3'+1&*,*-)+***,*(),'+.(,1(-2'-3(.3(.3(02(00)10)1/*1/*0/)-1++0-(//#<?*V\@pzXgusvwvu{}|{~}~|yurmh|cYkUMZFIQ<CH4?B//0*01+01+01+12,12,21,32-43.43.74/74/63.52-50,50,7/,7/,6.,6.,3.+2-*0,+0,+0,-/-./-0--/-,1+*/)*.)(-.)//(//(//(//)-/)-.*+.*+/+*/+*.-).-)./*./*./)./*.....0....../.,/.,1-*3.+5-*5.(7.)8/(:/);0*<2)=3*>5,>5,>5.>5.>5.=4-<3.<3.=2.<1-;0.;0.=/.=/.>0/@1.C0*C0)A2+>4+:6-95,:3-<1-?-+D*)I*(N+'T/)Z5-_:1e>/pA/xA-A0@2?4=3:2;19.</>.@0A1A1A/?1;2;2<2=0>0@/?/?.@1>/=0<.;.;,:,;,x8,x<1s9-n9+s>.s>.r8*u:,}=1A5E:I=K@NAPCNEJHSRf]wfpww}ovei``YZY{X\wXZnSSaJNUCFH;C@7<737/-3*+2)*1(+.(*,*+**,+),+),-(,/)-2(02(02(02(02(10)1/*1-*3-*3-*12-12.-0,)--%8:,SXBox]iolnpppw{xwy||{xuqnh{eYjWMZHEL<@D5;=/12,12,12,12,23-23-43.43.54/54/85085085074/72.61-80-80-7/,6.+4/,3.+2,,1-,1-./-.0.1/-0--/,,.+*/+)./(/1'//)-/)-/)-/)-.*+.*+0,+0,+/.*/.*/.)0/*0/*0/+//-///0./0./0/-/.,1-*2-*6.+70*90+:1*<1+=3*>4+?5,?6-?6-@7.@7.?6/>5.=4-=4-=2.<1-;0.;0.;0.;0.<1/?1.C2+E0+H/+K--L,/K+.I*/E+.A-,@.*A.(E.(M.)X1*b3-g5,j:,o;-w;0=4<6<5:4:4<2=2>2?3A2A3B5C5?2=/>1>.>/>,=.<,;.<,:-:*;,<)~=+{<+}=1z<1v:/u;/x@1x@1v<.v;-?5B8F=H?JAKANCNFJHTQf\vent{}yximae\a\`]`[|]UrVPhPFYEBP?:D93:2.3,*/)*,)**(0'(1&*1&*1&*0'*1(+0*.0+//*.-+.,+0+,0)-0(-1(-1)-01/23/..*'**"57*PUAmv[|ik~jjnn~mqx|zxvvuwyy}}ywtpmh|cYkUMZHDH9=?299-23-23-34.34.34.45/54/54/650761961:72:72961940940:2/91.91.80-50-4/,4..4..3/03/01/01/20.1..0--/-+.0)02).0*.0*.0*.0*,/+,/+*1-,1-,0/+0/+10+10+10+10,11/1111/010.10.2.+3.+3.*92,92,;2+<3,>4+@6-@6-A7.B8/A8/B90A8/A81@70>5.>5.=2.=2.<1/;0.;0.<1/=20=2.B3.E2.L..R+0V'/U&.P'/I).C/.<1+;2)?2)G0(R/)_.*d/)i9/k;/u<3}<6;8;9;7:6>8@8B9B9C7B7A7A5@1A/@.@.>-<,;+:+8*9*:*:)<){=(x>(x>*>1{7.z7.z<1v;-w=/|A3{@2B7E:H=J?J@MBODQHSJ\Qh[tbgm~v|~}yqoiifgfeggde_~_Zw[PhPK^JBP?8D62:/.4*,/(+*%2&&5%(4%(2&(1'(/)+/+,.,-+++*+-*+-(,-(,/',/',/*+-.*+1++0+'.+"88,PUAiqYvc{hyh|il}mykzmrtq}p}p}s~v~x}x|x}zzwuqnje|bWkRN[GDF9?=1:8,45/45/45/560560560761761872872;83<94<94<94<73<73<41<41;30;3083072/61.61.5106216213122011/00./1-.2,04+.4+.4+.2,.2,,2,,2,,3/.3/,3/,3/,21,21,32-32.32032032032051051.61.61-;4.<5/=4-?6-A7.B8/E8/C9/D:1D:1E;2D:1C90B8/@5/@5/>3/>3/=2.=2.=20=20>31>31@51E31M02T,4X)3W(2R)1K,1B30:6-77+:6*B4)M2)X/)^/)f:1j;3s<7z=:<:<;;;::;7>8A8B9C:C:@9@7C2C1B0?/=.<.:-9-7+8+9+:+~=+x>*v?*x>*9-|/'8/>4w4+s5*}A6}C7E:G<I>J?KBMDQGWJ|aNzjQpYu]|biu|~{}zwzpzlxlwkumrlmgkd`rX[iRR[HHL=@@4;7,70&5*$6('5''3''1'&.)&+*(++)+-*',('+*)+*)+***,+),+),-)*,#$2*'50*86*BC5UZFfpWn}^teqbuexiwkshtiwkznxlwmxnys{u{w|wyuzwwtsomhd{_WkPN[GCC7>:195,560560671671782782872872983:94=:5>;6>;6>;6>95>95?74?74>63=52;63:5294194184184395484373243151240/6-06-.6-06-.4..4..4..4/,40-40-40-51.32-32-43.43.43/431542540841850940:5/=60>7/@7.A8/C90D:0G:1H;2F<3F<3F<3F<3E;2C90B71A60@51@51?40>3/>31?42@53?53@72C52I35P16T/6S.5P05J22C52=90<:-=:+C7)I6(Q3)W2)]2+d3,l50v64}77877766~75}:4}<6}>5?9@8?9A8B3C1B1@0=/;.:.9-9,9,:,<,|=,y>,x?,|=,5*2,LEXQA8|90F;K=yH:zJ<{M>|N?}OBQEUJ_LrkOosR|uXw]ybiszz|~{y~vpoppp{pwmskj~bfv\_hSV[GOM>GA3@6*=0';,'9+(6+'3+(/,',-'+.').().(+-(-,*/+*3)*4(*7'*7'(3($<3,E>4IG8QR@]bKgqVjyZn]k\l]pbqeodoerfumrjqitnxrzvyvyvvtwvurokjfc|^UlON\ECC7@91;4,671782782782893893983:94:94;:5>;6?<7?<7?<7@;7@;7B:7B:7A96@85=84=84<73<73<73<74<74<74;639529338308/09/.8/080.80.80.61.61-61-61-52-52-63.63.74/74/540540841952:63<94=84@93@70A8/C90D:0G:1H<0I=1I=1J=4J=4J=4I<3F<3D:1B8/A7.A81@70@72?61?61@72@72A83?74@85B86D97G96H96H96H94E80E8/E9-E9+G9,I9*K9+Q7*Z/&d/'n3-z6398;9;:=;A>@:=6<3:3<4=7@7A5B3@2?2=1<0;/</~<.|=.{=.|>/|>/}>/=/9/1+<8lf~yZTC<LAN@tJ<qM=pQ?qR@tS@zWD[J~eOmsOo{Uy[u_ocmfqkwowz~~yvrrrrr|sxptpmiiedx\]kQV^GMP;ED0B;+@3+?2,;0*70*30)00(./'./)/0*2/*6,+:*+>(+C&+E$+C&(F5-LC4VQ>[YD`bJgmQiwVj{Wl[gWfWl\oananbrfskojoirnwtyxxwuvssuvsrnlicb{[TmMM]CGH:E<5@707827828938938939:4:94:94;:5<;6?<7@=8@=8@=8A<8A<8C;8C;8C;8B:7?:6>95>95=84>95>95>95>95=85<73:51;30:0.:0.91.91.91/91.91.72.61-61-63.63.63.74/74/74/540651952;83<94?:4B;5B;3A8/B:/C9/E;/H<0I=1J>2J>2K>5K>5J=4J=4F<3E;2C90B8/B92B92A83@72@72A83B94A:4?82@93B;5D=7F=6G<6K<5N;4M6.N6,Q6+Q6+Q7*P9+P9)V6'f6*r6,~;3@9D@HDJGLFQJLDD;;07-7-91=4>5>7=6<5<5=4}=3z>3x@3vA3x@3z>3<3:37331(&=;|zhcG@K@xH:nM<jQ=fT>hV>lX@t[E`LhPysQwUt\l^__V\Q[T\ouzx̆|~}xvrtuuussr|nyju{amoWgbN_TBUE5R</O4-M1-I0,D/*>/(9/&7.'6/'81):/)=.+A,+F)+H(+K'+H)'TB4YQ<d^FgeLilOnuVm{Xl~XkZgVgVm]pbqbrduitlokojrmwvyxwytusuuusqokiea|[TmMM]BMN@KB9F=69:49:49:49:49:4:;5=<7=<7=<7=<7@=8@=8A>9B?:D?;D?;E@<E@<E@:D?9D?9C>8E>8D=7B;5B;5B;5B;5B:7B;5A:4A:4A83A83A83@72@64>71>71>71<71<71;60:5/85.85.74/74/961961961:70<71=82A:2B;1C:1D<1F<2J>2K?3L@2N@3N@5N@7N@7L?6K>5I<3H;2E;2E;2B90A8/@91?80?80?80@93@93<5/MD=M@:K:3T@9R62O0+a<6\3-`5.`4+^/'^/%f6,m=1q=0I=G;I?KAF>>7=6D;NDPEVJYKOBA5;0>69898655284?8|@6r>1rB4oA2q=0v:07243-1',HIbaEDWUyvVOF<VFmR=i[AibFjeHj`En^D|dLjTbLm]nhX];L-E+H0L@YI\[enr{|ۀ}ۃ؉vwxxxwyxo~mxioabYUM{IBxA>u:<i.2d02a11P&'G%#L0-M51G4.E2,D1-F1.F.,G+*K--Q6/YH4`W:f_BgdEkoNu|Zu]oYlWlZp]rasbudwfvhrjsosqqostwxz|yzxysrmjkfidazZTmMO_DNO?SK@PG>9:49:49:49:4:;5;<6>=8?>9>=8>=8A>9A>9B?:C@;D?;D?;FA=E@<E@:E@:D?9D?9E>8E>8E>8E>8E>8D=5C<6C<4D;4C:1B92B92B92B92A83A83@93@93>71<71;60;6096/85.74/74/96196/96/:70<71>:1A:0B<0C;0E;/I=1J>0L@2L@2N@3N@3N@5N@7M?6J=4I<3H;2E;2E;2C:1B90@91@91@91@91A:4B92D93I81L/+V.,j76u99{;;ECD?H@IAG>IBNHPLOGD7B4B6C8>37-7-=0C5?0@0E3G6F6H:NELMHL@D9;98>:@8x>3o>0zI;LA?8,+).9DLWKNMM>=@?`\YQ@5TDyaIe[@^]?ihIslOvgJ~dKcNdX_[UZAN,E%D&H'I.N3N<RIZP^Q]S]Xbbifljnmqqrutxwyw||yzvxqtkrfnak_k`nS_KUGQDKEIm69HT1-M0*H1+J6/K81K:2O>6UE8[O5cZ9gaAifEnrOz]zbt^r_p_p`q`udwdwdwfsixrzxyx~}zzromhhd`y[TmMNaERSAVPBUOC8938938939:4;<6<=7?>9@?:@?:@?:C@;C@;C@;C@;D?;D?;FA;FA;FA;E@:E@:E@:G@8F?7JA:I@9H?8G>5F=6E<3F<3E;1D:1D:1D:1D:1D;4D;4D;4C<4?80?80<71;60:5/:5/94.94.96/96/:5/;7.>7/@9/B90C;0E;1F<0I=1K?1M?2M@0NA1M@0P?5M?4L>3K=2I<3H;2E;1D:0C:1C:1A:0A:0?;2@<3@<3D;4UD<R3.j23AGLWU`]f_bB>I?LANBRJUROSLK@4B0@0?1;.7+8+=/E6>+7$:'>-A/C2D:02:BDLLRMRKLA>71{8/v6,x2*1-37=GGWM[FI53:931NKc]J?[J}cLj_CgdEtoOpQhJhNhYbbQZDQ7I1J2N/M*H2O0K1J5L4M2K3L7P@XC[F]IaNcQeUhVkSjRiOiNiNlPoSsVuha|[tUlYldrR]r-2^&'Y0,W:4Q?5B:-:8)>B1LN9VO3aV6e_?heDquTe~iwdxiuerdrcveyhzizjv~zypmg~b^wYTmMPcGSXDXUDYVG7827828939:4;<6=>8@?:A@;BA<BA<DA<DA<DA<DA<E@<E@<GB<GB<GB<FA;FA;FB9HA9HA9LC<KB9JA8I@7H>5G=3F<2E;1D:0D:0E;1E;2D;2E<3E<5E<5@91?80=82<71;60:5/:5/:5/96/96-;7.;7,?8.@:.C;0D</F<0F=.J>0K?/M@0M@0M@/M@0O?2O>4L>3K=2J<3G:1E;1D:0D;2D;2B;1@<1@<3A=4B>5F<3S81[*&:?T`TeUfUcJO30:/>0A3F=IGBH>@B7F5B3@3?3>3B4D6G5B/<);(<(:(6&3(979=7>7<<BJLTSXS?74*,%61HKOWAQ3@:9.*8474E@]UWKWFwW@veI~pSpQfJdKo[uiSWDP;J9I=N@Q:L4H?S9M4K3K1J/I0N6S3T4V6W7W9Z=\>^@aCf@f?e?g?hCmErIsOuQuUvSqTnaxfvWb}15j0/X1*P8,G>/>A.;D/?G/PK._T8g`CokN||`rv}qzq|s|szozm}ouzsqh|c]tXSlNPdHRZCWYDYZH671671782893:;5<=7?>9@?:BA<BA<DA<DA<DA<EB=FA=FA=FC<FC<GB<HC=HD;HD;JC;JC9LC:KB9KA8J@6J=4I=1H<0G;/E;/E;/E;/E;1E;1E;1D;2D;2@9/@9/@91?80<71;60;60:5/;7.;7.;7.<8-?8.A;/C;0D</G=1G>/K?1M@0M@0NA0O?/O?0O?2N=3N=3J<1I;0G;/D:0D:0D<1D<1B;1@<1A=2A?3B?6K=4\5.w32LS]iM_@Q6E&+1)7(:&<)@3D=>?;;?5B4@2?2@5C9H;J<>/?/=+;)9):,;/<1FADA>?797<BELNROC>KCTLSMKJ?B5>274.7.1+:484@9[PUC{N9bIkP`F[FfTrdmhEK:D9C<DBHFKGLFMJSBM9I5H2G/F2L8R9V9X:X:Z;]=_@bAeCiDkDmBmCoCoBqBoGp@hGmMpIhOk[rcsYc?D`&$Q+"V@3VO=IL7@D-RJ3eYCujV{gyýþyvi{e\sYTmORfJQ[BUZCW\F560560671782893:;5=<7>=8@?:@?:C@;DA<EB=EB=GB>GB>GD=GD=HC=ID>IE<IE<KD:LE;LC:KC8LB8KA5L@4K?3J>2I=1G=1G=1F<0F<0E;1E;1D;2C:1A:0A:0@91@91=82<71;60;60;7.;7.;7,<8-?9-A;/D</E=0H?0J>0L?/M@0NA0NA0O?/O?/O?2N=3M<2L;1I;0G;/F90C9/C;0B<0B;1@<1@>2A?3B?6N;4m84FEY_WbCQ8F3;++1'8%:!9 ;&>.:2717,:-9-7,:1B8E;E:>2?0<,6'6)>0D;G=8-@6D?BB=A9>27.075GBSLNG=910/2671(</,"713,7/g\l\WCZCV?R=\LlagbTTEK=F;@=>A>GBOMWWNRDM:G5F2F.D1G7N8S8T8V9W;\>aAeCk;e<h>j?m>n>o=m:jHr;a?dKnKnNmUoZnrajILt:8\6-P9+PC2UM:^QAreU|nʿ~m~k`t[WnRVjNS`FV`EX`H560560560560671893:94;:5=<7>=8A>9C@;DA<FC>HC?HC?GD=HE>ID>ID>JF=JF=MF<MF<ME:LD9MC9MC7NB6MA3N@3MA3JA2JA2I@1H?0G=1F<0D<1D<1C:1C:1A:2@91?82?82<71<71<8/<8-<8-<8-@:.A;/D</E=0H?0K?1M@0NA0P@0P@0O@-O?/O=1O=1M=0L</I;0F:.E8/C9/B:/A;/A:0?;0?=1@>2@@4P91r1/JKSV>D0603//1)1!9#=!;< =#;%6%6)8-6,4,81@:C<@6B7A4</8+:0C8D=@7>->-5+*&"%%+*1.4)*.+3,4,3,2,0-2+2%6&2&7,6.>7`UqeSVBM:WIf[d_RTCIFM@D??@<@8@7FAMLJN@K9H7H5H3E6G;M8P7R6R6U6X9];a<g>k?m@qBtBuBuBtBpFmAaEeKjKkVt_z]tj~p~ow^aCAg6/hB7sUJye\}vŽ˺tqexb\sW[oS[jM\iK]gL561561561560561671872983<;6=<7@=8B?:DA<FC<GD=HE>HE>HE>HE<JF=JF;KG;KG;NH:MG;MG;ME:MD;MD;MD=NC?NC=MC7MD5KB3JA2H>2G=1E=2D;2C:1C:3A:2A:4@93?74<73<71>7/>7/<8/=90>:1A:2C<2D=3H@5I?3L@2MA1NA0P@0O@-O@-L?/L>1M=0L;1J91I81E80C90@9/>:/;;/<<0=>0>?1A?0S8-<7\[ZY86.*1+.%2#9&B*F,D'A&A&<#9#9*;0:07.<4C<E;@5=0</;.<0E9LAE<8,6$:(;.3,+*(+&+%'**.+2,4,3*3)2(3%:*2?06)8-?5A6l`gYRBOAcZhbRRAFBJ>D;=<<@9>48,6.94HH@E;D:H:I8G;I?NAU?V<T9T8U9Z:^;c>i>l>o>p>q@r@tAqCjMmSsJh@`Tsge]w_xh{p}qxgg^X{ZQ~wļ«zxl{hbu_`rXbpVboScmT21/320431651875984984984;:5<;6==5??7AA9CC9EE;EE;HH@HH>HH<JH;KJ8LK7ML8NK8MJ9JF:GD;JFCNIMNIPGDOD?ENE>LC4J@4KA5MC9LB8F=4B90E<5C:5@93?74@85?75<74<42C:5B94A96>95?:7>:7?;8@<9B?:D@7G@6J@4L@0O@-O@+L?,G@.F?/I;0K81M53K65J88F;9B?:6904</9D4:A/69$?=(bC1j^JA7,5)7+5'7&=+8$<&@*@)=)9&6%6%6'7)8*<.@2B4B2A1>,=,<,=/C4F8>12&9+8*8+8-7-5.3/1-.,.-0,1,5*7):):(9&33 8'7'6(B5SINCSK\W]ZPR>C9??GAFCDAA?9<3;/</<0L@KCGC>?<A?G?I;GDQCQDRDU@V<U<ZBdFkAj;g:g<mCsIyKzMyMtPsOpMiMjYxg_GlWw_y^n{a^xpĻʻyxr}op{k}sxlv}k0./1/0320542653762873872:94;:5==5??7AA7CC9DD8EE;HH>HH>HH<JH9KJ6LK6MM5NM8KJ8KI=KJEPPRWU`YXjVTjRO`OIKMD?H?:F=8G>9H?:F=8B;5D:8A96?74?74@85@85=85;62=4/=4/=52<74=96>:9=<:>=9B?:D?9G@6J@4M@0O@-P?+L@*B?,B?.F<0H:1J65I56F35@65@<9:=6;>5@@4E<-J9)^B4L>QB;-2#6&:'7$9%>*;%<(?+@-=,9*6(7)9):*9);+>.A1B/@.?,:(<+E6H9?18+6)7+7,9.;-</:.8/4-1-.+.+0+4)7(:':$<'6#8%=*;*5&:/F<F?IDOMPQGI;@:ACHBEDCBA>8;1:-<-=.E5L?NEGC?>?B?F@JCJCLDPFTBS>S>XBaFhCi?i@jBpFvJzK{JzHtKpQs\z_{XwNqEkDlEiKg_pnukLI~t̲ų~/.,0/-10.21/43/540762761:94::2<<4>>6@@6BB8CC9DD:IF=IG;JH;LI8MJ7NL7NL7OL9KI:NKBTRS_^fihxmmlkkh`YiYQ\OGRH@KH>GG=EE<A@:<C:;?:7<74<73=82>93>:1=9083-94.;60<92=:3>;4?<5@<3E>4G?4I?3L@0O?0P?/P?-L?,<;&:=(?<+A;-B71A62>42;30=84B;5H94N2.Y,)l/.;=FE;02$1 9'<)7$8"<&;&=)A-A/>.<-:-</<.<.9+9+<+>->-<,?-8(>.L=G:6*2&9.6,6+8,:.:/8.6/3,0-.+.+1)2'6&8"7!8$5#9'>/=.6)9,A7<5>8EAKIJJCC?ACCCAD?B==4:.8*:*;+8)D8NEIE@@>ABIHPAG@ICOGTEU@U?XA_DfCiCkFpIwK{L|JzFxHwKtNtZ|aUvCdIkTv?\I`{||aC;|nճξ/.,/.,0/-10,21-32.54/650880991;;3==5??5AA7BB8CC9HE<JF;KH9MJ9PK8OM8QL8OL;LJ>QPL^]bmlzzz{urke_{YSmTLdMEZG@PB<HD?F@;?<87;63;60<8/=9.;8/:70991;;3>;2?=1@<1?;/A;-F?/H?.K?/M@/O?0O?/P>0L?/@=*?>,@=.?;/?;2>93=:5:94<94D95M51V-+j)-288C>C7.7(:(?-?,9&8#;&:&<)>,@/>/=0=1>2?3=29.8*9+:,:,9*;,;-B4E9>31'2(9/5+4*6-7-7.6,3,1*0,.+/)0(2&4$6 5204$<.=/9.=2D:5-60;5D@MIKIC?=8@9A8>4</:+8*9+;-4&?3H@HCB@@DFLNU?E?EBMHUHWBW@XA^AcCfFmIrMyO|L{IyDvN~R}KrMoVuUuMjFcKf>Vdtӏd92lJ>ynХ10,10,0/+0/+10,21,43.54/77/880991;;3==3??5AA7DA8IE:LF:NH:PJ:RK9RM:SL:QK=OJDVTUfdqwxÏƎ{wpmid_[~UPnNJaKGXEBM?=B;7895296/85,85,671783891;;1></?<+B=*C<)G?,J?+K@,LA/M@0M?2L@4K>5L?6K>5F<3B92=82:946;47<59<5>:1H4-Y2-w78?D>E9<;0<+@.A/@-<);'>*8$:'<+=.<-;.<0=3?6>3:/7,7,8+8+8+7+A5C88.1&3)7-5+4+3)4-6,5,5+1*/*/,/*/)0'2#4!541/2"6)9-:0?6E=F>@7<5@9KDNGE>;1=1<0</;,9*:+<-?09-<2@:C?CBDHJOOV?E>CBLIUJYFXCYC]@_BdElJsNzO|LyIvJwTT}JqImStVtNiD^F]Xk󝞎HFk.)kc͖ɿȾȿ65143.32.10+10+21,32-43.66.77/880::2<<2>>4@@6B@4JD8ME8OH8RK;TK:TM;SL<RKAQLIZW^li|~ؚ̙ޙڔԌɆ~xvnkfe]ZwVTiMKYDAJ><?;:8;74762555457664872<:.?<+C>*F@*G?*H@+IA,IB0IA4HB6HA9G@:K=<I;;C9:=77875384/83/917<574+C1']80~C=GC>?51;/<+?-?->,>*?+?-8%9(:+9-9,:.:0<4>5;4918.8.9/8.6,7-C9@70&,#7/<42*3,2(2+3*3+2+/*-*/*.)0)1(4$5"6 57#3#3$3&5)8,<1?6YQRJHAC;E<I?E;>1:*;(:*:):(:+>0A3A6<3<6A=EEGHIMLPBF@CCIKTNYJZF\F_A_BaEiJpNwOzNxLvQ{RyOvOtVy]{SoD^TlQddt`dMMjgΏX<94;8185052+41*41*52+63,74-85.96/;81=:1?<3A>5C?4JB7MC7PG8SJ;WK;UL=UK?SJCSJK]WcnlŚڟꢩ뙛啘ݔ֐ʉzyrqfc~XVkPN\IGRFCLCBJ??K==G;:@;9:<94?;/C=-E@,F@*FA+EB/EC4CC7BC;AC>@ACB<FD>LCANEEOCHNAIL>HI>GDCHAA=2L:.gF7OAI<?28)>/>,>*?+@,@-?-<*8'8)9*9,8-8.91;5:4:3818192:2706/<5>5912(4*;2<33*1*1'1*2)1)/)-(,(-)/)1)3(5'6%7!7 9%8%6%4%4(7+8.7/NGXPZSQIG>D9@7>/<*<&<(:'9(;*>0A4D;@7@:FCIHHGGJIKFHBDDILSQZO]L]K`D^DaFfIlNuOxOxPwVxUvTvYx]{ZwQkI`WkUgM^^mKZTaTaXaefȃ~嫧@=6=:3:7074-52+52+52+63,74-74-96/;81=:1?<3@=4B>3JB7MC7RF8VJ:WK;XL<WK?TICSJM^Xfpm˜㣭ꝡᙛ֕̒ĉyyji`]|XUpRPhOMeNJcKG^FBS@=H?:>?:6@<1A>/C@/CB0BC3BD7?D=>D@<ED;BJ>CVCIaLRhU\o\br`dobbjd`afXWaJDlG>SEXFJ7@+>+A.@/A-@-A.A/=+7&7(8+8+8-6-7/81;4727272829494836/A:8/3*8/=5=5915,2)0'0(0)/)-),(,(-)/)2)4)5'7&7$8#7"8%7$6&7)9+7+4*4+NGd\`YOFA7;29->)>'<&;%9&9*</>2D9A9E?KHLIGDEEHGIICDEHMSSZR\O^OaH^G`GdIiNrQxRyTzUuZw^}^|UpMgOiYn[mctM^TeO`UgL_R_^_vqלB>5A=4@<3>:1<8/:6-84+73*62)62)73*84+;60>93A<6E>6I@7MC7RF8UI9WJ:XK;ZLA[NHTIMXR`gd|~ʗ㞪쩫蟡ڙҍtrhe]ZXR~XQzYQvVOnMH_C?M?:@?;:B?8>>4@B5BE:?D=<B>:CB>FH?LUDVnQfaristvxo^l[cWYWUVMM?@.9$:$<(=*?,@.@-?-=,;,6'6(6*7-7-8/91838495:693616183:3C<=670@7[Rlc]T?63)2)2*/)*&(%(&+(-+0,2+1'0#1"4$:(;&<(<)<*:,9+8,7-@881GAc^XQB<@;4*:&<$<&<&:(:+<0>2>4C;PJXROJ?:?:HDHGGEJKPTRWNVKXL\RfOfKeJfMlQsRvRvWvXuXu[w\xZsWnVkbuVg\m[lFXDXQeVefgieʏ網C?6B>3A=4?;2=90;7.:6-95,73*73*73*84+:5/=82@;5D=5H?6LB6QE7TH8VI8WJ9YK>ZMEUJNWQ_eby{ɔ⛦뢣㘘،ɀuqiec^`W`V]TVPtMIbFCTBAIAAC<<:AB=FEACD?A?@DBEOMRWVdchqu}}}{p`uYiVaQUHF@4;)<&='8$7%8&9(8'9(7(6(3%4(7-:2<3=5<5<5>9<7<7>9B=C=B<A;@:B9@78/1(6+I>[O@66,+#)#-)/-,+((0.4/616.3)2&2%6&:';'<(:(9*7)5)4(9/5-=6PJTQLHB?1(;(=&<';'9(8(:,:/>4B8OFWPRID=C;HCLHJFMLSRTWPVNVOZVfUhSiRkRmSqStRuMmUt\z_{\vUoRiReUfRbZhZhN^ScYiS^`_^W}٩EA6EA5C?4A=2?;0=9.<8-;7,84+84+73*84+:5/=82?:4C<4G>5JB7ND8RF6TG6WG7YI<YJCWKKXP]b^ysuܘ뙗Ӄxusmk`i]cZ]WVRwNKhEDV@@L85<A<@KABL@BQ>BZEJpW]csrz{vpcTnG\K\HP<<5.9*<'<%;';):);*<,<-<-<.6*8.<1?5A8>7<3:4714.3-93A;E?B<=5<44,4+7-2', 6*G:K>@64--),*,,,,*,*)/+2.5.4+1(1'3'7(:):(:);*:*8+8,4+<4:5<7ONYWEE3/;,<(;*:)9)8(8*8,=3A6JAUKRGG>D:G>KDICLISPSTPSMSNWXdZh[pZrVnRlQlQpGmPvZ}[{VrTkWk\mYhZham`k]gfnfm\_]W{OFmfݺIE9HD8FB6D@4B>3@<1?;0>:/:6-95,95,95,:5/<71>93@;5E>6I@7LD7OF5RE4UE5WG8WI>XMKXNW^Zqppԕ革ꗖ⌋ׂ}yumpgf`_ZYXQQuGGcA>Q=5DH8BT=C`@EnCJOU]dfxknoi`WxIg;U2HAPEM;<71?0@,:$6"5$5$5&7(8+;-</@6@7@6?6=5936.4,.(-'.(3-:4<4815-5-,")7,B6?04%.F7I<H?<7-*#%')/2-./.2.3,1*0*/)0'7*9+:+<->/?0@3@36*LBJE50GFZ\IKA?</;+:*:*:*:*9+9*<0>2F9OBPDH<C7C7H?F?JEPKROMLKMKPX`[gaqauXmOgMgNkOuRyUwTqTm[pcujxguboamdlflhjghfa^TeG<^UͫNH:MG9LF8JD6HB6F@4D=3C<2?80>7/=6.=6.=60>71@93?:4C>8EA8KC8NE6QD3RE2VF6VH;ZMGVMR[Whlk~Β㚦铕⊌نу{umkde_aY[RQsNHbWFY_CQmBLEMMTU][bZhRpRuTuPlJbBW8J.?8ECKGK>>>6F:H6?+>-=-<->/?0B4D7E:E9B7>5;26-5,3+3*1*4-7.90807/6.5,/&5+7+2#1"9)>-;)<-D7JAD?64*-*-/26755301,0*/,0-0+8191:1;2<0=0?0>17+WLaZ;6;:PQFHPQ<4:/8,9,:-<.;-;,:-<.A3H9I;D6@2>0F<E<IBPIRMNKKKLOZ`^hfrhx]qPeMeNkVzTxRrTm]qhxjweret_m`kkrrujfd\la}fVXH9kXJ|rQK=PJ<OI;MG9KE9IC7G@6G@6B;3A:2@91?80?82?82A:4@;5B?8EB9KE9MF6PE3RE2UF3UH7YLCUKLZScii|ȓޚ리횞蕙㒔ޒډ|sxoumpigj_}y_xWjP_O\S\T]PWHR@Q?RCRDPCK@D9<46JLIJAA7495A8D8>1E6E6F7E8F8G:G<G=>3;18/4,3*4+4,6-81<4=4<3905-5,7-.$;0=.1"-7&=):&9'8):/=9@@<>37,/,.+**)+(/,448899757473717-6*5(5&5(PEmcHA42CC>BVVA<>48.6+:-</>/=.9+<-?0A2A2@.=.<-C6D9H?PGRLOINLON^cagitnzduVjQiUoWvVtXp^pnywksXa`m`mbos}숊́|thyjskXON:_VGqgSM=RL<QK=OI;MG9KE7JD8IC7E>4D=3B;3A:2@93A:4A96@;7A@;CC;IE9MG7OG2RF0UF1UH5WK?RHFXR^jg}Ēژ礧흤蛢晞⒚ۋ҆ʃ„ymczXiQ_MYIRAI=A=;>8C9H:I8F3C0@1TIG?;76488:;9874:/<.;.:.8+7*4'2&4*3*3(3)3*5,6.8/=3=2;18/7-6,4*3)3&3%4%6&=)>*9$2:&4%1'51<<=@7=37-1-.--/.439:;=9=2603011/1*2(1%3$1$=1j_TL95@?:=RSJHC=:36.8.;0<0=/;*?-@.?-;*;(;+<,>0>2D8LBPHNFLINLaeafhro{hxZkUjZrYs]tarjt}wy_dgtm|eulw좟Ĕ|hjUHQ<WUFth\ۿVO?TN>SK>PJ<OG:LF8LD7JD8H@5F@4E<3B;1B92A:2C:3A<6C@9DD:JF:MG7OG2QF0TH2UH5UI=QGEWQ]jh~œؙ矠뤩蔡唟ߔו͚e]pQcIWBN>F<A<<?8A4E4I4I3F.B,?-SED<97>>DF@D8=65B;D8C8A5>29,6)2'2(3(4*5,5.4.4.4,B7=17,6,9-9-5)1%8(2 1!9(8'4"7%C07&8*6,5.3/53:9?>LKHFBB>=<=7:26,1+1)/,./.1+4*5)7(0!.dY]S@:DC;;MMRQHE;66/8.9/;-:+<,@-A.<)8%9&<)?.7)7+>1G:K@IAIBJEa_^`djnwku]iXe]m^sbtdolr~qsryyaqXfЮ]jPDR9QT?jbUXO@WP@WN?UN>TK<RK;RI:PH;MC7KC6KA5H@3H>2G?2H>2F@4GC:GE9JG8NI6RJ5UJ4UJ4VK9XNDULMZTbkh{~Ñט磤쥨ﭩ▟֦ζgzL]ER>M;G<D=B@@@@>?<=EB:4D9F:1)JEJICE>B;?<?=><=<;B;?7D;MAK>=06)9,7+6,5-2*/*/+2/5.A59+1$3&9+;-8&2245!4"4"4%5'5)0&2)5)6*4(3&3'4)2)3.5233/2-2-4.5-3+/+,/-5.9,7(4%-3"XHYN;3NI41HHOPJJC@;6808,9+<+<*;(9&;(<)=)=+<,8,;0=1?3?3@4@5A7japic_mjqqadgmpylzhxdobidjlnqoqoy{}Zlcwbp}u]rQJY:LR8snZ˷YPAXO@XO@VM>UL=TK<SJ;RI:NE6MD5LC4KB3JA2JA2JA2IA4GC8HD9LF8OH6RJ5SK4VK7TK:XNEULMYUckh{}Ӗ៞쟝ퟧ袥襤ꩣᣜбqTbCO<F8A7?:=<?@AAC<C9?AD;;B?@=31OPCF?D;B8?8;89:8;7E?=5<4G>LAC5:,9+7*7+6-4-2.3/5384>2;-6)5&5'5'5"49$9"9%:&<+<,8,4*3.5-7+7)6&4"4!4"2$2&0+.,,-,/-2.3+.,-0.2.4*5'8'9'?.*D5>1F>VPB?BAUVRRKHC>=59.9+8(;*;(:'<)>+?-@/>.:,;0=0>1?0?1B3C5i\mdb[kfolbakltxq~o|ir]fY`bfqpzxvwx~Rd[p]njkZtON_;SZ;us\ĸ\PB[OA[OAYM?XL>WK=VJ<VJ<SG9RF8QE7OC5OC5OC5OC5MC7JC9JF;MG9PI7SK6VK5VK7TK:WMCVMNZWbkiy{ˑ֘ޙ㘙隝蜤㜢᝙㛙▛ߚڤбrYqBSAL>D=?==<?=?>A>C<C8=?AA@C?<896WWBC>B;?9<686696;6HA;15+A5K>H:=/8)6)7)7,6.507195=93*5*6*6*5*7):*>,4!44!6"8)8)3(-%@;>8=3<.9)7$7"7#7%3$/&.'.*.-//./,)0+5-5,3&4%9&>*A/1 SE;0A;C?JITUUTSQOMJCC;<28+6&7&7%7&:'<*>-=,=,:,;/<.=/=.?0C4E7\Qg]aYlgpma`fgjqR^^khqem`geiqqxwtunuJ]Rh[m񜡣a`UoHOd=W`Aww]\PB\PB[OAZN@YM?YM?XL>XL>UI;TH:SG9RF8RF8RF8RF8PF:LE;KG<OI;RK9TL7WL6WL8WK;VLBUMK\V`jh~yyΓҕ֕ۖ㘛蘞욢훣뜥蘢ߖڕՔՓ֑֒҅}sfVzGa<KAJBCCAB?AA?C>E=F?F:>?@EDA<61>:ZYAB@C=@:=8997<8A8E;:.2(</E7E6>/9(8)9)8.:/8091;7>81+2*3,5,5-7.9.=/7(:)<+<,;.;0<695C@@<@7=19*9%:&;%<(7'1%1%1(3,1,/*2*5,7+7)5'7%;(>*;(<,^PF<3/.,@@WXusrojg^YPGA75(. 8'8(8&;)<,=-=,<-;.<.</<-;->.B3F7MA`Wa[pltr`a]a]dHTYegrgoelkpsvvvpsenDXKbXk뒖_zYQlCSh?\gEy|_\PB\PB[OA[OAZN@YM?YM?YM?WK=VJ<UI;UI;TH:UI;UI;SI=OG<OI=QI<SL:UM8XM7YL9XL<UKAUKI\U]hexut|~ŽÏȐϐԒܓߕޕܒ֎ΉDžŁ}~}tpg\NvAc:U9KAGECGAGCEEAG<J=JBI>@@?IE>82,C<UPDCAC?@>??=@<D;F<=28*5)9*=-=-;+<):*;*;/;/8/8/83:59552202132402+0'1'7-:07.4-40:;?@8;76715,4&5"7#:%=)8&4&5'8,:09/8->1;-8'7%9'<)<):(>-:*>2C:/-::245653;6C>KCQISHTHUG?0?.<,=->-?.?/>0<.<.<.=,<,=.A3D6LAbXc]nlrr`c`e`gkvozkv`h_flqx{y|ms^jAWC]Uh懍g]YtI^uIhwPfǻ伺޺޼[OA[OA[OAZN@ZN@YM?YM?YM?XL>XL>WK=VJ<VJ<WK=WK=XL>QI>QI>SK>UL;XM9XM7YL9XM;WK?ULGYSWe^nnjut~}ȍώԏՏӐӋʃ|u|ovioljlcyYvPoBd7V4L8H@EFBJCJEGGCJ=N>LCICCA>ID;44,I@LFBA?=;;<;@=E?G<G:8*8(8*9(9'8&:(;(;)=,<.;.8.6.6/5032./,00247774521.*4/6232/1/46=:D06023/3,5)7'9(<(8$6$6(:,>2A5A5A6G8A1;(9&<)=*<*8&:+7)0'C<2/?A/2*,1/5.81908.5*2&1#E5A2=.:*9)9+:,:,;/=0>/<.<+<,>/A2SGg^c_jinochjqoxq{t~mubkdnrzx~quipWfAY@[Qf~ykm]oZy`r֭ӦЧӫԮֱں[N>[N>[N>[N>ZM=ZM=ZM=ZM=YL<YL<XK;XK;XK;YL<YL<YM?SI?TJ>UL=XL<YN:ZM:ZM:YN<YM?ULEXOR_Wbd_sjfsoyy|~~ƈˉ̉ʈȃ|}vwpqklfgl``qV^N^J^@X6K3F9C?BD@HBICFIBJ=N>NAEFDA=HB:/7,OFB<=8641051>8E;F9D59(:(:*:'8%9&:':&9&:):,9+7+5+3+3-*+*--3/4173738588;8<9>9A9D7F6H5E+5-2124/6-8*;+=,5&8*;/=2>4=4>5A6J<G7A1<,9)9'8*9)2'9/@8D>0/..46663-7.90:1;1;0:0;/L?F:@19*6)6(7*8*;-=/>0=/<+<+<.=0KAdZc^kiosinrzvfpoyryjslvwv}hocnRbB[<YKat{z}k{fhṷշˮȤÓș˝ˡΧҰٻǾ[N>ZM=ZM=ZM=ZM=ZM=YL<YL<ZM=YL<YL<XK;XK;YL<ZM=ZL?VJ>VJ>XL>YN<ZM<ZM:ZM:ZM<[OAWMDWML\RZ^Xfb]qjfspwvxx|{~ňȉǂ}yzuxqvotkpgzaQZHEEHHOBN:F6A9@==A=D?EBCHAK=M?M?BGDA<G?9.:/UK>583/,*&/*:3C9C6>/;*;)<):';(<);'8%5$7%8)7*5*3*3)2*33588<4:-2(-(-+1-3)0&1)6,?*A 9/"0(.,10/1,3+5)6*6+90=6>7:4715092H=K<E7=/6(3%6)8-4*6-C<8221  89631(4)4)5)6+6*5+7+YNRFH;@2;/;.<1<19-;/=0=.;,9*9,:-<2YQb]ppvymrq|r}zyhqepq|ukt^jOaA^8WG^ntn~ghqͭܽٻԴ̩Ÿ~đřȡΪҵνȷZM=ZM=ZM=ZM=ZM=ZM=ZM=ZM=XK;XK;XK;YL<YL<ZM=ZM=ZM=ZL?ZL?ZM=[N=]M=^O<\O<\O>YM=WMCWLHXNOZPX]Ub`Yia\rjfokspvq{u~ɊLj~yrrtl\HLB9A:C@@?:;<>DE><=<>=@ABICMANAL>>@9?6>3</<0D8MD61;62.3.C;?36'>,7%:'<);(9%9&:':(:'9(6(2$."/%7.=582400-**&(%'%'%'&*!)".'7(>!;61'8#,#++---+(-)416264666512./,,/,92:191SK"+#F>.&.(<7E@:7/*.*51<7>4<.5)3&5*;.;08.bXZOC:6,:/8-3'6*0%2&2&4%6':*<.=1:0C;\Wppsvx|yq||wt}s{r~r}mxgs`nI\>\>[AVekzm}f~cjw|vzqyo|rvuwy§̹Կ̺ZM=ZM=ZM=ZM=ZM=ZM=ZM=ZM=XK;XK;XK;YL<YL<ZM=ZM=ZM=ZL?ZM=\L=]M=]N;^O<\O<\O>]P@[OC[NFYNJZPQ\SX_U^_Wfd\tibngqjxpyĊď~tnqujW{=A5+5+<3@8>8?:A==;;<;@>B@IAI@KAF<9=4<1;/:,:+A5JAG@A=6351@9C89+5#8';(=*=*;(;(:(9(9(6&2%2%5*8.80911&/%.%,&+'+),+-.*-%+$.'7$;7300.93<*1(,.002+.:>7=4:26/40325872-;582E?E?/+2."51?:E@=83-2,60:1:.9*5'5(9+<0<29/cYXN@84+91:06,9/5+4*4*5)6)5(6(6);0B9YTljqtx||v|yv~usp}kwdq_nI]>\>\CYehwozbu\x]ckppmp]l]h\g^k_qeyizktv|}ƷǿϼƷ\L<\L<\L<\L<\L<\L<\L<\L<ZJ:ZJ:ZJ:[K;[K;\L<\L<\L<\L=\L=]K=]M=]N;^O<^O<\O<_RA]QA\PD[NFZOK[PN]QS]RZ_SgcXvh]kbskv}}vpuviRt<D5-4+<0C7E9C8?9=<:>:A=E@GAH@E@B;6909+9*8(9*?3F<D>9674;7C=OEH<3#9(:';)=+=,<+:)9)7)2#/#4*=3?6914+4&5&2%/$,$+%+(+(+-(+&/(6%:733%70;5A8C;D<E5>,62</;.9-7.3.1/1420,=964;9mjCA/-/,:7@<A;<67.5-5+6*6'6%6'8);.<1<1;1`YTM<30(;3>6;3=6=8<7=6<2;19.6*6);/@6TMgeorz~||yxwsn}gv`p[mG^<Z>\FZ`a~evZiQhOmRtX{]}^x\qX`zM_PaUeYn`ug}j~mrtxyyz~ǹ˸ȶ[K;[K;[K;[K;[K;[K;[K;[K;ZJ:ZJ:ZJ:[K;[K;\L<\L<\L<]K=]K=]L<^M=^M;^O<^O<^O<^Q@^Q@]OB[OC\NE[NF\OI]OO^P_bTmdY{i^pg|t{{zxucMlFRA@A=E;H;G;E9A:@A<A=D?GAHAF@A?<?6<19+:*9)8*>0D:<731;9A?D?SLUJ:+9)7$7%;)=,=,9*8)4&2&2)9/>7>65./&6)6)4*1'.)-)*(**),','1)9&<!;=%A6H(6.<P\`lP\<I9G)8*8-90:2701+*(%0-722/C@spVS>;GD=:<9:5807-6*4&3#5#6$8&;,</9-:/<2XQMG700)<7A:;5<5>9=9?9@8?5<2:.9-9,=1NHc_no|~yyyxtn}et^nVhE\8V<ZH\YZlRcrG\tB\yCdzIl}PtVvXrXoWmZl\obuh{loqpqtuvvvwz|{|ȷǸ[K;[K;[K;[K;[K;[K;[K;[K;ZJ:ZJ:ZJ:[K;[K;\L<\L<\L<]L<^K<^K<^M=^M;_N<^O<^O<^O<^N>^N>\O?^NA]OB^PE^OJbNYbQdcTqdZ}lexrwv}‰΂wlXwD_BTDPJPIHE>E<F<D>BB@C@GBHDGCDA=?7@7=/:+:*9)8*;.?6FA=;BBAA;6JBXLK>@28(3#8(<-:*7)8+0%3)8/;4:5600+,'0,1-10312537486;-5,6.=0C-F)G+N3R9L3?@M_llzWfCS>P3D3A3>6<99834*/$2*.(72YT\ZXVA?HFB@<7706-8-9+7'5#8#9$:(=-;,6)7.=5NGEA501->9@:815120215283:2:/9.:.6*8+IB_Ynl}v}w~yxsk}dv^pSeF]8V=ZL]TRz_BWh<Yq?[vCfyKn~QtVxZy_wayexhzm|qrrporttttrtw{xxZJ:ZJ:ZJ:ZJ:ZJ:ZJ:ZJ:ZJ:ZJ:ZJ:ZJ:[K;[K;\L<\L<]L<^K<^K<^K<_L=^M;_N<^O<^O<]N;]N;^O<_O?_O?`P@aQAbPFbNPcN]_Pe`Usgato{t}qv̋ۂrduPd;R3L<QERDK?@@>C?EBEFBDAECFDEEAB:?4?3;-8(9(9)8*:-;3IE??=>782/A:ZPh[PCA35%6'9+9+7+8,0&6-;4;440/,-+--493;3=3=1>0=1=1>0A1B4K5N0N-O1X>_3HO\an_nWfP`DX8JAQ:G2:/22-8-;+:*:/2(JBkcLGPK;9;9LJ@<707-</<+:);(;&:%<)>-9)3':/D;GAC=722.;7:62.2-,-,,./3171:1<1>26)4)B:XRjh|}v}xzxqi{bt]oQcI`:X?[O_QNqX:Sf8]uEa|InSvY{]~`gll}m|o}ponllqqrroprtvtwï̫̾ZK8ZK8ZK8ZK8ZK8ZK8ZK8ZK8ZK8ZK8ZK8[L9[L9\M:\M:]L:^K<`J<^K<_L=^M;_N<^O<^O<^O:_P;`O;aP>aP>aP>aP<bOAeMMdMW`O_aUmgbuq|vsu͆~qyclP[;M*F2Q<S<M<E@ECDBCCEBCADBDDBC>@8>3>19+7':)<*<,=1?7=:9903/24294MElah[QC</:-:.7*6+8/4,7/93621//,1/152C0E-F*B%@#= 9 8'A+E.M/P+P)T2`AhCX`mhuVeKZL\BU2C@R7C-1((.$8&?&@'?.:,YM]QG>D>63;7UQF@918-:,9(9(=)?'<&;&=*7(3(=4LFGAE@963073510+1-,/+-./1/4/81;1>29.3(;2NHa^yzz|{xn~ew^pZlL`Ia9W=YM]JGhQ1Qd6\tDf~Nu[chjnsttr}pnmllnnoolknrttwƯν̻ʤ[J8ZK8[J8ZK8[J8ZK8[J8ZK8[J8ZK8[J8[L9\K9\M:]L:]L:^K<^K<^K<^M=^M=^O<^O<\O<`Q>aR=aR?bQ?bQ?aP>aO;bL>hOKgNRbP\cWkjfuv}|xzƄ}uzlmY[DL/I5R<U<N?LCKBH=@AC@A@AA?C?A9>4=0?1;+8(<,?.@1A7C=7485..30:60'5)UGwj[PC7<0;07*6+:0708263320112364<%6#9"9"9!865629%B(G&J'M3\Ehbu`lWcQ]P]MZ@M2==F7;/./(5';(?&>%9'8+VJ;2?8412/C@WSHA916*6(5%5$:(<(:&7%9*4&1%?5RJIAHB;62.411/-+22,/+.+-++-*1*4,8,=12(7.IB\Xww}vj|_sXlTiD\D^6U:VLZHC^K-Mc5Uo?b}Jt\glnrvzwr~m|i}ggikmmlh~ijosrxũʵ¶Ş]K7\K7]K7\K7]K7\K7]K7\K7^L8]L8^L8]L8^L8]L8^L8]L:]J<]K=^L>\L<\L<[N=]P?^SA`SB_R?`P@bQAcRBdQBdNAdLBjMIhKMdPYf[lnkw{Ђy~sqjba^JW>Q:L?NCQ@K<G>F<B<?<=<:>9=4;0:,6&A0<,6(A5F==57285715.6-8*<*:'6%;0SLZOE98*>.B3:-3+GB//5:6=,7BM'3&2)2(2'"*'/'/&)+7 .&7-A#;Xr-D]l_iZcU\PWHM?@84>7A7?17&2!6#;'<)8-7/E?;7316454DCLHKED;:04)5(4)5*</9,/#(-$9/C;H?PFE=700*0,211314/101010.0.2-5-9/=02%>1=3_Ysqxh}_w[uUoLfEc:Y;[?Y]i@;VF-L^6YuBgMw]}cgjnonm~l}i|h}feflmlk~gfgimrv|z]K7]K7]K7]K7]K7]K7]K7]K7^L8^L8^L8^L8^L8^L8^L8^K:\K;^L>_M?^N>[N=[N=\Q?^RB_SC]QA]OB_OB`NDbPFcOHeNHiMJgNQeS_g_tnny~ʣxy|{vji`]aOZFRHSIVEP?J;E9?:<::=8?7>4</<,<+?-8(:,A6<461<7505-5*4(8&:&;%9'6.A;MDI<>/8(8);.;4JF016;6A.<@N'4$,%(),+,*+((((+,$'%(%,;D'4CAR&6jubjZaW]OSBC<8>68,D5H6>,/)((-%:6TPHG5445==WUGBG?A99/3)6,7/70=3915.2-4.83?9E=J@A86-0*0,210303021201/00.1-4-9-=13$</=2^Wvstf|\vXtQoIh@a:Z?_I`S\{?7RF.M_9ZvCeKsYx_wb{f}i}j|i|i|h{e{d{d}c~e|j}l}l}i|e}ccchkps|xdppR^^]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8]L8^K:_N>aP@`P@]P?\O>[O?[RC[QE[QG\OG\OI_PMcQOfTTgUUgUUgV\h]nlisv|ˊԘנʪ}π䄆vsjegS\GQFOHREQAK=E7=7:99<7@7A4?0>->-<+:,B6H?;20):26/6.7,8,7(8&9&:*4-4.A9OCH:5%2#@2>5HD135;7@4@ES2?)0#&$'13-/''&%12)*8:+1)13=R^=K[g^fV\OTMREI:;74?96,?2B5=17-3),#' %/*EC::,,35AB^]?:C;A9=39/=4@8@;@<=;>;A?>>::?=IDB9<45,2+1-311202020201/00.1-4-9->24%8+;0[Tzw~rdy[tTqNmFg=_=\EbTgAHp;3SH2Qa<]xEfNrZu^t_xc{g{gyfyfycxbybya|bzczf{h{h{e{a{`}``jnstwuynolSeYAPM2A>^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^M9^L8`N:aP<`Q>]P?ZN>YOCXPEXOH[QO_UTbXYeX_iYcl\fk^glaildqokrty~ʅڌᎇןӭijy{ށzwsrcgU\MTGPCM>G<B6;8897<7@6A4A1?.:*>-=0F:RGH?5.1)9181;0=1;-6'6&8+5-2+=4NBK=:,8*B67.>:/0164<8BNZLU>E38$&/1,,22**/.::37,29@EMXcMW=CADBF>A9=8988978391:2A:NHVSNNC@7295KIMLQRYZRQYV51>6B9@7?5B9C<@;?@8=9=?C:?58>=MJ93603+3,4.30210102/201/0/.0-4-8-?36'5(9.VO|yzocwXqOlFh@c9\?^KdZh35g;0WO8WgCa{KjPsYt\u^wbyezfwdvawav`x`x`{azczfzgzfzbz`z]|]~_gntsuqtiidQcUDSL8G@^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M;^M9]K5_M5`P9_P;\O>ZN@XOFXQKYPQ`W\g`hnfsshysg{sg}qh}ol}pqrwv}z҄响㝌ڠulnqvlvismllgi^`RWFM<B7=5;7898=7A7B5B0@/7)@3:0;1RH\QMC;0907-9/>3=16*4'6*3,70=5E9F9B3A2>20&720/.1.47?PX]dZ_OS.103,-EE66,,-.>@2537bh=B*2-4&*;=@E6:379=7;/043;;GFRS`cilek^a@>E@^[hgopjjKK=;40>7D<C;>5<4:1415;-7,6.8,4,39<JK3/3.3+3,5.404/2102/2/1.0/.0-3-7-?38*2%8-NG|ywl|atTnHg>b:_6\AaNeWap/+_?0[W>^lIe}MkSt\u_v_xcycxbu`u`u_v_w_x`{azbzd{e|d|`y^yZ{\}^agmpsr{nrjexe[k^RbU_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N<_N:^L4_N4`N8^O:[N>YOEZSMZTT_Zahbprmzu{u{qzpvpqtrxt}wz~τڋޖܙ͛~yl[Q>MBQIWRWUSRKM>C4:9<9;;9=8@8B6A0?/9,A65+.$I?g\dZUI<26)3):0;06,3)6-1*71;29/>0F5B39+1(4-31-.*.17EJV[]b\a9<9<+,JK89//57()'+XZ>B9=6:#(+<>AE49,21705(.37KNaehncl`i`lbkLLNJ\ZVTMMHF423/A<KDOHJC@8:36..-2:-:*7'4)40:>CJJ1.3,3,5,4-4/4/3/02/2.1-0../-2-7-=1;-1$7,C=yv|qhx_rRlDc9^6]6\FcN`IMe5+VD0[Y@^lIe|NkRt[w_x`{dzcv`s]r\s\t]v^w_{azbybzb|b{_x[xYzY{Z~_ekmsus|rupnlfwe_P=_P=_P=_P=_P=_P=_P=_P=^O<^O<^O<^O<^O<^O<^O<_N:aP6aP6aO9^O<[OA[RK\VV_Zakgvso}z~|}w{uxvsys}x{~ĄɍΔ͚ǠɭŦmfJE2A4@4B9HDNNJK?C=?;=<;=:@8@5>1=0:0?64,1'I?cVh[eWOB>24)7,905,2+600,4/7/7.>1C4>04%4*0+3/..-.1478BEMRY^FKQW37FJ8<AE7:.005HK7;7:#%;=8;;><A6<-6)21;<DLS]eksjs`jZgXh[fddZVWT@=104433C@JERKSLJA?7938133.70>0=*7.:;ECHAB1/4-4-5,4-3,4/4002/2.1-0../-2-7-:/>01%7,;5sqvi}at[pPjCb7`7a;_LfO[~86]=0NF1VX@ZeEcxMjRr[v^ya{dxas]pYpWqXqXt\u]y_x`x_y^z^y\xYxWyV{X_dhloqmxjqij~cbv]_P=_P=_P=_P=_P=_P=_P=_P=^O<^O<^O<^O<^O<^O<^O<_N:cQ9cQ9aP<]P@ZPG\TR_Zaa_mtryx~~yyyuwww|x}ĂąȸоѻЬoT\GG5>0G?WQWVNO@C=?<==;=:=5:19080<5:3=5OEXM]OeXcUL>:-8.914-2,60402-5.<3C7C4:-3%5,.&0-/,3154-.24BFX]W\ouDJHM<C[`ou=B}mqQT>@02:=HK9>7?=F7B-8>J]gmwjrcn]g^kao]nYe\]PIJG74/0540.95D?JDIA@86/4/7166'/0<2=+60:>E?A443.5.6-4,3*3,4/4101/2.1-0../-2-7-9.?20%6,61popcx\pXnOiBb9a<dAbRgQWd/'WD3GG/RT<U^?btLiQq[v_zb|dx_rZnUnUnUoVrZt\w]w]w[x[y[wXvWvUwTyXzZ~_cd~f{fr]iX`vRZoPRgH\L<^N>`P@`P@_O?_O?_O?aQAbRB_O?]M=]M=aQAcSCbRB`Q>dS?aP>]P@^QI[QPZSZeapsqyxz|~}xzrslotwv{̀ʋƖäƳ̰ϬϧϣУ˜˜Ѩg^FzgueH?QNccKL?A89:::97561;6815.B;<3I?XKOAdVcTXIG9:/6-7/6/4/0-2,70=4<07)5(7,/$/&/)1-2040516479JNY]NS8=6<X`~~ougoipfl\aX[Z_UZDK8B7A2>+90>=HS_`igrepbmcn`o]gSSF@854111/.3194D=B:?7<4908193667<4;4;4<6;59331/3,5.7.5+3+2,2,201203/2.1//0.3.7.?58,6,/&;7XW{me|\rPhGeCe;d9`NlRd=?P, C;&CG.KM5Y_CZjEcxMqZxbx`t\rYqYlSmRnSoTrXtZu]u[tXtWvXwWvWvUuTtS{[{]z^u[mUb~MXrCSj>AW0?U/<R,[K;^N>`P@`P@`P@_O?`P@aQAbRB`P@_O?`P@bRBcSCbRB`P@fVG_QF\OG^TSaZad`omkvwwy{}}x|qukplonquv|~ՉӘΨǸźαתۥޥݢۤأѠǛӼ}dŋw}mVJa[rpZ[KL?@=>>@;;6664=883?86.>3K@H;]Mo``QH:5)0&6-5-0)5195=7<38.5)4*5*7.5+2+0+0,2,4.5287>@JLW[^b\d]eaiS[NVQY_gjqflZ`NT4:,5*6-9'5!-'67CPZZdbldmencm[hQZEE<7646355302/62>9>7;4:3818295:69;7:7:797965312,3,6-7,6,2+1,1,201203/2.1//0.3.7.<3=28.1*74Z[s}fz^vWoOiFf?b<c@cOhKVx;8L2#<:#<B(EG/OS8VdA`rJnXu_v]tXqVpTkOkPlQmRpVrXs[sYtXuWuWuWtTrQqRpQnPlNhLbFXu?Ni6F]/@W+@W-@W-AX.YL<[N>^QA^QA^QA^QA_RB`SCaTD`SC_RB`SCaTDaTD`SC^PCbUM\QM[QRcYbkdtqmvuy{y{y~x|nsei`gjnru}}ׇݗ۩ػؿۧϡÜkpo`RG]Umiuu__JL@DAD>@8:66=:;6A:707,>3=/F8j\i[[MB62(4+6-2,52A>GC=62)1'2'0%4*1).)/)2,7/=4B9-(43DCVX^bZaS[Q[FQHSOY\fmvntY_>D.5-42<2>+9'46EKWISPWW_^fck`iRYBI977175<8;;955160:3;290907183:6<8999997988874402+6-7-8,6,2)0)0,10121302/1//0.3.6.90D9804./._blwbxWsPmLlCf:];_IfSgDJl;4O>,=<':?(ED/FH0Q\<YkEg|Qr[tZqUmRkOiMiKiLkPmTnUpXqWuYuWtUrTpRmMkMjLeGaE[AUt;Li3E`-AX*>U'B\/E_2Ic6WJ:ZM=\O?^QA]P@^QA_RBaTD`SC`SC`SCaTDaTD`SC_RB\PDZOMZQVbXcjcsqmvuxzz|w|symrbi]daglrx{ʉߕ夡䶵۪ө¡vqrcbWi`rmut[]LNCG@D<?;<:8<8E?C;:0:/6)1#I;aRk\SE:,4'6+4-42MKZXKF803*4+2(.&,%,%-%1)6,;0?4/'4,:6CBFHEIGNMVQ]VbXb\egpmuYa;@17.4-6+4%2(4=IS_?IAIGLQVY`X]GM685373;8@>@?=;957282918080717396:7:7;9:7:8:6845.3+6,7-8,6,2)0)/+0/222312010/0.3.6.8/F<913.,,fjygtbyTqKkGj>c6Y=^QhXeBBgC7[N;GF1AC-JH3EE-LU6Sc>btLlUpXnRkPiKgIhJhKjMkPmToWpVtXsUqSoPjMgJeHdG`D]AWy=Rq8Mi6Lf6Ne7Of8Lf7Oi9Sm>UH8WJ:[N>\O?]P@]P@_RBaTD_RB`SCaTDaTD`SC_RB_RB^QIVMR_Xhnf{tpxtxwxzy{syjr`g[c_gjrv|ƀΓ䭮绽߹׶еƱy|qvksimeoi扄~sredWYMNDE@@:7;7B=E?<3=3B51#0"I;XKN@=/8*6*3*42UUkh]XD>;3;2804-2,1+0)0'/$/$0#9,4'3):5CAEGBG@HDOOZVaVa^igoYaBG:<5738283=9CHSV_6?4;6;ADJOIM;A135195<8<9;9:77370;2;1:09082736475:8;8:8:9;7956/3,7-8.9-7*3)1)0)1-323322011/0.3.6.7/C:701-13jpqzft]tPmCf=d9c8^EdZmV[wE>dJ=aYFTO;KI4PI6GE.GP3L\8ZlFf|NmSmRlMhJfHgHgIiLjOlSnVoUtVsUnRjLfKcHaF_FZBX|?St;Pn8Ok:Rl=Wn@ZqCUo?Vq>WqARE5UH8XK;ZM=[N>\O?^QA`SC`SCaTDaTDaTD`SC`SCbUEaVP^Vcje|yu}yzyxyvyswjrcj[c]ehpv~ǁшәݣ௳㻿þŹx{tyvquleleoga[`[smyu{|yrpccSTHGC?>:<6A;:1C:TJ>26)9,=.?/B1C5@17-2/LM_]WSD?:48170939292:19/9,8+8)(3"@2I>D@;:7;:@7AHRV_Yb^g`iU[AE@>?;ACGJLTQYT]V^4:/5/37:=A;?4812429586422020404.<4=4<3;2837343438898889997755/3,7-8,:+7*2(0(0(1,424332111/1.3.6.91<3710-@CnukubqRiHf;a4^6b>dNi\iGFjF:]L<]VCXQ>RJ7OG4ID.DJ.GU2Sc>^sHgMjOjKgGgFfGfHgJiNkRmUmUqUoQjNgKcH`E_F^G\E[~DWxAVr?Uo@YpB]rG^uG[sCYtAXs@NB2QE5UI9WK;XL<ZN>\P@^RBaUEbVFbVFaUE_SCaUEfZJh]Yngwup|x{ywxvwpujoah^f_gempx}͉؏ؙ֪֡۴ߺɼĻqqqtpopfewhenj_Yd_ZTf`snzv{wwshfZWRNHB=6D=;4G=\R;0<07+6(>.D3B3A1A386>>CCB@=7817/7/:393:3;3>5A5E8G6-;%J8L==50+009>AJKTU`Ze]eYaLR>@4/7/;9@@CHDJBI?F5;26368<7914/2142095740.,*0,3.3,=5=4=4<3:59565655757576866542.1+7.9-:+7*4&1&1(1,425342211/1.3.6.;34+:520UXpxcnZiI`Ef8b/]5bBhLePYj5/^G7XK:UN;[P>VI8M@0JC0@F,AO.K[6Xj@bxGfJhIfFeDcBcEeHgLhOiRkSnRlPhNdJaH_F_H_H_H_H]~G]yF]wH`wKcxOczN]uC[vAZu@JC3MF6QH9TK<WK=YM?\O?^QAdWFeXGdXHbVF_UIaWMg^UlcfwryuxvtsrrtulpbgZa_eflmsv|ȁӏݗޛՠөڮݱݲ۴ڶ۵ֳѮɫĪ¤~|xdbgiefcYZj[X{c_yVPc]NFUM`Xkcwrzzwnja\TOGBOIB=G@WO,"1'4'>.E6>-2"7'E7E?973.50;5=5<4=4;4925.4+5)8+<,?-S>G2<):-=2;57443KNMRPUTYY]VXMOD@5+7+7/52242618.64>3;5?9B4>+5(3/9-35759./*+0.515/<4=4=4=4;6:676664635253455411-0(8,:+:+8(4&3$3&4*5052423/2/2,4,6.=4/&>935bgoy[iNcC]Eh:e0]6aGhJ]CFR,#VI8SL:OH6[O?UI9F?-HF1>B'@J(IU1Sd:_rEe}IgJeHcCaBbCcEeHfMhPiQlPkMfJcIaG`F`H`I^G^F_}G`|Ia{Kd{Mf|Nf~N]xC]z@^{CDB6FD8JF;PG>RH>WI>]M>_O?`Q>aR?`SB_VGbYRgb_ojnso~wqzt|yywppgg`a\_`bfhopyz̄֍ߖ眙栞ݡף٤ڦإץԤӥѣ͢ɢȟÙ|rn}igld^`fZZkYUrWP}WNWORIZPXPZSkdyr|uqus_]PLEAZT712*6*7(7'7&9(;+<.?18.<2?4;05(3':/@590907.7+7):*?,A/=.@4E:G<C;<42,+&<7EBOLVSYVXROIC:;*:(8,5../*2(3'6->+?*?)?(?&?$<$<$8'9+<,9+5.545;984:3;4;5:595735435465454535/5,5)8,9*9(9&8&7%6%4&5-4/504.5,5+5*7,907/:6?BmwbsSjIcKj6[6_<g>cNjIV^$"D, ?:'HE4PM<PI9EB1>C/?G/BH&EK%KS.S]8[kDavKd~NdJbF`Ba@cBeFhJlPmQlLiHgGfHfJeIcHaGdJdIbGc~GdJdHe~Ga}C[{<\=_B=?4?A6FC<JE?PE?TG>[K>]M=`O;`Q<^SA^VIc[Xhcinlysotpvptppmgfaa]^\\edkjtr}{φٍ易囖ٜ՝֞מ֝՜ԛўќ͜ʛǚēxtk|mdif]^f[YiZSoWM{UJVKVK\RYRXRfaqjvo~wusgdUSZU2,/%7)7&7%8&8';*;-=/9,9,:,:,9+9+8+8,;1908.8,9*9(:&9&6*80=5@8A9?7<4914->6H@OGQINFC;7*7%8$7)4,//+3)7(:+@*A)A&A#@!<=:: 9%;);-9197:;;94:5;4;5:595735235465464716/5,5)9*9*9(9&9&8%8%6%5+3+4,5*5*6(7)7*;14,54TYes[pGbIhAd;`3[;aMmLb8?S*$A5'69(;<,B@1DA0@?-=B.>G,=CKP'\b<eoJhvRezQd~OdLaFaAa@c@gDiHkMlNlKjGhHfFgJfIfJdHfKdIdHdFeGeGfEb~A]>_?bB69.:<1??7DA:KB;OE<VH=YL<^O<\O<\SB^WMc]]helom{sqsoqkjfc`\[ZZ\]\_hjnowx҆؊܏ݓӓГГҔѓѓВΕ͓ǔĔzr|ewu^fi[[d[Vd[RfXKrVHTHZQ`Y\YYWcbkiokvq}ynhaX4+2&8):'9&9%9&;(:+:,:-5)5'8*>/>/6(/":.8-7,8,:+:)9&7$5)6,8.:0=3@6A7B8:1@6E;F<H>G=@67+6%6&7,4/03-5+9*<';'=%=#;!:77686$8*;2<6=8;::94:5;4;59585735236475565616/5,4(8)9)9'8%8%7$7$6%5'4)5*6(6(7(6)7+<21+88kr]nPi<[Hl7]>e5[>bVq?Qa#(L/);7+07'37&9<)@=*A<(@>)BB&?FXa4s~Tdw`hSa}LaG`C`?a@c@hEjJkMlNnMkHhHgGhKhKfLdJeKdJcFdGfHfGeFbBcDeEhH25*58-;<4A>7G@:KB;RE<VJ<XL<YM=YQD^WOc^bigronrormjg`^WWTUWX\_aclnrs{|΂Ոيی܍׏ҏΏώЏюЎύΏʎƏxo_p|Y`lXYd[T^_Q_\IjWF}SEUL\YY[X\cgkkplxs}vzs~{ka<28);(:';&:%:&:'9)8*:.6*5'8)>.>.8(/!6)5)4(6)9+<+=*;):-:/909/:1;1<3=3D<E;A9=3<4A7@8;15'5)5.31/5+6)7):&9&;&;'<&<%:$:#:"7#7%7,;5>9?8:8794:5;4;59585735447476665726/5,5*8*8(8(8&7&7$6$6$5%6(7'9(9(:(9):+:13.HKoyVjD_<_Ag3\8b>cMlOe0=J C1-11'.6'4=,=B.B@+B<$E>$HE$U\0p~Mr|mjW_{J]~E_Ca@bAfCkJlLmOmOoNlIiIhHiLiLhNgMfLdJdGeHgHhIfGdDgHiIlL-3'36+891<;6B=9G@:MD=QG=SI=SK>UNDZUQa^eigumklkjhb`XVPPQQXY`cfjorux|Ђֆه؊ً֋ϋ͉̊ЉшъщЌϋȍ~wmYjSZnVTc\RZaOZ_HeZDxUBLDTRSWRY^dejkluqunoh~v{~l`?28(;(='='<';':'8(7):/8.8,9+:+:*9)7(9+7+8,7+7*8*<,>-<0=0<2;/:08,7-5*@7@5=49.80;1:25,/%0)2025/8-9+;,<-?.?/@/@/A/?-?.@)9)8+70:6=8=774394:5;6:79585654448485676726/6,5*8*9(9(9&9&8&7&8&8%:&;'=(=(=*=,<.7/;8^eaqPi<[Ai4_4`1YKlYq>NZ%-C),:2/-0)08+7@/:B+<<"A<UH(`[5{Slwo[aK^F`DcBeDjGoNpPoSoSoNlIiIgGiLiLiOhNfJeIdHeIgIhHgGeDiIiKlN+1%.4*470893>:7B=:HA;KD<NH<NG=OJDWSR_^ffeugggfba[YQQNORS[^eilouwz|փ؆ن׈ՉӇˆȆ˅΅Ѕ҇҇ЍҌˍ{v|jzVcPVnUQd^P[eMXbIb^EsXCOEWRUZSZ\caggjpoyrqh|tsjxm\Q;+5#;'=(=(<(;(;)9*7*5+7-:.:,:)8':)=,=.@2A4>18*4&8)<,:,:,;/;-:/9+5+5(6,;/>4?3?6>37.,#+%-*02391;0<0?0?0@1@1@0=/<-9,9*7/</;0:3:6;69554294:5:6:79585654459596776746/6-6*7+8)8)9'8'8%7'9%9$<%=&?'@(@*?.;061HIfrOdHf7[Am/]7a4XPjUfm19E(*E697325406906=-3;#38CCja:TwΗǓ}vbeQ`F`BcBgFmJrOrRqUpToNlKhHfFhKiLiNiOgKfJeIfIhIiHiGfCjJkMnP(0#+1'/4-350764<85@=8C>8IE<HE<KHCRPQ[[eabtbb|``_^ZXTTTT\]gipsvx{~ۃބ݄؃օԆу˂ȃ˂̓хԈՈӍҋȋ|wpveo~U[|PQnUNf_O]eMZdIaaGq]ETF]TZ[VZ[a]daellzsrjxoYP[PD85':):'<&='=(;*:*8*6*0'3)8,;,;*;(;(<);*C4K=H:=/4&5';,9)9)9+9)8+8)7+7)6+<.?4@3@6A5:11)0.14496>4>1>0@/?.</</907-5,2+2*12:3;5;59575565758697:6:7877767465:5:7:8774706-6*7*8*8*9(9(9&8(9&9":">$?%@(@*=-;196U\^qGc?a:a7g3b8`FdNa@IS12A64@:<:46?56<7179+4="9CSZ.PqŊˎ̒Í}{egQ_E^@c@iDoJsPsSqUoSnNkJgGeEgJhKiNiNfKdIdIeHgJhIiHfEjLlNoQ&.!(0%-2+13.331764:95<;6GD=DD<GFBOOQZZd_ap^`y\\~`_\ZYX\\ggqsz|܁ႅ䅆ㄅჃہՃ҃΄̃Ʉ̃΅Ӈ֊׌ԍЌċxsnuqbevWUtSLjVKf_MbfM_eIcbFp^FzQ?[MZSSRVZW\Y`cermnfqhD;A71%4&C29%:&;'<):+:,8,7,,#0%6)<,@->*;'7$4#B2OAN@B47)7)>/;+:*8(7'6'6(8*8+;.;/9-6*7,<1<271888=:A9B4A/<,;,:/;19384857563657376;9<69453376;9869796:7877767465:5:7:8995827/7+8+:*9+;*:*:(:*;(9":"=$>%?(?+<.81<?\fQhIf9]=h.]<h;\\pLV^..G83BC><89?48E26C41=:)>E&FU*bs?aˌɋËz{efPZ|@^?a>hCoJrOrRpTnRnNjIfFdDfIhKiNiNfKeJdGeFgHhGhGeDkLmOpR(0!'/"(-&).(.0-3317839:4==5?@8DE@JLKORYVXeZ\s]^}YX[Y^]eennwx؄⌌솇䂂܀ւӃ΀ȁǃ˄ΆЈӋҌϊŊ}xwozkegf]Xm[Qm[Mi\Lf^Kd_IeaHhaGo_FoP;UA]OaYYXQTS[\`heYPD<707/:1=/;+9(:&9(:)8)8*5,5,/%3)8,>/@/@-=*9'9)0"WJK?/#=1</8(;+:)9(8'7&6&5&4&7);.>2<07,8->4C<BE9?2<4?2@-;-:2=7>5;687899:97877;=<<::8785747575979899::9;9<9<8<7;6:8:9:;9;5907,8+9)9+:):):(;*<)9#=':#49%D3?61,^eVgIb<\1X0Y6cBiYoFQo33N3,B?6>C<@78@-1L/3K2.A9&DJ(Zn=~_włʌ~nfRXvBY{?]>cAiDnImLlNkOlNiIfDcBcBfIhKfLdJgMhNgKfHeEfEjIkJqQrStU*0")/#).').(-/,130561782;<4>?7AD=HJGOPTSUaXYkZ\u\Z^]dbkjut~·ߋ鍍년 ؀~Ҁς̅Ɇȇˉ΋ό΍̎Ȋ|x{stknlb`e]Re`Me^Kf^Kh]Ki\Ij^Hk_Gn^Ew_G[CYFZLVPRSQXX_USLE>9606/909,9(8&8&8(8)7)6*4,5,0'5)9+=-A/@-<*9(8)<.REH<4(:-:,4&=,<+;*;*:)9)8)6(7*8,7,3)1'1(7.<5DG8>/9/:0=.;1<6?5:3622:8EBIFDC?>:7989796858598988788999:9;9<9<7;6:596888;8:59/7+8*:*:*;*;*<)<+<)9$?):%5:';/:2<=^gPdA[8W6[;`>dIe?L?>_:2G;/:>08>2F<:R>=N0.S8/VK5ciEx[p}Ɓ}xr^YuETp=\{B_@b@iCmHlKkLiMiMgGeCcBcDgJiLhNgMiOiMiKgGgFfElImLpQoRtU-1"-1#,/&,.)//-11/34/45-9;0<>1@B7EHAKMLQRWUUaVWi\Yt^]fdpnzx΍ߐꐎ튉燄߁|}ȀÆLjƊʌɌɌŌ|v{pujpndbi_Vc]M_aL_aKc^Jg\Jl[In\Ho]Gq]EwaIxX?S=VDXOUSOTMS><<784716/6.7+7(7&8$8&8'6)5*3,5,3(6(9)<+?-?-<+8(5'J=F:A5</6(;+6&:):):):*8)7)6(3'9-7,3*3*3+6/:3<8<=4907183<4<7@=C7;AANKYUZUQLB>84627272728596;8;877888:8;8<8<8<8;58475777:7:48/7,8+:+;+<+<+<)<+<)9&@*9$6$;+0'40PT[iJ`:U7V@]HfHdNa89e?6R@2DA09=,57)>6+K9/E-#R=,g]B_t{z{xm\uKHb5Nh8[xB_}?c@hDlGjIhJgLfKdDdCcDeFhKkNkOjNiOiOiMhJgHhHlKoMsVsWvY24&04&01)01+12-23.34.46+9;-;>-?A3DF9IJDMONRQWSS]XVd\Zoda~nlzwÌ֑㔑ꓐ뎋≅ق||~Ë}{vyn~rgmmaak^Vi[Pc\J]`K]aJc^Jh[JmZKqZJtZIv[FsWAxR;Q=YF[PTPFI>A2/5/51605.5+6)8)7$8$8&9'6)6*3,6-6)8'7&:(>+?-;+8)4'UI<18,B45%=+=+8(8'9(:)9)7)6(3'6*3)2)4,:3>7?9=:45596;5;2:397=<@UVbbmjidVQA<634/61717182859697:878898;9<8<8<8<7<5:686797<7<49/9,9*;*;)<)<+=);*<(:'@,8&8';-+"54`gTdG\<U=XG_OdO_SZvGAXH9KD2FE1BE0=?*:8#;3?3PG*nkHfttsx}l[K_:AW0Lc7Wr?_{@d@iCkFiHgGdHeJbBcBdEgHjMlOmQnRjPjNjLhJgGiGmKpOvWvZx\78(68*66,56.56056067/68+;>-=@-@C.DG4IK>MNFQPNRRRVUSYX]a_lkius}njӕᔑ␍܋ӄā}||~zxsznzrfjm_^j[Ti[PjZKfZJb_Lb_Le^Li\Kn[Lr[Kw\K{ZG~UAR=RAVFRHG@88331-3/5/5.3,3)5(9(8$9$:&:'8)7*5,7-;+:)6%8';+=.;.7,90\T=55+A53$:(?+:):*:+:,;-:-8-7-3*1)1+71<7>:;77475;<<?69155:BFMOxwqn`[JC832.73@:939172726273767668797;8<8>8>7=7;7;797:::=:=7;2;/8*:*;*<)<*<(;););(=*8'9*8-/)@ChrM^H[DYH[O^T]TWXUdM?OL9LG4JE1FD-?B'=D#>H#KV.\g<xTfmnr}udRcC?P0BS1Oa9Vl=b{BeBiCjEiFeFbHcGbBfCgHiJkNmPnRoSjNkOjMiKiIjInKrOvWvXwY?=.=>.==1==3==5;<4;=2;=/?B/@D-CG.FJ3KL:NOAQQIRRHYWJZZN_^\gerqn{yďяӍϊǃ~yzwyv{v|y|}}x|tzrvksrffm_\j\Sk[NlZLl[Kk[Ki]Mg^Mi]Mj]Mn]Ms^Mz]MZI`OVGN@J=@76.1+1+516/5.4-2)4'6&;(9$;$;&;':)9*7,9->,;(5#5#9)<.;/7-?7[TIA:0@36&3 <)9'7'7'7(7)7*7,7-<3:293<7>:=9854196<9::8:>@PPbcppheTP=61+40;7=:;7;5:294837373556669697;8<8>7=7=6:8<898:;:>:>7<2</8):););(<(;':&:(<)9(;)9*6*>8TXepK\I]J\M[QZVVZR`RPI7HM9NI5H@+;567>O%Lf6lTw\edfkt|mn}\Q`C<J09F,AP1O_;Wj=czDeBjDkFiFeFaFcGcCiFjKlMlOlOmQnRmQmOmPlLkJmJrNsQ{]{]z\DA0DB3DB6CC9CC;CC;BB6BC3DF0EH-GJ-JM2ON9RQ?TREUSD\ZC\\D\]Oaaaihxrq{z~È{ystoomplrnvpwrwrtoskzrinmb`l_Wj\Qk[Lm\Lo\Mo\Kq[Mq[No\Nm]Nl_Om`Os`Oz_NZM_SPEB8;26-1(2)5,706/4-3,4*5(7%9%:"="=$>'<);*9,;-@-<(5!3!8(<.:/5-93NITMB9B5?.1<(<,9+7*6)7+9.;1;3D=A<?;>;=;;:8885859574;:JJ\[dcc_=9824.81A=E@=;42;5;3949484847777697:6;8<8>7=7=6:7:6989;9>9>6<1<.8););(;';(:':'9&>+7%=+9)2'PKkm\fP^J\HWKSRS[RcQjUJM8DL7JB/H9$B7FH#Up=gV~oqh}YYcd|_XfCGT89E-6B*:D,=J0JX7Wh>e|FhClElFiGcFaGaGfFlImNnOlOkNkOmQpTqSpSpPoNqNtRwU|^z^y]IC3JD6IE9IE:IG;IG;HF9HG5IH3JJ2LL2NN4RP;TQ>XRDYTA]Y>[Z>\YH^[Tdahnk~xs}x{}|}wunoikgiejfmhmimh|lfrkbgj`^g]Th\Nh[Kk\In]Kq_Kq_Kp]Lp]Np]Op]Ns]Ow]N~]N\LXLUHF<9/7-7/6-6-6-6/4-4,4,7,7)6'6$:$<$<&=';);*:,<-A/<'3!3 9'=.;/8.2*A;[TI@D7F72>,F7B5@3?2?3A7E<F?@;=9:764546597<9?9=6:5@:MHQL@9)#-&5->7@;>9;8;;==9696968695:699::88888;8;9<8;7:7:6:6888:8=8=5<1;-9(;*;);(;';&:(:'?-5"=.8*/&\Xy|X_XdQ[KRLOVP`UgUnVPW8?J*<;C=UQ+lvDf~vs|anMu~Q^u}V[b@;D)4<%5=(=D2<E29C+CP2Ue>g{HiFlGmGjGfGbGcGhJlMoPnPlMiKjJjLsTsUsSrQrOsRwUzZvZu[sYRK;RK;RJ=RJ=RJ=RJ=RJ=RK;UN<VO=WP>XQ?YR@[TD\UE\UEb[HaZHaYLbYRe][kaiqftuj{zn|pss|puj{mbre]jc`k`_g_\c_Z^^ZY^YUaZRbZOe[Og[Ki\Kk\Ik\Gm]Fm]Fj^HicMqfTqZJuOBWJ\PYLZLN=E4<,7(8-80411-6/7.7.7.7.7+6)7)8)8)9)9)9+9+8+;,;+>-9(1 2!9*</9.5+5-:0C8K>H9=,2#PFJ@F<D;G?G@C><:7487::::776493=7F>B9:/4(1&5);/?3:0<3?7?:=;;9899:7:8:8:999797959540516576899:9:9;;>9;99=:A=B;A6?1:)<+=*<(:&:%8&8&A0<-/#/&LJmoloVZLNNOQMUOXO]RaTjSWZ/:M7FTa)~Poyxs~ahL\mCYdBT]BHP9?D0:=,@C2<@1:>0<C3:C0AN2Rd>]sBgHpKoKlGjIiKgJlPmSoSlPmMkJmJmIqLqMrNrPtRvUyYz^ycmZbOWN?WN?WN?WN?WN?WN?WN?WN?XO@YPAYPA[RC\SD]TE^UF_VGd[JcZIcYMcYOf[Uj_]nbdpdhreltgpvirvirsfmm`gg[_bXY^[VZZRYVOWTKXTIXTH\VH^WGcZKcZIf[Ig\Hi]Gj^Fk_Gh`IcbMngTv\MSFVMVORJQEH9C0=,9)8,8062406.8.8.8.7-8-7,7+7+7+7+7+8+8+8+:,<.>.9(1 2 :)>.<.:-4*4);0E:OBQCOCF?@;<5;4=7=88633777879787797=9B:A7?4:,6'5&8)=-@1A4@6@7=8:777567:6:6<7:89879595:592:3:5;6;8;89999:;;;<=?=A;?6=2;-;+=*=+<);(:&8%:%9'8)5*<5QPee^aMMNLTMYP\Q^S^S_VfQ`_/Sg*^r3zOn|pbjHauBTe;JX7FP7?H59?158-:</AB4=?4:=2=A3:C0@M3Rd>^tEgHqMpLnHkHkLhKmQnTmSmQkLkHlHmHpJpJpLsQuTxXxXx^mXbQYH]TE]TE]TE]TE]TE]TE]TE]TE[RC\SD]TE^UF_VG`WHaXIaXGe]Je]Hd[Jd[Le[Qf[Uh]Yh][i]]j^^k__k__i^\f[YbWS_VQZVMWTKUQHRNCQMBSOCWQCXRB^WG^WEaYFc[Fg\Hi^Hk`JhbLbaMngUy_PXN[UVQIEE@@7>1;/8+8+9,;/:/8.7-7-9.8-7,7,7+7+7+7+8+8+8+9+;,>0>.:(2 3:&>,>.?08+2(4*<0F9M?ND:643204297=<<<;<9<5:27265899<:@:8-:+6'4%5%8(<+=.D5C6B8=79464557969696977779595:3:3;4;6<6;8:999889:<<@>B=?9:17+7(;,<+<+;):(9&7%9&z6#y6%9,F=SOWTPOIFMHSLYP^SaWaW_VePsrFzVn{|[[o<?R$AS+AP/?L2:C06<.69058/9;.@A3=?49<1=A39B/@M3Qc=`vGiJsOrNpJmJmNkNpTqUoSnPlKlIlHnIpLpLpNuSxXy[uWqX_JVEOx>aXIaXIaXIaXIaXIaXIaXIaXI_VG`WH`WHaXIbYJcZKd[Ld[Je]Hf^Gf^Ig_Lg^Of\Pf\Rf\Sh]Wh]Wh]Wh^Ug]Te[QdZPc[N]YMZVJVRFRNBPL@PM>TN@UO?WQAYTA[VC]XDaZGd]Jf_LfaMdcQleUv\O[Qb\ZXFD<:<8;6:08-8):*?.?/9-7,8-9-8-8,8,7+7+8+8+8+8+8+9+;,?1>.9'3 38"=)@.?-:+7*5*7+:.</:26524123488;<=?<>7<380625587765615(7'6&7&7&9(:):*A1B4A7?8;5957687687878868694:4;492:2:4;7:8:89799<:@<C=A;;26+6'7(;*;););(:&8$7#9%=*v5#5'E:PHMGLGQLPJULZO^RaVaVaWgT_xtsYN`8/A->3B%:F.=F3;A3:=2:=4<=599-?@2<>39<1<@29B/?L2Pb<awHjKtPsOrLoLoPmOpTsUpRoPmJmHnJpKqMrNtSyX{]w[mSeM[FS|BNw=cZKcZKcZKcZKcZKcZKcZKcZKcZKcZKd[Ld[Le\Mf]Nf]Nf]Lf^Gg_Hh`IiaLiaNi`Oh_Pg^Oj`Ti`Qi`Qh_Nh_Nh`Mh`MhaNd^N`ZL[UGVPBPM>NK:NK:NK:PM<RO>TQ@VS@XWC[ZF]\H^]Kb`Qf^QmWJ[Ricc`MMBC;=8984709+=)C+B+;+7)8*:+9+9*9*8)8)8)8)9)9)9)9);,?1>0:(6"47 =&B-;*;,:,9-8.:0<0:49<4<3928384838256<494:7:9<76210(6(:(:(:(:(:(9&7&:+;/>3?7=8;896876666667484:3:3<3:2;2<5=7=:><=;>=@<B<B:=57-5(7(:*;)<);*:(9&8%7$8%@-u4"{3%G:QINFNGWNULXLZN\N]R`UaWhWfzj]kHDS42@&$2-:&0;*5=.9?3<?4=?4:;3::099->?1;=28;0;?18A.>K1Pb<bxIkLuQtPsMqNqRoQrSrSrQpMmKmIpLsOtQvSxY{^z_qVdJYC]JW~GRyBe\Me\Me\Me\Me\Me\Me\Me\Me\Mf]Nf]Nf]Ng^Og^Oh_Ph_Ng_Jh`IiaLjbMjbOjbOjaPjaPjaPiaNh`Mh`Kh`Kh`IiaJjbKf_Mb]J^XHXRBSM=MJ9KH7IH6KJ8LK9LM;NO=PQ?QTASVESVE[YL^VIcQEzXNhaeaVUQR@C:>8770;.?+C*A(;*7(8)9*9*9*9*8)8)9)9)9)9)9)9);,?1=/<)9$65;"A*B.@/;,7*2(4+;0=85:3<6=8>:>;>:=9<587:9>=>=>962/0'9+>*>*>*=)<(:'8%6%7);0=3<5<7;8;787757585:4;4<4=4>5?7A:A;A>A?@=B??:@8=38-5(5'8(<*<(<)<(:&9'7%6$6%}:)t3!~9*OAYNRGOEVJYN[MZM[M\Q_T`WgW~xXy^r|ZU`B;E,/;%0;*0<.3=24<16<2<?6@A9?A6<<077+89+>?1:<17:/:>07@-=J0Oa;bxIkLuQuQtNqNrSpRrQsPrOpKnJpLsOvRyX{Zz]x]qWgO]EXB`NYISzCg^Og^Og^Og^Og^Og^Og^Og^Og^Og^Og^Oh_Ph_Ph_Ph_Pi`OjaPjbOjbOjbOi`Oi`OiaNiaNiaNh`Kh`Kh`Ih`IhaGhaGhaGf_Le^Kb[I\WDWR?PM:LI8IH6IH6GH6GJ9GK:HL;IM<HO?JN?PQCXRF[OCiRDYMVLSLZYIJ?B9972;1?-B*<$:)7(8):*9*:*:*:*9):):):):):):);,=0=/=,<)8 49 A)C-A/=/6+/%0'6.:8596>;A@CAEBC@A??1266:<=;;9714.4)<->+>+@,>+>(;':'7%7'8+8.7094=9>;:79595:4;4;4=4>4B7C9C<B;A=?<=;>9<3:/8+6(7'8):):(=)<*<):'9(7&6%}6$x3#x5%B2UEWKPCPDZLYMZN\Q\Q[T\U[VbUkbEV`=JS4=G,6?*2=,4>35?66=68?8=B;CF=EG<CD6@>/;9*78*=>0:<17:/:>06?,=J0N`:awHkLuQuQtNrOrSpPqOrNqMpLoKrNuTyX`~az]qUfL_G]E^IbPYISzCh_Ph_Ph_Ph_Ph_Ph_Ph_Ph_Pg^Oh_Ph_Ph_Ph_Ph_Pi`Qi`QmdUlcTjaRi`Qh_Pg^Og^Mh`MiaNiaLiaLiaLh`Ih`IhaGh`IgaKf_Le^Kb[H\WDUR?PM<ML:EF4DG4DH7DH7BI9BK:BK:CJ:IK>SQDSPAXL<eK:tE5H>YSRODE::75;3>/=)8":)8'9(;*;*;*;*;*:):):):):):):);,;0:.<,>+9#37?'9#;)>0<18.7/<5?==B?DCEDC@?;7501./,51:6<6:28.8,:+=->+?,@-@-A+>*=*;*:(7(5)5+90?9C>=7;5;5<4<5=4>5@5D9D:C;A9?:;685937-8(5'6':)<*:)8&=*<+<*<)~:'|8%{6&{6&y1#8*G8SCPBL=RE_SWLYN[R]T]V\VYT^QaX;EM(6@8A&>G2<E43=2-7.1817>6BE<GJ?HI;BC1?>*;:&78(=>09;069.:>06?,<I/N`:awHjKuQtPtNrOrSpPqMqLqLpKpLsOwV{\edx\jP]EYA^HePcQZJSzCi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi_Sj`Wj`Wj`Wj`Wj`Vj`Vj`TjaRjaRjaPjaPjbOjbOjbOjbMjbMg_Jg_Jf^Ie_Ib]IZXCSP=ML:HI7EH7AE6@D5?E7?G8?G8>F7GK=IK=AE4KJ6\Q;aE/J9j]g`USFEA@A=>5=0=-4%5&6'7(7(8);,=.<-<-<-<-;,;,;,<-2(7.;/:)7"579"A-;+6)4*6/<7C?HEDEEHCC:661808.4+9/9.8.8-9,:+<+<+=+=*>+?,@-A,A-@-;*:(7(6)6+8-;3<4=6=6?8A7A9B6@6@5H=E;A8;25/3-1*2+9-;*9+:*:););+<+9'}8(|9(|9(|9({8'y6&x3$w- A4OCMAL@QEUJRG\R\RUMTLZUXSWTgZ]T5IQ*AK(BK,>H/7@+2=-4?14<1HPCZ^PW[JMO:DF.AA'==%:;)>?1;=2:=2;?14=*;H.Pb<cyJlMuQsOrLpMrSqQpLqKrNrNsPvU{\bfx^jO`G^EaJfPhTdS[LTyEi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi_Sj_Yj_[j_[j_Yj_Yj`Wj`Vj`Tj`TjaRjaRjaRjaRjaRjaPjaPh`Mh`Kg_Jg_Jd]J^YEUR?ON:IJ:EH7BD6@D5?E7>F7>F7=E6@F8>E5>F1HL5MI0U?'Q:sbcX_ZUTGG@>A=?9:09+=,=.>-;-;+9+:*:,:+:,:+:,:+:,;.?5B:B7=/6#1125#6(;/A8E?IDJFKHCAEDB><39/=0?1=0?1>2>0>/=/>.@.?,=*;*<+=,?+>+>,>,@.=-:,8,8+8-:09/<2<2?5A7C9C9D9E8B6A4=3:06/5.4,7,:.=,;,;+:*;*<*<,~;*|;){9)y:)x9(w8'u6'w4$4'D7NCK?J>QDTIRGSJXOUOVP]XWRSOcT]W5Xc9_jBZfBIT66C)4@*<H4OXGYbQ_fTW\FJN7BE*??#<<"9:(=>0:<19<1<@25>+;H.Pb<dzKlMuQtPrLqNrSqQsOrLpLqMtQxW|_c{aoUcJ]DaJeNeNcOdS[LTyEi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`Qi_Uj_[j^^j^^j_]j_Yj`Wj`Vj`Tj`Tj`Tj`Tj`Tj`Tj`Tj`Vj`TlaOk`LiaNiaNf_La\HYVCSR>MK<HI9DF8AE6AE6?F6>D6<D5=F57@-@H1IK3F?%W?'ZCs`VJbZebTSFHGHCD;67+:*:,:*9,8)6)6'8+7)7+7)7+8*8,8.3-5/6-3(0"/1 3$A2C7G?LFLGJFFBD@CADA@:;1</A1E4E3D3D4B2A0@0A/~A.@.:*9+:);*<+<+=*<*?.=-;+9*8+9-;.9/:.90;0>3?3A4A3A4;,:,8-7+6+6,7.:/;/<,;-;,:+;+;+<,};+z;*z;,w9*v8)u7(t6)v4&;1F<NBJ=H<OBSHRIOITOSQVS]ZYU[Tl[}X~^alxRLX46D#=J.LZ@eqYeoW]eMPU>EI0?C(=@#:<$89';<.8:/9<1=A36?,<I/Pb<dzKmNvRtPsMqNrSpPuQpLnLpOuVy\}`|`pUfM\E\EeMiQfN_HcRZLSxEi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`QjaRjaRjaRjaRjaRjaRjaRj`Vk`\k__k`^k`\k`ZkaXkaWkaUkaUkaUkaUkaUkaWkaWkaXkaWnbRmbPjbOjbOhaNe^K_ZGYVERO>MK<GH:DF8CE7BD6@D5<C3<H49B-FJ3LF0O:%qL9cO^NA5SLc_^^SUJODHAA919-7+7+8-:/;0:0>4>4>4>4?5?5?5>7?;B>D>F=F<I>M@PDSHPGMGIEGBC?A=B=FBD??7=0>.C0G3I6F4E3C3B1A0}@.zA.|?-:,8,9+:,:,;-;+;+:+:)8)8*9,;/=/<0:/8.9/:.:.:,9+8*7)7(6)6*7+8-9/<0<.<-;,9*:*~9*}:*};+|:,z;,y;,w9*s8*q6(r7)u5)D8H=K?H:I<ODTKTLQLTPQOSO\X_Xh^~jpfuWYh?CR+?O*P`<crQetU\iKNX=CL1?E+>B)=A(;='78(:;-79.9<1=A37@-<I/Oa;bxIlMvRuQtNrOrSoPqOoMoMsRz]|az^u[cJ^E[D_HgOjPfL`HbQY~KRwDi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`QjaRjaRjaRjaRjaRjaRjaRj`Tk`Zk`\k`ZkaXkaWkaUkbSkbSkbSkbSkbSkaUkaWkaWkaXkaWocUnbRkbQkbQkbQhaOd]M`ZJXRBRO>NK<IG8GE6DE5BC3>B1=I1?G/LG1S>+g=-ZL_S>43+?9XUigdeRUJNNPIAF<@6>4@6D:G=G>JAJAJBJBKCKCKDKESRTTSRROSLSLULUNLHIFEBC@B@C@EBFDJFE@>7=2?2B1E3G4E3C3B3@0?1~?0z?/|>/:.9.9.9.;-;-;-;-9*9*9+:*:+;-<.;/;/9-9-:,9,8+8*8*8)8)8(8)9*:,:-;-:-:,9+8*}8)}7+|8+{9+z8,y9-x:-v8+q5*o5)q7+t9+H;I<I=I;K?RFWMXOQMUQRPVQ`YbWg[zdnrQZi@JY0AR(IZ0Wi?dvNj|VXiEL[:?L.:D)<D,>C-<A-:=,89+:;-68-8;0>B47@-;H.L^8_uFiJtPtPtNrOsTpQnMmLpPwY|az`rXiQZA\EaIeMgMgKhJfLcPY{IRtBi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`QkbSkbSkbSkbSkbSkbSkbSkaUlbYlbYlbYlbVlbVlcRlcRldQldQldQlcRlcTlbVlbXlbXlbXocUnbRkbQlcRlcRkbQg`Pd]M^WGYSCSM?MJ;KH9GE6EB3?B/;H.?H-OC-a=-E:XRNJ,+:9=;SRpnvvehX^^_UQPFG@C:D=G>GAG?HCJBHDJCJFKDKGKGHHGIHHGGHDHDGBFBBAABBABBCBB@A>A?JGC?<6>3@3A0A0C3A2@1?1=1<0<1=1=1;1;1:3;1;1</<1=/</=-<-;,:,9*8+7):.8.9-:/;.=.</>.9)9(:*:+;,;+;,:+:,9+7)~6({5){5){5)z6)x6*x8,w9,s8*p4)o5)r:-v<0M@K<J<M=QCVHXMWNNITOVR\Ue\{^PfVF`^GEO->N)?O(J\2_rEk~QexKXj@M_7@Q-6E&7D*=F1=D4:>07;-8:,:;-68-8;0>B47@-9F,I[5[qBeFrNsOsMrOsTpQmLoOsUx\z`s[iQ`HYB^GeMgMfJeGgGhLaNXzHQsAi`Qi`Qi`Qi`Qi`Qi`Qi`Qi`QkbSkbSkbSkbSkbSkbSkbSkbSlbXlbVlbVlcRlcRldOldOldMldMldMldOldQlcRlcTlbVlbVocUmaSkbSlcTmdUlcTi`Qf_Ob[K^WGXQARL<OI9JG6IC3AC.:G+@F*U@+xG9PLHH8<39AE?@JIb`qpnpbeZ\QNLDD?B;D?E>B>@9C?C=C@D?CAD@ECDCADADDFGHIHJIIIGHACADBEBEAA@>=:=:FF=<83;2@4?1>0@1</<0;1:08193:4;4;3<3:4<3<3}=1}=3|<0|<0|=.|=.{<-|:,{9)z8*{7*:.9.9-9.9.;.<.=-9):):*;*;+<*;+~;*8*8,~6*}5)|4(z4(z4*y5*u2)v6,v8-r6+o3)o5*s:/x@3PBN?N=Q@VFXIUJRIOITNTO\VfZn[JPK7EK1AN0KZ9WgC`rJgyOdzLVl>G]/AV-7H$1@!6B*=F5<D98=67:39;.;<.68-9<1?C57@-7D*FX2Vl=a}BoKqMsMrOtUqRoPqQuWvZsYjRbJ[E^H`IcKeKfJfHfFeI`MWyGPr@i`Qi`Qi`Qi`Qi`Qi`Qi`Qi`QkbSkbSkbSkbSkbSkbSkbSkbSlbVlcTlcTlcRldQldOldOldMldMldOldOldQlcRlcTlcTlcTnbTmaSmaSmaSmdUlcTjaRg`Pd]M`YIZSCUN>PK8MH5ID1DC.@F*DD([B,TG\X>A/3IN?E;>;<FGZ[efY[GHJGEBB?B>FBFBB>>7D=D=D@EAEBECDEDF?C@DBEEEGGFFBC>?BD@C>A=>>>A?C@ECBB9850;4?6>3=/?2</:0:081838394;592:2:2;2~<0~<0|<0|<0x8,y9-z:.z:.{<-{<-z;,z;,};/9/7.7,6*5*7*7(8*9*;+<-<-=,~<,};+}9,}7-|6,y5*z4*x4)x4)x5,r2(u5+v8-r6+n4)n5*t;0xB6UGPBO@SDWIVJRGNGTNUNRKXMdSeZDGK2=J,IX9ZkIgxTcxQYnESh=Nc8J_4:L&0?,95>)=C5<B8:<79<5;=2;=079.9<1?C58?-8B)EU1Uh;azCnMrNrNrQsSqRrUuXv[tZoUfN^H[DdNaK`HcIfJgKeEaE`MWyGPr@i`Qi`Qi`QjaRjaRkbSkbSkbSjaRjaRjaRjaRjaRjaRjaRjaRkbSkbSkbSkbSkbQkbQkbQkbQlcRlcRlcRlcRlcTlcTlcTnbTk]Pp`QtdWrdWnbVj`Th`ShbTgaSgaQc]M[VCVQ=SN8NH2GA)KG,I?$bI3gWxmleYWOOBEBEDGFHHKJKLMKMEEDEEDFEFBC=C<F<D8E9E<E?D@CCAD?CBFBDCDDEDEFDEDDDCCB@@??>?>@=@=C?B?>:9370:0=2>3>2?2?3=2;393938192;0<.<.;-;/:.:.:.~:-~:-~:-~:-};/};/};/};/}90}90~80~8.7.7.7.~8,8,~8,}9,|8-{9-z8,x8,x8,x8.x8.w7-v8-v6,t6+s5*q5+m1'r6,n4)m3(o6+m4)q8-I=SHSJRGRHPHQJQKRLTMTK[NcQo_HYU:MV7O_;j~YbxQYoHUjCRg@Mb;IY5CR17D&4>#2:#6;'<>0@B5@@6<>358-39-4:.7:/9=/;?.=B,<E(S_;arFnRsUrQrSsSrUuZ~e~epYbK^G^H^G`IbKdMfNeMcK`H^G_LTvDKm;i`Qi`Qi`QjaRjaRkbSkbSkbSjaRjaRjaRjaRjaRjaRjaRjaRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTnbTrbSqaRrbUqcVrfZogZmeXjdVgcWkhYoiYlgThcOc^H[U=RL4PJ0H>%Q?)kP=XGNBE=D?WVTTQQPONMMMLJKJTTHG=>=:B@EAB;>4D9E9F=G>FBDDAEAEBFCDCDDEDCFDFDFDEAD@B?A>A=A=A=C?E?C<>6:090:/<0<0A2~@3~>4<3:3918190;.<-;,;,;-:,:,:,9-9-9-9-~:/~:/~:/~:/}90}90}90}90}90}90|90|90|90z:0z:0y9/y9/y9/w9.w9.w8/w8/t8.s7-r6,r6,p6+p6+k1&q7,m4)l3(o6+l3(p7,~H>RISLQJPJQLPMQNSOOGSH[K{ePsiPhkLfqQgxT^tMXnGPf?La:K_:K\:GV7CP4<F-8@)6;'7:)<=/?@2>>2;=04:03;05;16<0:</<?.>A,>D*Q[9^mDkRpRpSqRsSsVx^|exakT`I]F]F\E`IaJcLeNdMbK`I^I]LRtBIk9i`Qi`Qi`QjaRjaRkbSkbSkbSjaRjaRjaRjaRjaRjaRjaRjaRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTnbTqdTo_Pm]Pm_RqeYog\ldYhbVfbWpl`{xi~{jyizubpiVe`JTT<FF.C>(MB.S@/U8(]7*l=3n70u91~;5@:IBPJXPZR^YSNGEB?DBFCD@@:A;C<E>G@GCFFEFDFCDCDCDCDDEEEECECDBDBD?C>C=C=C=C>E@E?B<>5:18-9,;-@2@1~>2=1:19181:0;.;,;,;,:,:,:.:.9-9-~:/~:/~:/~:/~:/~:/}90}90}90}90|90{8/{8/{8/{;1{;1z:0y;0x:/x:/x:/x:/t8.t8.s7-s7-r6,q5+o5*o5*j1&o6+m4)k2'l6*i3'm7+}G=PIPIPJQLRMSNUPVPWO[P~^OtbNoiQorUlwYfwUQeBK_:EY6DU3EV6GV9GT8ER8?I0<D-9>*7;*:<.<>0;=/9;.6<25=26<26<0:</<>0=@-=C)MW5Zi@f|MlNnQqRuUtWz`w`nWcL\E\E\EZC_HaJbKdMcLaJ_H]H[}JPr@Gi7i`Qi`Qi`QjaRjaRkbSkbSkbSjaRjaRjaRjaRjaRjaRjaRjaRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTnbTrdWoaTm_Rk_SkaWlcZle[jf]jf]xtix~r}zg`cNOT>DG2FE1HC0F=,L<,VC4P9+R6*V4*Y5)\6+a9/e=1m=1KBSJUONKFDABDCFF@>A?B>E@ECFDEDEDDDCDCDDDDDEDEBFCFBEAD>E>D<D<D=E>D<F?F>A8;18,9+<-@0@1~?0=/:1:/9/:.:-;,;,:+:,:,9-9-9-9-~:/~:/~:/~:/~:/~:/}90|90}90{8/{8/{8/{8/x8.{;1y;0y;0y;0x:/x:/x:/v:/s7-s7-s7-r6,q5+o5*o5*m4)j1&o6+l3(h2&k5)h2&l6*|F<OGOJPKRMSNVPWPZQ]RaUy_PiZGd_IdhO\fKN]@EU8AQ4=M0<K.?M3CQ7FR:GS;BL4>G2:A/9=,9=.9=.8<-7;-7=36=56;46<2:<1;=/<?,<A*JS4Ve>bxIjLnQsTwWxZ{ar[eN\EZC\E\EZC_H`IaJbKaJ`I^G]HY{HNp>Eg5haQhaQhaQibRibRjcSjcSjcSibRibRibRibRibRibRibRibRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTlcTrfXth\sg[mcYjaXle]snhzwp~wz{kcfSOR?GJ7EH5BE2BE2EH5KL<JH9GD5D>0A9,A7+@6*F4(S5*qB8PHPKIGGIEIBE@B@BBACBEAEADADADDDFDFDFDDEDEDDCFBFAF>E=E=F=E=F>A:C;E=B9>39-;.</?0?/>.=-;/:-:-;.:-;-:,:,:,9+9-9-~:/~:/~:/~:/}:1}:1}:1}:1|91z:1|91y90y90x8/x8/v7.y:1y:1x90v:0v:0u9/u9/t:/r7/q6.q6.p5-o4,n3+n3+m4+j1(m7-j4*h2(j4*f2'j6+}D;NGNHQJTLUOWPYR[Q{YMv\OkZJ]UBYXDY^HOYA?K3:H/7E.4B+5A+8D.=I3CL7EN9BK6?H5<E2:A/8?/7>.5<,4:,5<45<56;56;49;0:</;>-;@)GP1Ra:`vGiKoRuVyYy[x`nW`IZ}C[~D^G^G]F`IaJbKbKaJ`I_H^IW|ILp@Bf6haQhaQhaQibRibRjcSjcSjcSibRibRibRibRibRibRibRibRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTlcTkaUndZpf\lcZkd\rmg|ľrfcTPQ?FI8>E3;D1:F28E38E38C2:B3<B4@C8CE:GE9>4(P:/e?6EAPOX[QVCIFJEFFFEDEBDBD?CADDDFDFDFDCDCDCDCEAFAF@F=E<F<G=E=?8@9C:C9A7=0=/=.>/?/>.=-<-;-:-;.:,:,:,:,9+:+9-~8,~:/~:/~:/~:/}:1}:1}:1}:1z:1z:1y90y90x8/v7.v7.t8.w8/u9/u9/s9.t8.s9.r8-r8-q6.q6.p5-o4,n3+m4+l3*j4*h2(l6,i3)f2'h4)e1&i5*{B9MGMHPJTLVOXNYO|\Qs\Nk[L`WFVSBPSBJQ?@I64@,3<+2;*09(09(2;*5>-9B1<E4?H7?H5>G4:F2:C25@/3>-1<,3:33954954928919;.;>-;@*CL/O^7]sDiMpSwYyYwYqYfOZ}CX{A\E]F]F^G`I`I`I`I`I_H^G]JV{HJn@Ae7haQhaQhaQibRibRjcSjcSjcSibRibRibRibRibRibRibRibRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTlbVj`VjaXkdZkg^upjμzym]_YIKL:@E1;D/>J6=H7=F5;C4;>5:;3983880==3C<2N71a84HH]_`dWZQSNOMKKJHGFDDABBCDDFDFCECEBDBBCBDCD@D?F?E<F<G=E=@:@:B:C:C:@4;/9+=/>.>-=,<,;,;,<-:,:,:,9+9-9-~8.}9.~:/~:/}:1}:1}:1}:1}:1}:1z:1y:1x90x90w8/t8.s7-r8-t8.s9.r8-q8-r8-p7,p7,p7,o6-o6-n5,n5,m4+l3*k2)i3)g1'k7,h4)e1&h4)b0%f4)zA8MGMHPJULXNYOxZOr\Nk^N^WGRPAKN=CJ:9B12:+08)17+17-06,/5+/5)08+2:+4<-9D4;F5=H7<I7;F56C13@,1>-.800621622717829;0:<.:?)?H+KY5[qChLqVw[wYsVgP^IUx@WzB[~F[~F[~F]H_J_J_J_J^I^I]H]JUvIJk@@a6haQhaQhaQibRibRjcSjcSjcSibRibRibRibRibRibRibRibRkbSkbSkbSkbSkbSkbSkbSkbSlcTlcTlcTlcTlcTlcTlcTlbVpg^ng_lgatqj}ub^\GKM7CH2AI2AI4@G5BD7AA7B=9C97?:69<5>?7B71J.+d66QRginm\\ZWVSQNLKHHCDBCCFDFDFCECEBDBBBBDCCBC?D>E>F<F<E=C=A9B:D;E:A6:-5&</=.=-=,<,<,<*<-:,:,:,:+9-~8,}9.}9.~:/~:/}:1}:1}:1}:1}:1{;1y:1w;1x90u9/t8.s9.r8-q7,r8-q8-p7,n8,p7,m7+o6+o6+o6-o6-n5,m4+l3*j4*i3)h4)f2'k7,h4)c1&e3(b0%e3(xB8MGOIRJUMXOzZOq[Mh\LZTDIJ:?C4>D69A208+/7*6<247058157247025.06,08-19,6A3:E5=J9>K9<I77F32A,1>-,6..400511606718:/:<.:?+<E*IW4YoAgMpVv\uXpU`IX{CSv>WzB[~FY|DY|D\G_J_J^I^I^I]H]H]LStIHhA?]7icSicSicSicSicSicSicSicSicSicSicSicSicSicSicSjcSkbSkbSkbSlcTlcTmdUmdUmdUmdUmdUmdUmdUmdUmdUmdUldWibZgd]vsnʵƶibbFEH-DH/CG0FE1GD5F<3C60F42H:9>=9>?:B:7I75cGFjjœ譩ҋtn]XSPONJLFKFKEGIKDF;>>@GIDG:=@@@@A@B>C>B<A;A9C>A9@9A9B8@5:.8*=0>/>.>-=,<+=*<,:+9-9-~8,~8.|8-|8-|8-|90|90|90|90z:1z:1z:1z:1y=5w<4w;3u:2t91q8/p7.p7.o6-m7-m7-l8-m7-l8-m7-m7-i2+m6/p92o81k4-g2*g2*h3+e0(i7.d2)]-#`0&_/%b2(s>6OJPKQJRJ}YMv_QfYITN>DE5>E5:C25@04</3;04:04:068378366446135016//6..6+.9+2=-6C2:G6:I68G44C.1?.*4+,2.-2..3-45/79.:</:?+6>&DR1WlChRs]w_rWkR[~DXyDTu@Tu@WxCZ{F[|GZ{F^JbNbN^J\}H_K`L^~MTsJFd@<W4icSicSicSicSicSicSicSicSicSicSicSicSicSicSicSicSkbSkbSkbSlcTlcTmdUmdUmdUmdUmdUmdUmdUmdUmdUmdUldYgd]onjͲcgjKLQ3GJ/EC.GB/H>2I:3L95K<9?:7BA?MHE]RPyjgβſ쳪͂|c^VVRSHMADDEEEHHJKEF<><>AC????A@A@B>B=A<@9A<@;@9B:C;A6;18-=0>/>.>-=,<+<,<,:+9-9-~8,}9.|8-|8-|8-|90|90|90|90z:1{;2{;2z;2w<4u<3u:2s:1r90n8.o6-m7-m7-l8-l8-l8-l8-j8-l8-l8-k6.n70o81n91l7/i4,g2*e3*c1(d4*_/%^.$b2(^.$`0&p>5JERLXR~XOrVKdRDQJ:>?/:A16A05@03>04<14<15;17:379477577557246116//6./7,.9+1<.4A08E49H58G44E24B1.8/.5..3--2+23+46+8:-9=,7?(DQ3WlEhUt`wbpYgPY|DWxCTu@Tu@VwBYzEYzEYzE[|G_K_K\}H[|G^J^J^{MSnKF_A9R4icSicSicSicSicSicSicSicSicSicSicSicSicSicSicSicSkbSkbSkbSlcTlcTmdUmdUmdUmdUmdUmdUmdUmdUneVneVlfZed_y{xشğl`gEQX7DG,DC.JD4LD7KA8I>:C;9SJKia_wvecBEDIRVUTMKDACAFEEFDDCD=?>@@?@?B@B?B=A:@:@:B:E<D<B7<29.<0=0>/>.=-~<,=-=-9-9-~:/}9.}9.|8-{8/{8/}:1}:1{;2{;2{;2{;2z;4x<4t;2q;1r90o9/n8.l8-l6,k7,l8-j8-j8-j8-j8-i9-j8-j8-n91m80m80m80m80i7.f4+c1(d2)a1']-#_0&c4*\-#_0&sD<}PJVP~YQpTI^J?OC7?<-46(2;*0;+1<.2=/4<14<15;17:379479668357257227007/08-.9+0;-2?.6C27E48G48G49F54>33:2/4-,2(/0(13(57*6:)6>'DQ5YmJkZwfwflZ_KWxCWuCTr@Tr@VtBXvDYwEYwEZxF]{I_}K]{I]{I_}K^|JZwKPgJAW@3I2icSicSicSicSicSicSicSicSicSicSicSicSicSicSicSicSjcSkbSkbSlcTlcTmdUmdUmdUmdUmdUmdUneVneVneVneVmg[jkfڴefmLMQ6FH0HJ5KI:HD9D@7OGDj`_収cd@?PKTMPHF@GBMJKH@?>>???>A?A?B?B=B=>9@:C=E?E>A9=5;2<1=0>/>.=/~<,=-=-9-9-~:/}9.}9.|8-{8/{8/~;2~;2|<3{;2{;2{;2z;4x<4r90o9/o9/m9.l8-k7,j6+h6+i7,i7,i7,h8,h8,h8,h8,h8,m;2l7/j5-i7.j8/j8/f4+a1'e5+a2(].$a2(b3)Y* a2(yNE\VvWRiNGWC:I<3@:.:;-8<.08)/:*3;.4</5=25;169069079468368349238139/19.19..9+/:,0=,2?.5B17E4;H6<I89C87?428.-3'.0%/1$24&48'4<'ER8]pPrd{nwifXU|ESsATr@Sq?Sq?Tr@UsAVtBVtBWuC[yG]{I\zH^|J_}K\zHWrIJ^E<M;.?-gdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSicSjcSkbSkbSlcTlcTmdUmdUmdUmdUmdUmdUneVneVofWofWng]qqoҭ}bY]BGL5FK7FJ9CG9AC8c^X}z騤hcLAPDYN[QQHD=A<DA@=@>@?A@C?C?C?C=?;A<E@E@C>@9>5=3<1<2=1=0=1~<.=/=/~:/~:/~:/}9.|90{8/{8/{8/|<3|<3|<3{;2z;4y:3y:3w;3n70m80l7/l7/k6.h6-h6-h6-i7.h8.h8.g8.g8.g8.g8.h8.k92h6/f4-g5.i70h70e4-b1*c2+b3+_0(]1(]1(V*!b6-{ULtYRaNHN?8A7.=6,;9-9;.9<139-3;.5;/6<06<07:/58-47.69049238139/39/2:/19.19,.9+.9+/:,0;-3>.6C2:E5<G7=E8:B55;/06(02%/1$13%15$2:%GS;buWwk|rqg\QJp=Oo>Qn>Qn>Qn>Qn>Qn>Sp@Sp@WtD[xH]zJ]zJ_|L_|LZwGRlECU?6D7(6)gdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSicSjcSkbSkbSlcTlcTmdUmdUmdUmdUmdUneVneVofWpgXpgXng]lnmz׹ĥregOMP;GK:FM=GOBKQG{{sžؓeSJ:TFWIF;@8KEC>C?B?C@C>C>D>B=B<C?DAD?A==8;5<4;3<2=3=2=1~<0=1=/~:/~:/~:/}9.|90{8/{8/{8/|<3{;2{;2z:1y:3x92w81u91n70l7/l7/j8/i7.i7.h6-g7-g7-g7-f7-f7-f7-f7-f7-f7-h70h6/g5.g5.g6/h70g6/f5.a2*e6.^2)\0'`4+a5,i=4uSJXG@E>6<5/95,;8/8:/57,36+69.5;/7:/69.69.58-57,36+28,19,28.19,19.19,19,19,.9+.9+.9+/:,0;+3>.6A17B2<D5:C28?/5;-46)24'13%04%07%HT>ex\umtlf_RwKBh9Kk<Nk;Pm=Pm=Nk;Nk;Ol<Qn>VsCZwG]zJ^{K_|L_|LVsCNg@<J9/:2$.&gdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSicSjcSkbSkbSlcTlcTmdUmdUmdUmdUmdUneVneVofWpgXqhYoh^hikmtzƯ}un[ZWFPQCSVK[bZeld񪔼o[VDRCPDLAJAG?E?E@E@E>D=C<B<C?E@EAC==9;5;5<6<3=4<5=4<3~<0=1=1~:/~:/~:/}9.|90{8/{8/{8/{;2{;2y:3x92w81v70v70s7/n70j8/j8/j8/j8/h8.h8.h8.g7-f7-f7-f7-d8-d8-d8-f7-g6/h70i81i81h70i81j;3l=5g80k<4b6-a5,oC:xLCtI@nMDC9056.45/8918;247.14+25,58-58-57,46+46+46+46)37)/7(.9)08+.9).9+.9)08)08)19*08)08+/7*08+19,3;.4<-9B1:C0;B0:A1:<.68*24&/3$29'IU?cu[mgfbWyTInE?d8Hg;Li;Nk=Nk=Li;Li;Mj<Ol>UrDYvH[xJ]zL^{M\yKQn@G_;6B4+4/#)%gdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSgdSicSjcSjcSjbUlbVlbVmcWmdUmdUmdUleUmfVngWogZnh\oh^mjekormtzη|ubb_NXZL]cWmwn|}̻pQDSFSHC:J@H@G>F>E=D<C;C;G>G>G>C;>5:2:3>6=5=4=5=4<3;0;1;1~:/~:/~:1}90|90{8/{8/{8/z:1z:1x92w81v70u6/u6/q6.m80k90j8/j8/i9/i9/i9/h8.g7-f7-g7-f7-f7-f7-f7-f7-f5.j81m;4k:3j92j:0m>4oC8l@5oD;d<2c=2zVJdZyWMbLA>:13814927<54:0/5+25,9<336+25*24)03(13(25*46+47,.6),7)/7*-8*/7*/7*/7*/7*19,08+08-/7,/7,/7,08-08+7?09B1<E4=D4;A38<.26'-4$2;*JVBcr[h|a]vXOmKFfAAa:Hd;Kh<Nk?Nk?Kh<Jg9Li=Nk=TqEWtHZwK[xL]zNZvMNjAC[;2>4*00!''heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjdVjdVjdXldYlcZmeZmeXmfVg`NjeRnkXol]he\feasqrԶ|qtY_dMbkXr}lا`XD=NEMCF<D9E<I@KAH@G<G8H8J8H8E5B4B5C5B5B6@4>3<2:1919191~:1|91{80z7/z7/w7.v6-w7.w7.w8/w8/v7.u6-q5+n3+l7/i81i81h70h70g6/g6/g6/f5.g6/i70i81h70g6/e4-e3,h3-j5/m80k90j:0i;.i=0kA3gB2jI:dH:v_O~k\xjoRJ=79.4:04:039/39/39/28.28.17-17-36-06,25,/5+14+/5+/4-.5-/4-.5-/4-/4-/4-/4-05./4-/4-.3,.3,/4-/4-/6.1;23=26@58B79D67B45@03>-4?.DQ=WeN[kQPbHEX<@T8BW6Ic>Ke>Kf=Kf=Je<Je:Lg>Oj?UpGYtK\vO]wP]wRWqNHb?;O6&1+&+.$),heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjcYkdZlc\md[meZmfVidQjhSmjWjk[gg_lll~ЯvkqUYaI_kUto~uKAM@K>L@K>E9=4?6E9F7J7L:J7F6C2C6E7C7B8A7>5<4:39193~92}:2z:1z:1y90x8/v7.v7.u6-v7.t8.t8.t8.r6,o5*m4+l7/i81j81h70i70h70g6/g6/e3,e3,g5.h6/j81j81j81k92k60l71k90k;1k;/j>1j@0iD2gH6kP=gRAufSuesrKL<69.39/39/39/28.28.28.17-17-17-17-06,06,/5+/5+/5+/4./4./4./4./4./4./4./4.05//4..3-.3-.3-.3-/4./6/.80/:21=34@66B66B66B45B16C1CP>P]IR`IIW@AO6BP7EU:Jb@Jd?Ke@Ke>Ic<Hc:Id;Je<SnEXrK\vQ]wT[tTTmOC\>6I5&1-',0$)-heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjcYkdZlc\md[meZmfVmhUkiTmjWjk[kkcwwwۿʫyuy`kpZt{i؞L=RBL;@1G;YMUJ@4D7H:K=I;B7?3@7E;@9A9A8?6~>5}=4<4}=4z;4x<4w;3w;3u:2t91t91t91r90r90r90r90o9/n8.l6,k5+l7/j81l71j81k60i70i70h6/g5.g5.f5.g6/h70i81k:3k:3l;4j;3i:0h<1k?2jC4iD2fE2fI7lVAjYGujVm{mEF658-28.28.28.17-17-17-06,17-17-17-06,06,/5+/5+/5+/4./4./4./4./4./4./4./4./4./4..3--2,-2,.3-/4..5.+5-+6.-9//;12>24@46B47D38E3?L:ER>CQ:;I28F->L3DT9J_@Jb@LdBKc?Ia=G`9F_8G`9RkDXpL]uS^vVZqTPgK=T8.A.&1-',0%*.heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjcYkdZlc\md[meZmfVniVljUlkWlm]pqiؼǫ}ſñpP@O?XJM?E9G<A6E;I?G=@9<4=6A<?;@<@:}@;z?9y@9x?8x?8v=4v=4v=4u<3s=3r<2r<2q;1o;0o;0o;0n:/k9.j8-j8-i7.m82n72m61l71l71k60i70i70l:3j92h70f7/f7/f7/h91f:1j?6f>4e=1f>2hC3iE5fG3cG2cJ6hV@i\IskVozpq_9=,47,28.17-17-17-06,06,06,17-17-17-06,06,/5+/5+/5+.3-.3-.3-.3-.3-.3-.3-.3-.3-.3--2,-2,-2,-2,.3--4-*4,)4,*6,+7-.:.1=14@25A36C2:G5<I78E12?+2@)8F/>N4DX<E]=K`AJb@K`?G_;H^:F^:SiEXpN`uV^uXZnSLcI9M4):(%.+%*.$)-heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjcYkdZlc\md[meZmfVlgTkiTnmYop`tumؿʱ½ŜbPJ:L<P@L>@7C;F?D=>;:7:8>;=;?<@=}@=xA<tB;rC;rC;q?6s>6s>6r=5r=5r=5p>5o=4n>4m=3l<2k;1j;1i:0i:0j:0n72p62p62m61m61l71i70i70l;4k:3h91e90e90e90e:1d<2fB6cA5cC4dD5dG5dI6bI3_I2^L6eV?jbMrmWor[`L3:(28,28.17-17-17-06,06,06,17-17-17-06,06,/5+/5+/5+.3-.3-.3-.3-.3-.3-.3-.3--2,-2,,1+,1+,1+,1+-2,,3,,6.+5-*4+*4++5,.8-0;-2=/2=-5@/6A05A-1=)1=)5A-8F/=O5@T8FY=H\@J]?I^=K^>K`?TgG[pQcvZauZYkSJ]G6G4&4%$-*$),"'*heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjcYkdZlc\md[meZlfVjgTkjUlnYorasvmθκƶøͧkX[GWEL;D:D<E>E?A>=::9;9=<?=?=}@;wB<rC;oD;oD;p?8q?6q?6q?6q?6p>5o?5o?5o@6n?5m>4k<2h<1h<1h<1l<2o83q62p62p62m61l71j81i81h70g80e90e:1d<2e?4f@5dB6^B4aG8cL:dM;cM8`K6]K3]M4]Q9bX?mhRss[nv{eFO:4=*39-28.28.28.17-17-17-06,17-17-17-06,06,/5+/5+/5+-2,-2,-2,-2,-2,-2,-2,-2,-2,,1++0*+0*+0*+0*,1+,3,.5.,6.*4+*4+*4++5,-7,.9+-8*0;+4?/5@/4?.3?+3>-3@,7F/9K3@O8BT:GW<H[?M]BM`DUeJ\oSdtZ`rZXgRGXE4B1$2%$-*$),"'*heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjdVjdVjcYkdZlc\md[lfZlfVliVlkVkmXkn]lrhy}оλwbQ:\HN>J=I>I@G@D>=::7=9>:?9A:xA:tD:pF:pE<p?8q?8q?8q?8q?8q?8p?8p?8qB:pA9n?7l=5i=4j>5j>5n=6o83r73p62p62n72l71j81i81d8/d90c;1d>3d@4cA5cA5_C5ZE4_N<gVBhWCcS<^O8[O5\R7]V<]Y>nlUtv^|kcmU2>(6B.3;.39/39/39/28.28.28.17-17-17-17-06,06,/5+/5+/5+-2,-2,-2,-2,-2,-2,-2,-2,,1+,1++0**/)*/)+0*,1++2+-4-+5-*4,*4,+5,+5,,6+-7,,6+/:,2=/6A17B27B15@04?.2?-4C.:G3=L5AO8DT:JX?L\BTbI\kTcqZ^mXUbPDRA2>0#/%&/,&,,$**heVheVheVheVheVheVheVheVheVheVheVheVheVheVheVheVjdVjdVjcYkdZlc\md[lfZlfVolYmlWjlWgkZflbr{x׭oYWDQ@O>OAOBK@C<<5>7?6?8A7{B7uD6qE8qE8p?8q?8s>8q?8q?8q?8q?8p?8sB;qB:o@8m>6l=5j>5m>6o>7o83q73o83m82m82i81h91f:1f;2d>3d@4bB5`C5]A3\@2WB1TG4[S>f^Gi^HbX?ZS9ZS7\W:ZV;XW;kmUsw^u}fUaI&28D03;.4:04:039/39/39/28.28.17-17-17-06,06,/5+/5+/5+-2,-2,-2,-2,-2,-2,-2,-2,,1++0*+0**/)*/)+0*+0*,1++2+)3+*4,+5-+5,,6--7.-7,,6+.8-2<16A39D69D47B46A10;+2?-5B09F2<I5@N7FT=JX?R`I[hTanZ\iWQ^MBN@/;/",#+1-(.,&,,heVheVheVheVheVheVheVheVifWifWifWifWifWifWifWifWkeWkeWkdZle[md]ne\mg[mgWqn[kmWknYkr`jrgpyvѺibKO9T?ZFRAJ:M?<0=0>2=/x=/t?/sB3tD6r=5r=7t=8s>8u@:u@:t?9q?8sA:q@9q@9q@9p?8n?7o>7o>7k92m82l:3l;4l;4h<3g<3c=2c?3^>1dG9cG9T=-N9(M8'@1WQ;PN7KI0OK2]Y>ieJeaDVU7XX<]`CosZzfdlU=I1-9#2>*4</5;14:04:04:039/39/39/39/39/39/28.17-17-17-06,16016005/05//4./4./4./4.,1+,1+,1+,1+,1+,1++0*+0*.5.-4--4-,3,-4--4,.5-.5-+2*-4,07/5=29A6=E8?G<?J<7B25@/3>-1=)2>*9E/BN8IU?O[GVbN]hWYdTLWI<F;/9.)3*)/+(.*'-+heVheVheVheVheVheVheVheVifWifWifWifWifWifWifWifWkeWkeWkdZle[md]ne\mg[khWonZjlVknYkr`jtiq|x౗u\[CZBYCVCR@G5F6E4D3|C2wB0s@/o>/u@8s>8u>9u@:t?9o=6p>7sA:q?8p?8p?8n?7o>7m>6n=6m>6k<4l=5m>6k?6j?6gA6eA5bB5dG9[A2^G7^I8N=+F7$G8%>6!LL4GK2DG,DD*MM1\[?baC`aBYY=dgJsw^sy_X`I:D,/;%7C/6>16<26<26<25;15;15;15;15;15;15;14:04:039/39/39/27127127116016016005/05/.3-.3--2,-2,,1+,1++0*+0**1**1*)0))0))0)*1*+2*,3+.5--4,.5-07/4;39A6?F>BJ?;F8:E57B14?.3?+6B.<H2@L6LXDS_KYdTWbRLVK=G<1;2+5,+2+*0,)/+heVheVheVheVheVheVheVheVifWifWifWifWifWifWifWifWkeWkeWlcZmd[md]ne\mg[khWmlXimVjoYktaiuiq}y㿧jYBQ;[F]IS?F2u>)r>)s@+tD0vE4q?4n<3q<4tB9sA8o?5qA7xH>n>4m>4m>4k?4l=3j>3l=3j>3g?5gA6gA6gC7eC7cC6`C5^D5bK;UB1ZI7`S@RG3C;&E=(FA+AE,BH.AE*<@%?B%NN2_`AijKaaEnqTvzagmSJO94<%4=(=F38>28>48>48>47=37=37=36<28>48>47=37=37=36<26<26<25:449349349338238238227105/05//4..3--2,,1++0*+0*).().().().().(*/)+0*,1+160/4.,1+,1+/4.6;4=B<AH@@K=>K:<I78E34A-2?+3A*5C,DQ=KXDQ^MQ^MHTH<H<2>4.8/-4--4-,3,gdUgdUheVheVheVheVifWifWifWifWifWifWifWifWifWifWkeWkeWlcZmd[md]mf\mg[jiWkmXimVjoYjs`hthm|wڻּҽz{R>tJ4uH3vI4zM8}P;yL7nA.e7'{M@sD:qB8sD:oC8g;0d8-g=1i?3i?3i?3g?3f>2f>2f>2e?2b@4bB5`C5_C5_C5[D4ZE4WD3XI6OB/\T?oiSc^HMK4IG0IK3>D*?H-@F*<B&<A#FI,XY:deFmmQxx\tv^[_F@C.6;%8@+<C19?39?59?58>48>47=37=37=39?58>48>48>48>48>48>48>47<67<67<66;56;56;55:45:438238216005//4.-2,,1+,1++0*+0**/)*/)+0*,1+-2,-2,05/.3-+0*+0*-2.2718=9;B:@K=@M;@M;=J68E13@,1?(0>'<I5BO;HUCIVEDPB;G;2>4.:0,6..5.-4-gdUgdUgdUheVheVifWifWifWifWifWifWifWifWifWifWifWkeWldWlcZmd[md]mf\mg[jiWkmXinWiqZgs_drejytܿչйѾϴuawVCjI6lI6rM;uP>mF7iB3gB2jE5nI9nJ:oK;oK;eA1cB1cB1cB1cB1cB1bC1`C3]F6\G6\G6ZG6ZG6WH5TG4RG3PH3NH2fdM~~frrZVX@JL4GM3<E*<F+?H+AG+AF(DG*MN/TU6xw[{z^nnVUU=CB.?A,>A.:>-;>39?59?58>48>47=37=37=38>48>48>48>48>48>48>48>49>89>89>88=78=78=77<67<66;55:449338227105//4./4.-2.-2.,1-+0,+0,,1--2.-2.,1-,1-,1-,1-.210513764;4;G9=L9@O<@O:<K67F/4C,2A*6E.:I4@O<BP??M>8F71?2-9-,6--4,,3+fcTfcTgdUheVheVifWjgXjgXifWifWifWifWifWifWifWifWldWldWlcZmd[md]mf\mg[jiWkmXinWiqZgs_bpcgxrڽѵ˴˺ҿһsrb|]K}^LtUCaD2W:(Y<*[>,X=*`E2`E2`E2_F2`G3`G3`G3]H3\K7\M:\M:YL9XM9UM8RL6QL6NL5QQ9ikS|gmqXSY?FL2>G,<F+<F+?H+DJ.EJ,DG*HI*LM.yx\tsWfdMTR;LI6KJ6FE3<=-<?49?59?59?58>48>48>48>47=37=38>48>48>48>49?59?5:?9:?9:?9:?99>89>89>88=78=78=77<66;55:4493382382/40.3/-2.,1-+0,+0,+0,+0,+0,,1--10.21/32/32/32-4-3?17F3=L7@O:?N7<K49H18G05D-8G0<K6>M:<J97E61?2-9-+5,-4,,3+fcTfcTgdUheVheVifWjgXjgXifWifWifWifWifWifWifWifWldWldWlcZmd[md]mf\mg[jiWjlWhmVhrZfs_cqdhysչ̳İĴɿʴxt^GeO8bL5\H0^J2\J2\J2]K3]K3^L4^L4\M6YN8WO:WO:VP:UO9SN8PN7NN6MO7PT;`fLfoTU^CEO4AK0<F+?I.?I.CL/HN2HM/FI,OP1YX:qmRjfKa\F[V@YTATQ>MJ9BC3=@5;A7;A7;A7:@6:@6:@69?58>48>48>49?59?5:@6:@6:@6;@:;@:;@::?9:?99>89>89>8:?9:?99>89>88=78=77<67<6495273162/40-2.,1-+/.+/.,0/,0/-10.21.23.23-12+1-+9*/@-6H2;M7=O7<N4:L2:L25G/7I1:L6<M::K96G70@3-;.,6--4,,3+cdRcdRdeSefTgeVhfWigXigXhfWifWifWifWifWifWifWkeWkeWkeWldYle[md]mf\kg[jiWikVhmWhrZgt`dqgj{uѸDZžƾüÞu`P7RB)XH/XH.[M3[M3ZN4ZN4[O5[O5\P6[Q8UO7TO9TO9QO8PN7NN6KM5IM4JN5LR8S\APY<@I,;F(AL.?J,DM0EN1JQ2MR4JM0LL0YY=kjNhdIb^E^ZA_ZD`[GZUAQO:KJ8AB4@B5@B5>A6>A6>A6=@7=@79?59?59?5:@6:@6:B7:B7:B7;@9;@9;@::?8:?99>79>89>7;@:;@9;@:;@9:?9:?8:?9:?98?87=94;4382160/4..3/.3/.21.21,2.,2.+2++2*,4))6%$6)=!2F+8L1;O6;M5;M5;M58J29K3;M5<N6<N87H51B0.<--7,.5--4,]eN^fO_gP`hQdiUfiVgjWijXfgUhgUheVheVjdVkeWkeYlfXlfXkhYmg[kg\mf^jf[ieYgeVghVfkUenYbo]dqhsҾϼ·ƏlUN2WN1TK.SJ+WN1WN1UN1UN1TO2TO2TN4SO4QM2RN5QO6PP6MO7KO6HM6GL5JP6FO4AJ-=F'>H&DK*FM+EL*PV4PT3KN/HK,TT8bbFccIZZ@[Y@\ZA][B][B[Y@XV=US:SQ8HF1GD1DA0A?0@>1>>2??5>@5;>59?59?59A69A48C58C58C5:B79A69@88@58?79A69@8:B7:A9:B79@8:B7;B:<D9=D<>E=8B:8B:7A88@56>14</39/271.40/51-7/-9-.;)0@&6G'7M';V+:W+;U0;T4;R8=P:>O<>P::L6@R8EW=FY=DX=@T;5H2+<),6+,3++2*ZgM[hN\hP]iQbjSckTglXhkXghVghVifWifWkeWlfXmeZmgYmgYkhYkg[kg\jf]jf[hfZefVhiWglVfo\erajwnz˹ʿNjlRM0SN0QK+QK+UO/UO/TO1TO1SO2SO2QP4QP4QM2PO3PN5NQ6MO7JP6HM6EM5HQ6EN1BK.?I'BI(FM+JP,KQ-NR/PT1VZ7^bA_bCY\?TW<UU=VV>WU>XV=YW>XV=XW;WV:XT9QK3OI3LG4ID1DA2B@3A?3>@5<=59?59?59A67B48C57D37D3:B79A69A68@58@59A69A6:B7:B7:B7:B7:B7;C8<D9=E:<F;=G?<H><F;;F6<D5:B39?38=67>74>63=40>-3C)9M*BY/Ga1Op;Ln;Li=Fa>BY?<R=;L::K8=O9DV<K^BM`BL`DH\@:Q71D.+5*+2*)0(ZgM[hN\hP^jRbjSdlUglXilYijXijXkhYkhYlfXmgYnf[nhZmgYkhYkg[jf[jf]ieZhfZfgWhiWejTdmZgtco|s˸öƉjPK.QL.QK+QK+TN.UO/TO1UP2TP3SO2QP4PO3QM2ON2PN5MP5MO7JP6IN7FN6HQ6FO2CL/CM+FM,JQ/OU1SY5QY2W_8jpJy[qvVY^@KO4MP5QQ9QQ9RP9SQ8TR9UT8YU:ZV;XR:VP:RM:NI6HE6DB5CA5?A6<=59?5:@69A67B47B47D37D3:B7:B79A69A69A69A6:B7:B7:B7:B7:B7:B7;C8<D9>F;<F;?IA>J@?I>>I9?G8>F7>D8=B;>E>9C;6@74B19I/BV3Pg=XrB^J[}JXuIMhECZ@9O:6G54E2<N8EW=NaESfHSgKNbF@W=6I3/9./6.-4,ZgM[hN\hP^jRblTemVhmYinZklZklZlj[liZnhZnhZog\oi[liZkhYjfZjf[ie\ieZhfZfgWfgUbgQajWerao|s~Ҿ˸Ƴþ÷ǹɊmPJ0RM0SL/SM-TN.UO/UP2UP2TP3SO2PO3ON2PL1NM1OM4LO4LN6JP6JO8HP8JS8GP3GP3IS1MT3OV4V\8\d=grHtUislnuTZaBRV;LN6NN6MM5NL5OM6RP7WS:YU<ZT>XR<TO<QL9KH9GE8EC7@B7=>6:@6:@69A67B47B46C26C2;C8:B79A69A69A69A6:B7;C8;C8:B7:B7;C8;C8=E:>F;=G<=G?<H>>H=>I9?G8>F7>D8=B;=D=9C;6@74B19I/DX5Ri?[uEZ{FWyFTqEIdA=T:2H3/@.->+6H2@R8L_CReGSgKOcG@W=6I30:/07/-4,YgMZhN\hP^jRblTemVinZjo[mn\lm[mk\mj[nhZnhZoi]oi[liZkhYjfZieZie\ieZig[ghXghVchRajWerao|s{ѿɶıþʾŸ̌oRL2TO2TM0UN1TN.UO/VQ3VQ3UQ4SO2ON2NM1PL1NM1NL3KN3LN6KQ7KP9JR:LU:IR5JS6OY7SZ9T[9]c?fnGcszpr{\\bFLP7KM5LK6KI4LJ5PK5TN8VP:WQ;VP:SN;QL9LI:IG:GE9CE:=>6:@6:@69A67B47B46C26C2;C8;C8:B79A69A6:B7;C8;C8;C8;C8;C8;C8<D9=E:>F;=G<=G?<H>=G<=H8>F7=E6=C7=B;:A:7A95?64B19I/BV3Ne;Uo?Tu@RtAPmAE`=9P6-C.+<*+<)1C-<N4H[?PcERfJNbF@W=5H2,6++2*'.&
\ No newline at end of file
diff --git a/test/tiff-roundtrip.ok b/test/tiff-roundtrip.ok
new file mode 100644
index 00000000..0e712ce7
--- /dev/null
+++ b/test/tiff-roundtrip.ok
@@ -0,0 +1,4 @@
+1926073387 101484
+1926073387 101484
+2425386270 41
+2425386270 41
diff --git a/test/tiff-roundtrip.test b/test/tiff-roundtrip.test
new file mode 100755
index 00000000..e7f875cf
--- /dev/null
+++ b/test/tiff-roundtrip.test
@@ -0,0 +1,20 @@
+#! /bin/bash
+# This script tests: pamtotiff tifftopnm
+# Also requires: 
+
+${PBM_TESTPREFIX}pamtotiff testimg.ppm 1<>${tmpdir}/test1.tiff &&
+  ${PBM_TESTPREFIX}tifftopnm ${tmpdir}/test1.tiff | cksum
+
+# test flate compression 
+# Will fail if Netpbm was built without the flate library
+${PBM_TESTPREFIX}pamtotiff -flate testimg.ppm 1<>${tmpdir}/test2.tiff &&
+  ${PBM_TESTPREFIX}tifftopnm ${tmpdir}/test2.tiff | cksum
+
+${PBM_TESTPREFIX}pamtotiff testgrid.pbm 1<>${tmpdir}/test3.tiff &&
+  ${PBM_TESTPREFIX}tifftopnm ${tmpdir}/test3.tiff | cksum
+
+# test G4 compression 
+${PBM_TESTPREFIX}pamtotiff -g4 testgrid.pbm 1<>${tmpdir}/test4.tiff &&
+  ${PBM_TESTPREFIX}tifftopnm ${tmpdir}/test4.tiff | cksum
+
+rm ${tmpdir}/test[1234].tiff
diff --git a/test/xbm-roundtrip.ok b/test/xbm-roundtrip.ok
new file mode 100644
index 00000000..a676a1f2
--- /dev/null
+++ b/test/xbm-roundtrip.ok
@@ -0,0 +1,2 @@
+2425386270 41
+2425386270 41
diff --git a/test/xbm-roundtrip.test b/test/xbm-roundtrip.test
new file mode 100755
index 00000000..2dcb5a13
--- /dev/null
+++ b/test/xbm-roundtrip.test
@@ -0,0 +1,6 @@
+#! /bin/bash
+# This script tests: pbmtoxbm xbmtopbm
+# Also requires: 
+
+${PBM_TESTPREFIX}pbmtoxbm testgrid.pbm | ${PBM_TESTPREFIX}xbmtopbm | cksum
+${PBM_TESTPREFIX}pbmtoxbm -x10 testgrid.pbm | ${PBM_TESTPREFIX}xbmtopbm | cksum
diff --git a/test/xpm-roundtrip.ok b/test/xpm-roundtrip.ok
new file mode 100644
index 00000000..845be5fb
--- /dev/null
+++ b/test/xpm-roundtrip.ok
@@ -0,0 +1 @@
+2425386270 41
diff --git a/test/xpm-roundtrip.test b/test/xpm-roundtrip.test
new file mode 100755
index 00000000..310022cc
--- /dev/null
+++ b/test/xpm-roundtrip.test
@@ -0,0 +1,8 @@
+#! /bin/bash
+# This script tests: ppmtoxpm xpmtoppm
+# Also requires: pgmtopbm ppmtopgm
+
+#${PBM_TESTPREFIX}ppmtoxpm -hexonly testimg.ppm | \
+# ${PBM_TESTPREFIX}xpmtoppm  | cksum
+${PBM_TESTPREFIX}ppmtoxpm testgrid.pbm | ${PBM_TESTPREFIX}xpmtoppm | \
+  ${PBM_BINPREFIX}ppmtopgm | ${PBM_BINPREFIX}pgmtopbm -th -value=0.5 | cksum
diff --git a/test/xwd-roundtrip.ok b/test/xwd-roundtrip.ok
new file mode 100644
index 00000000..011ebd3a
--- /dev/null
+++ b/test/xwd-roundtrip.ok
@@ -0,0 +1,3 @@
+2871603838 33838
+1926073387 101484
+2425386270 41
diff --git a/test/xwd-roundtrip.test b/test/xwd-roundtrip.test
new file mode 100755
index 00000000..e24db7bc
--- /dev/null
+++ b/test/xwd-roundtrip.test
@@ -0,0 +1,14 @@
+#! /bin/bash
+# This script tests: pnmtoxwd xwdtopnm
+# Also requires: pamdepth ppmtopgm
+
+# Test 1.  Should produce 2871603838 33838
+# which is the output of ppmtopgm testimg.ppm | cksum
+${PBM_BINPREFIX}ppmtopgm testimg.ppm | ${PBM_TESTPREFIX}pnmtoxwd  | \
+  ${PBM_TESTPREFIX}xwdtopnm | ${PBM_BINPREFIX}pamdepth 255 | cksum
+
+${PBM_TESTPREFIX}pnmtoxwd --quiet  testimg.ppm | \
+  ${PBM_TESTPREFIX}xwdtopnm --quiet | ${PBM_BINPREFIX}pamdepth 255 | cksum
+
+${PBM_TESTPREFIX}pnmtoxwd --quiet  testgrid.pbm | \
+  ${PBM_TESTPREFIX}xwdtopnm | cksum