From a558128a18e84189772dd2a84c481eab49751857 Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Thu, 19 May 2011 17:51:36 -0500 Subject: [svn-r20869] Purpose: HDFFV-7514 - GMQS: h5dump - improve effectiveness of testing scripts for handling expected output files Description: Fist phase for h5dump test update. Next phase will be for h5ls. This is prerequisite for 'HDFFV-7602 Tools - upgrade tools' test scripts to share test files among tools, providing framework for test file re-usability.' Tested: jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), linew (solaris-BE), Windows (32-LE), Cmake (jam) --- tools/h5dump/CMakeLists.txt | 40 ++++++------ tools/h5dump/testh5dump.sh.in | 74 ++++------------------- tools/h5dump/testh5dumpxml.sh.in | 3 - tools/testfiles/file_space.ddl | 3 - tools/testfiles/filter_fail.ddl | 3 - tools/testfiles/packedbits.ddl | 3 - tools/testfiles/tall-1.ddl | 3 - tools/testfiles/tall-2.ddl | 3 - tools/testfiles/tall-2A.ddl | 3 - tools/testfiles/tall-2A.h5.xml | 3 - tools/testfiles/tall-2B.ddl | 3 - tools/testfiles/tall-3.ddl | 3 - tools/testfiles/tall-4s.ddl | 3 - tools/testfiles/tall-5s.ddl | 3 - tools/testfiles/tall.h5.xml | 3 - tools/testfiles/tallfilters.ddl | 3 - tools/testfiles/tarray1.ddl | 3 - tools/testfiles/tarray1.h5.xml | 3 - tools/testfiles/tarray1_big.ddl | 3 - tools/testfiles/tarray2.ddl | 3 - tools/testfiles/tarray2.h5.xml | 3 - tools/testfiles/tarray3.ddl | 3 - tools/testfiles/tarray3.h5.xml | 3 - tools/testfiles/tarray4.ddl | 3 - tools/testfiles/tarray5.ddl | 3 - tools/testfiles/tarray6.ddl | 3 - tools/testfiles/tarray6.h5.xml | 3 - tools/testfiles/tarray7.ddl | 3 - tools/testfiles/tarray7.h5.xml | 3 - tools/testfiles/tarray8.ddl | 3 - tools/testfiles/tattr-1.ddl | 3 - tools/testfiles/tattr-2.ddl | 3 - tools/testfiles/tattr-3.ddl | 3 - tools/testfiles/tattr.h5.xml | 3 - tools/testfiles/tattrreg.ddl | 3 - tools/testfiles/tattrregR.ddl | 3 - tools/testfiles/tbigdims.ddl | 3 - tools/testfiles/tbitfields.h5.xml | 3 - tools/testfiles/tboot1.ddl | 3 - tools/testfiles/tboot2.ddl | 3 - tools/testfiles/tchar1.ddl | 3 - tools/testfiles/tchunked.ddl | 3 - tools/testfiles/tcomp-1.ddl | 3 - tools/testfiles/tcomp-2.ddl | 3 - tools/testfiles/tcomp-3.ddl | 3 - tools/testfiles/tcomp-4.ddl | 3 - tools/testfiles/tcompact.ddl | 3 - tools/testfiles/tcompound.h5.xml | 3 - tools/testfiles/tcompound2.h5.xml | 3 - tools/testfiles/tcompound_complex.h5.xml | 3 - tools/testfiles/tcontents.ddl | 3 - tools/testfiles/tcontiguos.ddl | 3 - tools/testfiles/tdatareg.ddl | 3 - tools/testfiles/tdatareg.h5.xml | 3 - tools/testfiles/tdataregR.ddl | 3 - tools/testfiles/tdeflate.ddl | 3 - tools/testfiles/tdset-1.ddl | 3 - tools/testfiles/tdset-2.ddl | 3 - tools/testfiles/tdset-3s.ddl | 3 - tools/testfiles/tdset.h5.xml | 3 - tools/testfiles/tdset2.h5.xml | 3 - tools/testfiles/tempty-dtd-2.h5.xml | 3 - tools/testfiles/tempty-dtd-uri.h5.xml | 3 - tools/testfiles/tempty-dtd.h5.xml | 3 - tools/testfiles/tempty-nons-2.h5.xml | 3 - tools/testfiles/tempty-nons-uri.h5.xml | 3 - tools/testfiles/tempty-nons.h5.xml | 3 - tools/testfiles/tempty-ns-2.h5.xml | 3 - tools/testfiles/tempty-ns.h5.xml | 3 - tools/testfiles/tempty.ddl | 3 - tools/testfiles/tempty.h5.xml | 3 - tools/testfiles/tenum.h5.xml | 3 - tools/testfiles/texternal.ddl | 3 - tools/testfiles/textlink.ddl | 3 - tools/testfiles/textlink.h5.xml | 3 - tools/testfiles/textlinkfar.ddl | 3 - tools/testfiles/textlinksrc.ddl | 3 - tools/testfiles/tfamily.ddl | 3 - tools/testfiles/tfill.ddl | 3 - tools/testfiles/tfletcher32.ddl | 3 - tools/testfiles/tfpformat.ddl | 3 - tools/testfiles/tfpformat.h5.xml | 3 - tools/testfiles/tgroup-1.ddl | 3 - tools/testfiles/tgroup-2.ddl | 3 - tools/testfiles/tgroup.h5.xml | 3 - tools/testfiles/tgrp_comments.ddl | 3 - tools/testfiles/thlink-1.ddl | 3 - tools/testfiles/thlink-2.ddl | 3 - tools/testfiles/thlink-3.ddl | 3 - tools/testfiles/thlink-4.ddl | 3 - tools/testfiles/thlink-5.ddl | 3 - tools/testfiles/thlink.h5.xml | 3 - tools/testfiles/thyperslab.ddl | 3 - tools/testfiles/tindicesno.ddl | 3 - tools/testfiles/tindicessub1.ddl | 3 - tools/testfiles/tindicessub2.ddl | 3 - tools/testfiles/tindicessub3.ddl | 3 - tools/testfiles/tindicessub4.ddl | 3 - tools/testfiles/tindicesyes.ddl | 3 - tools/testfiles/tlarge_objname.ddl | 3 - tools/testfiles/tlonglinks.ddl | 3 - tools/testfiles/tloop-1.ddl | 3 - tools/testfiles/tloop.h5.xml | 3 - tools/testfiles/tloop2.h5.xml | 3 - tools/testfiles/tmany.h5.xml | 3 - tools/testfiles/tmulti.ddl | 3 - tools/testfiles/tname-amp.h5.xml | 3 - tools/testfiles/tname-apos.h5.xml | 3 - tools/testfiles/tname-gt.h5.xml | 3 - tools/testfiles/tname-lt.h5.xml | 3 - tools/testfiles/tname-quot.h5.xml | 3 - tools/testfiles/tname-sp.h5.xml | 3 - tools/testfiles/tnamed_dtype_attr.ddl | 3 - tools/testfiles/tnamed_dtype_attr.h5.xml | 3 - tools/testfiles/tnbit.ddl | 3 - tools/testfiles/tnestcomp-1.ddl | 3 - tools/testfiles/tnestedcomp.h5.xml | 3 - tools/testfiles/tnodata.h5.xml | 3 - tools/testfiles/tnofilename-with-packed-bits.ddl | 3 - tools/testfiles/tnofilename.ddl | 3 - tools/testfiles/tnullspace.ddl | 3 - tools/testfiles/tobjref.h5.xml | 3 - tools/testfiles/topaque.h5.xml | 3 - tools/testfiles/torderattr1.ddl | 3 - tools/testfiles/torderattr1.h5.xml | 3 - tools/testfiles/torderattr2.ddl | 3 - tools/testfiles/torderattr2.h5.xml | 3 - tools/testfiles/torderattr3.ddl | 3 - tools/testfiles/torderattr3.h5.xml | 3 - tools/testfiles/torderattr4.ddl | 3 - tools/testfiles/torderattr4.h5.xml | 3 - tools/testfiles/tordergr1.ddl | 3 - tools/testfiles/tordergr2.ddl | 3 - tools/testfiles/tordergr3.ddl | 3 - tools/testfiles/tordergr4.ddl | 3 - tools/testfiles/tordergr5.ddl | 3 - tools/testfiles/tpbitsArray.ddl | 3 - tools/testfiles/tpbitsCharLengthExceeded.ddl | 3 - tools/testfiles/tpbitsCharOffsetExceeded.ddl | 3 - tools/testfiles/tpbitsCompound.ddl | 3 - tools/testfiles/tpbitsIncomplete.ddl | 3 - tools/testfiles/tpbitsIntLengthExceeded.ddl | 3 - tools/testfiles/tpbitsIntOffsetExceeded.ddl | 3 - tools/testfiles/tpbitsLengthExceeded.ddl | 3 - tools/testfiles/tpbitsLengthPositive.ddl | 3 - tools/testfiles/tpbitsLongLengthExceeded.ddl | 3 - tools/testfiles/tpbitsLongOffsetExceeded.ddl | 3 - tools/testfiles/tpbitsMax.ddl | 3 - tools/testfiles/tpbitsMaxExceeded.ddl | 3 - tools/testfiles/tpbitsOffsetExceeded.ddl | 3 - tools/testfiles/tpbitsOffsetNegative.ddl | 3 - tools/testfiles/tpbitsOverlapped.ddl | 3 - tools/testfiles/tpbitsSigned.ddl | 3 - tools/testfiles/tpbitsSigned2.ddl | 3 - tools/testfiles/tpbitsSigned4.ddl | 3 - tools/testfiles/tpbitsSignedInt.ddl | 3 - tools/testfiles/tpbitsSignedInt4.ddl | 3 - tools/testfiles/tpbitsSignedInt8.ddl | 3 - tools/testfiles/tpbitsSignedIntWhole.ddl | 3 - tools/testfiles/tpbitsSignedLong.ddl | 3 - tools/testfiles/tpbitsSignedLong16.ddl | 3 - tools/testfiles/tpbitsSignedLong8.ddl | 3 - tools/testfiles/tpbitsSignedLongLong.ddl | 3 - tools/testfiles/tpbitsSignedLongLong16.ddl | 3 - tools/testfiles/tpbitsSignedLongLong32.ddl | 3 - tools/testfiles/tpbitsSignedLongLongWhole.ddl | 3 - tools/testfiles/tpbitsSignedLongLongWhole1.ddl | 3 - tools/testfiles/tpbitsSignedLongLongWhole63.ddl | 3 - tools/testfiles/tpbitsSignedLongWhole.ddl | 3 - tools/testfiles/tpbitsSignedWhole.ddl | 3 - tools/testfiles/tpbitsUnsigned.ddl | 3 - tools/testfiles/tpbitsUnsigned2.ddl | 3 - tools/testfiles/tpbitsUnsigned4.ddl | 3 - tools/testfiles/tpbitsUnsignedInt.ddl | 3 - tools/testfiles/tpbitsUnsignedInt4.ddl | 3 - tools/testfiles/tpbitsUnsignedInt8.ddl | 3 - tools/testfiles/tpbitsUnsignedIntWhole.ddl | 3 - tools/testfiles/tpbitsUnsignedLong.ddl | 3 - tools/testfiles/tpbitsUnsignedLong16.ddl | 3 - tools/testfiles/tpbitsUnsignedLong8.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLong.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLong16.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLong32.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLongWhole.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl | 3 - tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl | 3 - tools/testfiles/tpbitsUnsignedLongWhole.ddl | 3 - tools/testfiles/tpbitsUnsignedWhole.ddl | 3 - tools/testfiles/tperror.ddl | 3 - tools/testfiles/tref-escapes-at.h5.xml | 3 - tools/testfiles/tref-escapes.h5.xml | 3 - tools/testfiles/tref.h5.xml | 3 - tools/testfiles/treference.ddl | 3 - tools/testfiles/tsaf.ddl | 3 - tools/testfiles/tsaf.h5.xml | 3 - tools/testfiles/tscaleoffset.ddl | 3 - tools/testfiles/tshuffle.ddl | 3 - tools/testfiles/tslink-1.ddl | 3 - tools/testfiles/tslink-2.ddl | 3 - tools/testfiles/tslink.h5.xml | 3 - tools/testfiles/tsplit_file.ddl | 3 - tools/testfiles/tstr-1.ddl | 3 - tools/testfiles/tstr-2.ddl | 3 - tools/testfiles/tstr.h5.xml | 3 - tools/testfiles/tstr2.h5.xml | 3 - tools/testfiles/tstring-at.h5.xml | 3 - tools/testfiles/tstring.ddl | 3 - tools/testfiles/tstring.h5.xml | 3 - tools/testfiles/tstring2.ddl | 3 - tools/testfiles/tstringe.ddl | 3 - tools/testfiles/tszip.ddl | 3 - tools/testfiles/tudlink-1.ddl | 3 - tools/testfiles/tudlink-2.ddl | 3 - tools/testfiles/tudlink.h5.xml | 3 - tools/testfiles/tuserfilter.ddl | 3 - tools/testfiles/tvldtypes1.ddl | 3 - tools/testfiles/tvldtypes1.h5.xml | 3 - tools/testfiles/tvldtypes2.ddl | 3 - tools/testfiles/tvldtypes2.h5.xml | 3 - tools/testfiles/tvldtypes3.ddl | 3 - tools/testfiles/tvldtypes3.h5.xml | 3 - tools/testfiles/tvldtypes4.ddl | 3 - tools/testfiles/tvldtypes4.h5.xml | 3 - tools/testfiles/tvldtypes5.ddl | 3 - tools/testfiles/tvldtypes5.h5.xml | 3 - tools/testfiles/tvlstr.ddl | 3 - tools/testfiles/tvlstr.h5.xml | 3 - tools/testfiles/tvms.ddl | 3 - tools/testfiles/zerodim.ddl | 3 - 229 files changed, 31 insertions(+), 764 deletions(-) diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index a176ba0..900103a 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -47,6 +47,7 @@ IF (BUILD_TESTING) tall-3.ddl tall-4s.ddl tall-5s.ddl + tall-6.ddl tallfilters.ddl tarray1.ddl tarray1_big.ddl @@ -62,6 +63,11 @@ IF (BUILD_TESTING) tattr-3.ddl tattrreg.ddl tattrregR.ddl + tbin1.ddl + tbin1.ddl + tbin2.ddl + tbin3.ddl + tbin4.ddl tbinregR.ddl tbigdims.ddl tboot1.ddl @@ -82,6 +88,10 @@ IF (BUILD_TESTING) tdset-2.ddl tdset-3s.ddl tempty.ddl + texceedsubstart.ddl + texceedsubcount.ddl + texceedsubstride.ddl + texceedsubblock.ddl texternal.ddl textlinksrc.ddl textlinkfar.ddl @@ -149,6 +159,8 @@ IF (BUILD_TESTING) tvldtypes5.ddl tvlstr.ddl tvms.ddl + h5dump-help.txt + out3.h5import ) SET (HDF5_XML_REFERENCE_FILES tall.h5.xml @@ -216,18 +228,6 @@ IF (BUILD_TESTING) tvlstr.h5.xml ) SET (HDF5_REFERENCE_TEST_FILES - h5dump-help.txt - tbin1.ddl - tbin1.ddl - tbin2.ddl - tbin3.ddl - tbin4.ddl - tall-6.ddl - texceedsubstart.ddl - texceedsubcount.ddl - texceedsubstride.ddl - texceedsubblock.ddl - out3.h5import filter_fail.h5 packedbits.h5 taindices.h5 @@ -335,23 +335,23 @@ IF (BUILD_TESTING) FOREACH (ddl_file ${HDF5_REFERENCE_FILES}) SET (ddldest "${PROJECT_BINARY_DIR}/${ddl_file}") - #MESSAGE (STATUS " Translating ${ddl_file}") + #MESSAGE (STATUS " Copying ${ddl_file}") ADD_CUSTOM_COMMAND ( TARGET h5dump POST_BUILD - COMMAND ${XLATE_UTILITY} - ARGS ${HDF5_TOOLS_SRC_DIR}/testfiles/${ddl_file} ${ddldest} -l3 + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${ddl_file} ${ddldest} ) ENDFOREACH (ddl_file ${HDF5_REFERENCE_FILES}) FOREACH (xml_file ${HDF5_XML_REFERENCE_FILES}) SET (xmldest "${PROJECT_BINARY_DIR}/${xml_file}") - #MESSAGE (STATUS " Translating ${xml_file}") + #MESSAGE (STATUS " Copying ${xml_file}") ADD_CUSTOM_COMMAND ( TARGET h5dump POST_BUILD - COMMAND ${XLATE_UTILITY} - ARGS ${HDF5_TOOLS_SRC_DIR}/testfiles/${xml_file} ${xmldest} -l3 + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${xml_file} ${xmldest} ) ENDFOREACH (xml_file ${HDF5_XML_REFERENCE_FILES}) @@ -465,8 +465,8 @@ IF (BUILD_TESTING) ADD_CUSTOM_COMMAND ( TARGET h5dump POST_BUILD - COMMAND ${XLATE_UTILITY} - ARGS ${HDF5_TOOLS_SRC_DIR}/testfiles/${ddl_pbits} ${ddldest} -l3 + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${ddl_pbits} ${ddldest} ) ENDFOREACH (ddl_pbits ${HDF5_REFERENCE_PBITS}) diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 5c0503f..c33bd37 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -81,56 +81,6 @@ TOOLTEST() { # Run test. TESTING $DUMPER $@ ( - echo "#############################" - echo "Expected output for '$DUMPER $@'" - echo "#############################" - cd $srcdir/../testfiles - $RUNSERIAL $DUMPER_BIN $@ - ) >$actual 2>$actual_err - - # save actual and actual_err in case they are needed later. - cp $actual $actual_sav - STDOUT_FILTER $actual - cp $actual_err $actual_err_sav - STDERR_FILTER $actual_err - cat $actual_err >> $actual - - if [ ! -f $expect ]; then - # Create the expect file if it doesn't yet exist. - echo " CREATED" - cp $actual $expect - elif $CMP $expect $actual; then - echo " PASSED" - else - echo "*FAILED*" - echo " Expected result (*.ddl) differs from actual result (*.out)" - nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' - fi - - # Clean up output file - if test -z "$HDF5_NOCLEANUP"; then - rm -f $actual $actual_err $actual_sav $actual_err_sav - fi - -} - - -# same as TOOLTEST but does not print the header Expected output -# used for the binary tests that expect a full path in -o -TOOLTEST1() { - - expect="$srcdir/../testfiles/$1" - actual="../testfiles/`basename $1 .ddl`.out" - actual_err="../testfiles/`basename $1 .ddl`.err" - actual_sav=${actual}-sav - actual_err_sav=${actual_err}-sav - shift - - # Run test. - TESTING $DUMPER $@ - ( - cd $srcdir/../testfiles $RUNSERIAL $DUMPER_BIN $@ ) >$actual 2>$actual_err @@ -162,6 +112,7 @@ TOOLTEST1() { } + # same as TOOLTEST1 but compares generated file to expected output # and compares the generated data file to the expected data file # used for the binary tests that expect a full path in -o without -b @@ -229,9 +180,6 @@ TOOLTEST3() { # Run test. TESTING $DUMPER $@ ( - echo "#############################" - echo "Expected output for '$DUMPER $@'" - echo "#############################" cd $srcdir/../testfiles $RUNSERIAL $DUMPER_BIN $@ ) >$actual 2>$actual_err @@ -515,10 +463,10 @@ TOOLTEST tindicessub3.ddl -d 3d -s 0,1,2 -S 1,3,3 -c 2,2,2 -k 1,2,2 taindices. TOOLTEST tindicessub4.ddl -d 4d -s 0,0,1,2 -c 2,2,3,2 -S 1,1,3,3 -k 1,1,2,2 taindices.h5 #Exceed the dimensions for subsetting -TOOLTEST1 texceedsubstart.ddl -d 1d -s 1,3 taindices.h5 -TOOLTEST1 texceedsubcount.ddl -d 1d -c 1,3 taindices.h5 -TOOLTEST1 texceedsubstride.ddl -d 1d -S 1,3 taindices.h5 -TOOLTEST1 texceedsubblock.ddl -d 1d -k 1,3 taindices.h5 +TOOLTEST texceedsubstart.ddl -d 1d -s 1,3 taindices.h5 +TOOLTEST texceedsubcount.ddl -d 1d -c 1,3 taindices.h5 +TOOLTEST texceedsubstride.ddl -d 1d -S 1,3 taindices.h5 +TOOLTEST texceedsubblock.ddl -d 1d -k 1,3 taindices.h5 # tests for filters @@ -599,21 +547,21 @@ TOOLTEST zerodim.ddl zerodim.h5 TOOLTEST tvms.ddl tvms.h5 # test for binary output -TOOLTEST1 tbin1.ddl -d integer -o $TESTDIR/out1.bin -b LE tbinary.h5 +TOOLTEST tbin1.ddl -d integer -o $TESTDIR/out1.bin -b LE tbinary.h5 # NATIVE default. the NATIVE test can be validated with h5import/h5diff -TOOLTEST1 tbin1.ddl -d integer -o $TESTDIR/out1.bin -b tbinary.h5 +TOOLTEST tbin1.ddl -d integer -o $TESTDIR/out1.bin -b tbinary.h5 IMPORTTEST $TESTDIR/out1.bin -c out3.h5import -o $TESTDIR/out1.h5 DIFFTEST tbinary.h5 $TESTDIR/out1.h5 /integer /integer -TOOLTEST1 tbin2.ddl -b BE -d float -o $TESTDIR/out2.bin tbinary.h5 +TOOLTEST tbin2.ddl -b BE -d float -o $TESTDIR/out2.bin tbinary.h5 # the NATIVE test can be validated with h5import/h5diff -TOOLTEST1 tbin3.ddl -d integer -o $TESTDIR/out3.bin -b NATIVE tbinary.h5 +TOOLTEST tbin3.ddl -d integer -o $TESTDIR/out3.bin -b NATIVE tbinary.h5 IMPORTTEST $TESTDIR/out3.bin -c out3.h5import -o $TESTDIR/out3.h5 DIFFTEST tbinary.h5 $TESTDIR/out3.h5 /integer /integer -TOOLTEST1 tbin4.ddl -d double -b FILE -o $TESTDIR/out4.bin tbinary.h5 +TOOLTEST tbin4.ddl -d double -b FILE -o $TESTDIR/out4.bin tbinary.h5 # Clean up binary output files if test -z "$HDF5_NOCLEANUP"; then @@ -663,7 +611,7 @@ TOOLTEST textlink.ddl textlink.h5 TOOLTEST3 filter_fail.ddl --enable-error-stack filter_fail.h5 # test for -o -y for dataset with attributes -TOOLTEST1 tall-6.ddl -y -o $TESTDIR/data -d /g1/g1.1/dset1.1.1 tall.h5 +TOOLTEST tall-6.ddl -y -o $TESTDIR/data -d /g1/g1.1/dset1.1.1 tall.h5 # test for dataset packed bits # Limits: diff --git a/tools/h5dump/testh5dumpxml.sh.in b/tools/h5dump/testh5dumpxml.sh.in index c9f1ad2..0bd01b0 100755 --- a/tools/h5dump/testh5dumpxml.sh.in +++ b/tools/h5dump/testh5dumpxml.sh.in @@ -62,9 +62,6 @@ TOOLTEST() { # Run test. TESTING $DUMPER $@ ( - echo "#############################" - echo "Expected output for '$DUMPER $@'" - echo "#############################" cd $srcdir/../testfiles $RUNSERIAL $DUMPER_BIN $@ ) >$actual 2>$actual_err diff --git a/tools/testfiles/file_space.ddl b/tools/testfiles/file_space.ddl index 37b3922..d278018 100644 --- a/tools/testfiles/file_space.ddl +++ b/tools/testfiles/file_space.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -B file_space.h5' -############################# HDF5 "file_space.h5" { SUPER_BLOCK { SUPERBLOCK_VERSION 2 diff --git a/tools/testfiles/filter_fail.ddl b/tools/testfiles/filter_fail.ddl index 354ac0f..9ee1da8 100644 --- a/tools/testfiles/filter_fail.ddl +++ b/tools/testfiles/filter_fail.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --enable-error-stack filter_fail.h5' -############################# HDF5 "filter_fail.h5" { GROUP "/" { DATASET "dset_fail" { diff --git a/tools/testfiles/packedbits.ddl b/tools/testfiles/packedbits.ddl index 91bd63b..1bca459 100644 --- a/tools/testfiles/packedbits.ddl +++ b/tools/testfiles/packedbits.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump packedbits.h5' -############################# HDF5 "packedbits.h5" { GROUP "/" { DATASET "DS08BITS" { diff --git a/tools/testfiles/tall-1.ddl b/tools/testfiles/tall-1.ddl index 9a72484..ae375c4 100644 --- a/tools/testfiles/tall-1.ddl +++ b/tools/testfiles/tall-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tall.h5' -############################# HDF5 "tall.h5" { GROUP "/" { ATTRIBUTE "attr1" { diff --git a/tools/testfiles/tall-2.ddl b/tools/testfiles/tall-2.ddl index 50844df..d669639 100644 --- a/tools/testfiles/tall-2.ddl +++ b/tools/testfiles/tall-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --header -g /g1/g1.1 -a attr2 tall.h5' -############################# HDF5 "tall.h5" { GROUP "/g1/g1.1" { DATASET "dset1.1.1" { diff --git a/tools/testfiles/tall-2A.ddl b/tools/testfiles/tall-2A.ddl index c6ff136..0ae5210 100644 --- a/tools/testfiles/tall-2A.ddl +++ b/tools/testfiles/tall-2A.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -A tall.h5' -############################# HDF5 "tall.h5" { GROUP "/" { ATTRIBUTE "attr1" { diff --git a/tools/testfiles/tall-2A.h5.xml b/tools/testfiles/tall-2A.h5.xml index ce9df3a..b582e5b 100644 --- a/tools/testfiles/tall-2A.h5.xml +++ b/tools/testfiles/tall-2A.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -A tall.h5' -############################# diff --git a/tools/testfiles/tall-2B.ddl b/tools/testfiles/tall-2B.ddl index 5642d2c..c9313b7 100644 --- a/tools/testfiles/tall-2B.ddl +++ b/tools/testfiles/tall-2B.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -A -r tall.h5' -############################# HDF5 "tall.h5" { GROUP "/" { ATTRIBUTE "attr1" { diff --git a/tools/testfiles/tall-3.ddl b/tools/testfiles/tall-3.ddl index 7d8e432..1c54e6d 100644 --- a/tools/testfiles/tall-3.ddl +++ b/tools/testfiles/tall-3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5' -############################# HDF5 "tall.h5" { DATASET "/g2/dset2.1" { DATATYPE H5T_IEEE_F32BE diff --git a/tools/testfiles/tall-4s.ddl b/tools/testfiles/tall-4s.ddl index 71675bc..36cb659 100644 --- a/tools/testfiles/tall-4s.ddl +++ b/tools/testfiles/tall-4s.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --dataset=/g1/g1.1/dset1.1.1 --start=1,1 --stride=2,3 --count=3,2 --block=1,1 tall.h5' -############################# HDF5 "tall.h5" { DATASET "/g1/g1.1/dset1.1.1" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/tall-5s.ddl b/tools/testfiles/tall-5s.ddl index 95e4d63..b35be18 100644 --- a/tools/testfiles/tall-5s.ddl +++ b/tools/testfiles/tall-5s.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /g1/g1.1/dset1.1.2[0;2;10;] tall.h5' -############################# HDF5 "tall.h5" { DATASET "/g1/g1.1/dset1.1.2" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/tall.h5.xml b/tools/testfiles/tall.h5.xml index e8d39a4..f1f2810 100644 --- a/tools/testfiles/tall.h5.xml +++ b/tools/testfiles/tall.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tall.h5' -############################# diff --git a/tools/testfiles/tallfilters.ddl b/tools/testfiles/tallfilters.ddl index 16405b7..c8e7b5f 100644 --- a/tools/testfiles/tallfilters.ddl +++ b/tools/testfiles/tallfilters.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d all tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "all" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tarray1.ddl b/tools/testfiles/tarray1.ddl index 849bc67..8ff01e1 100644 --- a/tools/testfiles/tarray1.ddl +++ b/tools/testfiles/tarray1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray1.h5' -############################# HDF5 "tarray1.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray1.h5.xml b/tools/testfiles/tarray1.h5.xml index cff79e3..419c8a6 100644 --- a/tools/testfiles/tarray1.h5.xml +++ b/tools/testfiles/tarray1.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tarray1.h5' -############################# diff --git a/tools/testfiles/tarray1_big.ddl b/tools/testfiles/tarray1_big.ddl index a19a7c3..bb06df2 100644 --- a/tools/testfiles/tarray1_big.ddl +++ b/tools/testfiles/tarray1_big.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -R tarray1_big.h5' -############################# HDF5 "tarray1_big.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray2.ddl b/tools/testfiles/tarray2.ddl index df1e0b8..5a8460a 100644 --- a/tools/testfiles/tarray2.ddl +++ b/tools/testfiles/tarray2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray2.h5' -############################# HDF5 "tarray2.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray2.h5.xml b/tools/testfiles/tarray2.h5.xml index f851c18..3a9d01f 100644 --- a/tools/testfiles/tarray2.h5.xml +++ b/tools/testfiles/tarray2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tarray2.h5' -############################# diff --git a/tools/testfiles/tarray3.ddl b/tools/testfiles/tarray3.ddl index 17ceba6..10e067e 100644 --- a/tools/testfiles/tarray3.ddl +++ b/tools/testfiles/tarray3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray3.h5' -############################# HDF5 "tarray3.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray3.h5.xml b/tools/testfiles/tarray3.h5.xml index a620a5e..f470c6c 100644 --- a/tools/testfiles/tarray3.h5.xml +++ b/tools/testfiles/tarray3.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tarray3.h5' -############################# diff --git a/tools/testfiles/tarray4.ddl b/tools/testfiles/tarray4.ddl index ebc265f..7fb310b 100644 --- a/tools/testfiles/tarray4.ddl +++ b/tools/testfiles/tarray4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray4.h5' -############################# HDF5 "tarray4.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray5.ddl b/tools/testfiles/tarray5.ddl index 49eda3e..5a8a500 100644 --- a/tools/testfiles/tarray5.ddl +++ b/tools/testfiles/tarray5.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray5.h5' -############################# HDF5 "tarray5.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray6.ddl b/tools/testfiles/tarray6.ddl index b2f95ab..5c49b0f 100644 --- a/tools/testfiles/tarray6.ddl +++ b/tools/testfiles/tarray6.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray6.h5' -############################# HDF5 "tarray6.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray6.h5.xml b/tools/testfiles/tarray6.h5.xml index 5be8371..4151cf7 100644 --- a/tools/testfiles/tarray6.h5.xml +++ b/tools/testfiles/tarray6.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tarray6.h5' -############################# diff --git a/tools/testfiles/tarray7.ddl b/tools/testfiles/tarray7.ddl index a205875..2e6eaec 100644 --- a/tools/testfiles/tarray7.ddl +++ b/tools/testfiles/tarray7.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray7.h5' -############################# HDF5 "tarray7.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tarray7.h5.xml b/tools/testfiles/tarray7.h5.xml index 4fb02c4..37c9bf4 100644 --- a/tools/testfiles/tarray7.h5.xml +++ b/tools/testfiles/tarray7.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tarray7.h5' -############################# diff --git a/tools/testfiles/tarray8.ddl b/tools/testfiles/tarray8.ddl index cf9ebc3..f482901 100644 --- a/tools/testfiles/tarray8.ddl +++ b/tools/testfiles/tarray8.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tarray8.h5' -############################# HDF5 "tarray8.h5" { GROUP "/" { DATASET "DS1" { diff --git a/tools/testfiles/tattr-1.ddl b/tools/testfiles/tattr-1.ddl index 2337fa3..540c973 100644 --- a/tools/testfiles/tattr-1.ddl +++ b/tools/testfiles/tattr-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tattr.h5' -############################# HDF5 "tattr.h5" { GROUP "/" { ATTRIBUTE "attr1" { diff --git a/tools/testfiles/tattr-2.ddl b/tools/testfiles/tattr-2.ddl index 195b9ab..e4d40bd 100644 --- a/tools/testfiles/tattr-2.ddl +++ b/tools/testfiles/tattr-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -a /attr1 --attribute /attr4 --attribute=/attr5 tattr.h5' -############################# HDF5 "tattr.h5" { ATTRIBUTE "/attr1" { DATATYPE H5T_STD_I8BE diff --git a/tools/testfiles/tattr-3.ddl b/tools/testfiles/tattr-3.ddl index 98896eb..a44be10 100644 --- a/tools/testfiles/tattr-3.ddl +++ b/tools/testfiles/tattr-3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --header -a /attr2 --attribute=/attr tattr.h5' -############################# HDF5 "tattr.h5" { ATTRIBUTE "/attr2" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/tattr.h5.xml b/tools/testfiles/tattr.h5.xml index bfde477..cca1d96 100644 --- a/tools/testfiles/tattr.h5.xml +++ b/tools/testfiles/tattr.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tattr.h5' -############################# diff --git a/tools/testfiles/tattrreg.ddl b/tools/testfiles/tattrreg.ddl index 989daf7..b47ab63 100644 --- a/tools/testfiles/tattrreg.ddl +++ b/tools/testfiles/tattrreg.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tattrreg.h5' -############################# HDF5 "tattrreg.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tattrregR.ddl b/tools/testfiles/tattrregR.ddl index 6e399c0..9e6b421 100644 --- a/tools/testfiles/tattrregR.ddl +++ b/tools/testfiles/tattrregR.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -R tattrreg.h5' -############################# HDF5 "tattrreg.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tbigdims.ddl b/tools/testfiles/tbigdims.ddl index 21e2a43..13f2052 100644 --- a/tools/testfiles/tbigdims.ddl +++ b/tools/testfiles/tbigdims.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d dset4gb -s 4294967284 -c 22 tbigdims.h5' -############################# HDF5 "tbigdims.h5" { DATASET "dset4gb" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tbitfields.h5.xml b/tools/testfiles/tbitfields.h5.xml index 28da284..94077f1 100644 --- a/tools/testfiles/tbitfields.h5.xml +++ b/tools/testfiles/tbitfields.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tbitfields.h5' -############################# diff --git a/tools/testfiles/tboot1.ddl b/tools/testfiles/tboot1.ddl index 8ffffc0..7949693 100644 --- a/tools/testfiles/tboot1.ddl +++ b/tools/testfiles/tboot1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -B -d dset tfcontents1.h5' -############################# HDF5 "tfcontents1.h5" { SUPER_BLOCK { SUPERBLOCK_VERSION 0 diff --git a/tools/testfiles/tboot2.ddl b/tools/testfiles/tboot2.ddl index 51250fe..d90b881 100644 --- a/tools/testfiles/tboot2.ddl +++ b/tools/testfiles/tboot2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -B tfcontents2.h5' -############################# HDF5 "tfcontents2.h5" { SUPER_BLOCK { SUPERBLOCK_VERSION 0 diff --git a/tools/testfiles/tchar1.ddl b/tools/testfiles/tchar1.ddl index cc2d838..a84906f 100644 --- a/tools/testfiles/tchar1.ddl +++ b/tools/testfiles/tchar1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -r tchar.h5' -############################# HDF5 "tchar.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tchunked.ddl b/tools/testfiles/tchunked.ddl index ba18776..2af1c0c 100644 --- a/tools/testfiles/tchunked.ddl +++ b/tools/testfiles/tchunked.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d chunked tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "chunked" { COMMENT "This is a dataset with chunked storage" diff --git a/tools/testfiles/tcomp-1.ddl b/tools/testfiles/tcomp-1.ddl index 0c24dc9..f86ed16 100644 --- a/tools/testfiles/tcomp-1.ddl +++ b/tools/testfiles/tcomp-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tcompound.h5' -############################# HDF5 "tcompound.h5" { GROUP "/" { DATATYPE "#6632" H5T_COMPOUND { diff --git a/tools/testfiles/tcomp-2.ddl b/tools/testfiles/tcomp-2.ddl index 824c753..a733a3c 100644 --- a/tools/testfiles/tcomp-2.ddl +++ b/tools/testfiles/tcomp-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5' -############################# HDF5 "tcompound.h5" { DATATYPE "/type1" H5T_COMPOUND { H5T_STD_I32BE "int_name"; diff --git a/tools/testfiles/tcomp-3.ddl b/tools/testfiles/tcomp-3.ddl index 538aa08..0294220 100644 --- a/tools/testfiles/tcomp-3.ddl +++ b/tools/testfiles/tcomp-3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -t /#6632 -g /group2 tcompound.h5' -############################# HDF5 "tcompound.h5" { DATATYPE "/#6632" H5T_COMPOUND { H5T_STD_I32BE "int"; diff --git a/tools/testfiles/tcomp-4.ddl b/tools/testfiles/tcomp-4.ddl index 32212f0..4ab5191 100644 --- a/tools/testfiles/tcomp-4.ddl +++ b/tools/testfiles/tcomp-4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tcompound_complex.h5' -############################# HDF5 "tcompound_complex.h5" { GROUP "/" { DATASET "CompoundComplex" { diff --git a/tools/testfiles/tcompact.ddl b/tools/testfiles/tcompact.ddl index f970ce5..c9066a8 100644 --- a/tools/testfiles/tcompact.ddl +++ b/tools/testfiles/tcompact.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d compact tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "compact" { COMMENT "This is a dataset with compact storage" diff --git a/tools/testfiles/tcompound.h5.xml b/tools/testfiles/tcompound.h5.xml index ed255e7..d340709 100644 --- a/tools/testfiles/tcompound.h5.xml +++ b/tools/testfiles/tcompound.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tcompound.h5' -############################# diff --git a/tools/testfiles/tcompound2.h5.xml b/tools/testfiles/tcompound2.h5.xml index 53e9312..c631ea9 100644 --- a/tools/testfiles/tcompound2.h5.xml +++ b/tools/testfiles/tcompound2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tcompound2.h5' -############################# diff --git a/tools/testfiles/tcompound_complex.h5.xml b/tools/testfiles/tcompound_complex.h5.xml index 99c1bff..1f0b20a 100644 --- a/tools/testfiles/tcompound_complex.h5.xml +++ b/tools/testfiles/tcompound_complex.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tcompound_complex.h5' -############################# diff --git a/tools/testfiles/tcontents.ddl b/tools/testfiles/tcontents.ddl index 2bb59b9..14e12d6 100644 --- a/tools/testfiles/tcontents.ddl +++ b/tools/testfiles/tcontents.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -n tfcontents1.h5' -############################# HDF5 "tfcontents1.h5" { FILE_CONTENTS { datatype /#5616 diff --git a/tools/testfiles/tcontiguos.ddl b/tools/testfiles/tcontiguos.ddl index 2828f8c..8800617 100644 --- a/tools/testfiles/tcontiguos.ddl +++ b/tools/testfiles/tcontiguos.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d contiguous tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "contiguous" { COMMENT "This is a dataset with contiguous storage" diff --git a/tools/testfiles/tdatareg.ddl b/tools/testfiles/tdatareg.ddl index d68401f..a3831f1 100644 --- a/tools/testfiles/tdatareg.ddl +++ b/tools/testfiles/tdatareg.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tdatareg.h5' -############################# HDF5 "tdatareg.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tdatareg.h5.xml b/tools/testfiles/tdatareg.h5.xml index d7dfad8..e9661ae 100644 --- a/tools/testfiles/tdatareg.h5.xml +++ b/tools/testfiles/tdatareg.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tdatareg.h5' -############################# diff --git a/tools/testfiles/tdataregR.ddl b/tools/testfiles/tdataregR.ddl index 2d962ed..0f613dc 100644 --- a/tools/testfiles/tdataregR.ddl +++ b/tools/testfiles/tdataregR.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -R tdatareg.h5' -############################# HDF5 "tdatareg.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tdeflate.ddl b/tools/testfiles/tdeflate.ddl index 7f658e7..e59d392 100644 --- a/tools/testfiles/tdeflate.ddl +++ b/tools/testfiles/tdeflate.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d deflate tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "deflate" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tdset-1.ddl b/tools/testfiles/tdset-1.ddl index 55d2a44..6b9b608 100644 --- a/tools/testfiles/tdset-1.ddl +++ b/tools/testfiles/tdset-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tdset.h5' -############################# HDF5 "tdset.h5" { GROUP "/" { DATASET "dset1" { diff --git a/tools/testfiles/tdset-2.ddl b/tools/testfiles/tdset-2.ddl index 93c961c..def68c3 100644 --- a/tools/testfiles/tdset-2.ddl +++ b/tools/testfiles/tdset-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5' -############################# HDF5 "tdset.h5" { DATASET "dset1" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/tdset-3s.ddl b/tools/testfiles/tdset-3s.ddl index 5963e90..93bdac8 100644 --- a/tools/testfiles/tdset-3s.ddl +++ b/tools/testfiles/tdset-3s.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /dset1[1,1;;;] tdset.h5' -############################# HDF5 "tdset.h5" { DATASET "/dset1" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/tdset.h5.xml b/tools/testfiles/tdset.h5.xml index 7aedaf5..711d9d1 100644 --- a/tools/testfiles/tdset.h5.xml +++ b/tools/testfiles/tdset.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tdset.h5' -############################# diff --git a/tools/testfiles/tdset2.h5.xml b/tools/testfiles/tdset2.h5.xml index 3bcaef0..c8c6f64 100644 --- a/tools/testfiles/tdset2.h5.xml +++ b/tools/testfiles/tdset2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tdset2.h5' -############################# diff --git a/tools/testfiles/tempty-dtd-2.h5.xml b/tools/testfiles/tempty-dtd-2.h5.xml index bf5a5d2..97e712e 100644 --- a/tools/testfiles/tempty-dtd-2.h5.xml +++ b/tools/testfiles/tempty-dtd-2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -u tempty.h5' -############################# diff --git a/tools/testfiles/tempty-dtd-uri.h5.xml b/tools/testfiles/tempty-dtd-uri.h5.xml index 29c63bd..76beb0f 100644 --- a/tools/testfiles/tempty-dtd-uri.h5.xml +++ b/tools/testfiles/tempty-dtd-uri.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml --use-dtd --xml-dtd=http://somewhere.net tempty.h5' -############################# diff --git a/tools/testfiles/tempty-dtd.h5.xml b/tools/testfiles/tempty-dtd.h5.xml index 8d15505..97e712e 100644 --- a/tools/testfiles/tempty-dtd.h5.xml +++ b/tools/testfiles/tempty-dtd.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml --use-dtd tempty.h5' -############################# diff --git a/tools/testfiles/tempty-nons-2.h5.xml b/tools/testfiles/tempty-nons-2.h5.xml index c9dc971..c3d6605 100644 --- a/tools/testfiles/tempty-nons-2.h5.xml +++ b/tools/testfiles/tempty-nons-2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml --xml-ns=: tempty.h5' -############################# diff --git a/tools/testfiles/tempty-nons-uri.h5.xml b/tools/testfiles/tempty-nons-uri.h5.xml index 05471e1..28df2e6 100644 --- a/tools/testfiles/tempty-nons-uri.h5.xml +++ b/tools/testfiles/tempty-nons-uri.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml --xml-ns=: --xml-dtd=http://somewhere.net tempty.h5' -############################# diff --git a/tools/testfiles/tempty-nons.h5.xml b/tools/testfiles/tempty-nons.h5.xml index 25536d9..c3d6605 100644 --- a/tools/testfiles/tempty-nons.h5.xml +++ b/tools/testfiles/tempty-nons.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -X : tempty.h5' -############################# diff --git a/tools/testfiles/tempty-ns-2.h5.xml b/tools/testfiles/tempty-ns-2.h5.xml index 4851e5c..3cb249f 100644 --- a/tools/testfiles/tempty-ns-2.h5.xml +++ b/tools/testfiles/tempty-ns-2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml --xml-ns=thing: tempty.h5' -############################# diff --git a/tools/testfiles/tempty-ns.h5.xml b/tools/testfiles/tempty-ns.h5.xml index 01ae896..3cb249f 100644 --- a/tools/testfiles/tempty-ns.h5.xml +++ b/tools/testfiles/tempty-ns.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -X thing: tempty.h5' -############################# diff --git a/tools/testfiles/tempty.ddl b/tools/testfiles/tempty.ddl index d6eadd2..0c24334 100644 --- a/tools/testfiles/tempty.ddl +++ b/tools/testfiles/tempty.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tempty.h5' -############################# HDF5 "tempty.h5" { GROUP "/" { DATASET "Dataset1.0" { diff --git a/tools/testfiles/tempty.h5.xml b/tools/testfiles/tempty.h5.xml index 4ff8c95..3970c24 100644 --- a/tools/testfiles/tempty.h5.xml +++ b/tools/testfiles/tempty.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tempty.h5' -############################# diff --git a/tools/testfiles/tenum.h5.xml b/tools/testfiles/tenum.h5.xml index d8adc1b..1e3273c 100644 --- a/tools/testfiles/tenum.h5.xml +++ b/tools/testfiles/tenum.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tenum.h5' -############################# diff --git a/tools/testfiles/texternal.ddl b/tools/testfiles/texternal.ddl index 21b3b7a..7f7b69a 100644 --- a/tools/testfiles/texternal.ddl +++ b/tools/testfiles/texternal.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d external tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "external" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/textlink.ddl b/tools/testfiles/textlink.ddl index 0a43c47..5459b30 100644 --- a/tools/testfiles/textlink.ddl +++ b/tools/testfiles/textlink.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump textlink.h5' -############################# HDF5 "textlink.h5" { GROUP "/" { EXTERNAL_LINK "extlink1" { diff --git a/tools/testfiles/textlink.h5.xml b/tools/testfiles/textlink.h5.xml index f6666a8..4e13be2 100644 --- a/tools/testfiles/textlink.h5.xml +++ b/tools/testfiles/textlink.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml textlink.h5' -############################# diff --git a/tools/testfiles/textlinkfar.ddl b/tools/testfiles/textlinkfar.ddl index e2bbf92..45f2145 100644 --- a/tools/testfiles/textlinkfar.ddl +++ b/tools/testfiles/textlinkfar.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump textlinkfar.h5' -############################# HDF5 "textlinkfar.h5" { GROUP "/" { EXTERNAL_LINK "src_file" { diff --git a/tools/testfiles/textlinksrc.ddl b/tools/testfiles/textlinksrc.ddl index d41bb6d..942477e 100644 --- a/tools/testfiles/textlinksrc.ddl +++ b/tools/testfiles/textlinksrc.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump textlinksrc.h5' -############################# HDF5 "textlinksrc.h5" { GROUP "/" { EXTERNAL_LINK "ext2soft_link1" { diff --git a/tools/testfiles/tfamily.ddl b/tools/testfiles/tfamily.ddl index 14e46ef..489d8a8 100644 --- a/tools/testfiles/tfamily.ddl +++ b/tools/testfiles/tfamily.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --filedriver=family tfamily%05d.h5' -############################# HDF5 "tfamily%05d.h5" { GROUP "/" { DATASET "dset1" { diff --git a/tools/testfiles/tfill.ddl b/tools/testfiles/tfill.ddl index 14a01f3..87f9ae5 100644 --- a/tools/testfiles/tfill.ddl +++ b/tools/testfiles/tfill.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -p tfvalues.h5' -############################# HDF5 "tfvalues.h5" { GROUP "/" { DATASET "fill_array" { diff --git a/tools/testfiles/tfletcher32.ddl b/tools/testfiles/tfletcher32.ddl index 9395f4a..0b7b1b8 100644 --- a/tools/testfiles/tfletcher32.ddl +++ b/tools/testfiles/tfletcher32.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d fletcher32 tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "fletcher32" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tfpformat.ddl b/tools/testfiles/tfpformat.ddl index 2336822..6f0281b 100644 --- a/tools/testfiles/tfpformat.ddl +++ b/tools/testfiles/tfpformat.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -m %.7f tfpformat.h5' -############################# HDF5 "tfpformat.h5" { GROUP "/" { DATASET "double" { diff --git a/tools/testfiles/tfpformat.h5.xml b/tools/testfiles/tfpformat.h5.xml index 939d7b3..31c7df4 100644 --- a/tools/testfiles/tfpformat.h5.xml +++ b/tools/testfiles/tfpformat.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -u -m %.7f tfpformat.h5' -############################# diff --git a/tools/testfiles/tgroup-1.ddl b/tools/testfiles/tgroup-1.ddl index d5f5eb4..4407eae 100644 --- a/tools/testfiles/tgroup-1.ddl +++ b/tools/testfiles/tgroup-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tgroup.h5' -############################# HDF5 "tgroup.h5" { GROUP "/" { GROUP "g1" { diff --git a/tools/testfiles/tgroup-2.ddl b/tools/testfiles/tgroup-2.ddl index e993d35..c4af7bb 100644 --- a/tools/testfiles/tgroup-2.ddl +++ b/tools/testfiles/tgroup-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --group=/g2 --group / -g /y tgroup.h5' -############################# HDF5 "tgroup.h5" { GROUP "/g2" { GROUP "g2.1" { diff --git a/tools/testfiles/tgroup.h5.xml b/tools/testfiles/tgroup.h5.xml index 00f5a0b..5a9c9a3 100644 --- a/tools/testfiles/tgroup.h5.xml +++ b/tools/testfiles/tgroup.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tgroup.h5' -############################# diff --git a/tools/testfiles/tgrp_comments.ddl b/tools/testfiles/tgrp_comments.ddl index 460a9f0..e33f3c2 100644 --- a/tools/testfiles/tgrp_comments.ddl +++ b/tools/testfiles/tgrp_comments.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tgrp_comments.h5' -############################# HDF5 "tgrp_comments.h5" { GROUP "/" { GROUP "g1" { diff --git a/tools/testfiles/thlink-1.ddl b/tools/testfiles/thlink-1.ddl index c913201..61ac6c2 100644 --- a/tools/testfiles/thlink-1.ddl +++ b/tools/testfiles/thlink-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump thlink.h5' -############################# HDF5 "thlink.h5" { GROUP "/" { DATASET "dset1" { diff --git a/tools/testfiles/thlink-2.ddl b/tools/testfiles/thlink-2.ddl index 829dbd6..c1c6367 100644 --- a/tools/testfiles/thlink-2.ddl +++ b/tools/testfiles/thlink-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5' -############################# HDF5 "thlink.h5" { DATASET "/g1/dset2" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/thlink-3.ddl b/tools/testfiles/thlink-3.ddl index d4b9d39..625cf3c 100644 --- a/tools/testfiles/thlink-3.ddl +++ b/tools/testfiles/thlink-3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5' -############################# HDF5 "thlink.h5" { DATASET "/g1/g1.1/dset3" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/thlink-4.ddl b/tools/testfiles/thlink-4.ddl index 4a06500..026f412 100644 --- a/tools/testfiles/thlink-4.ddl +++ b/tools/testfiles/thlink-4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -g /g1 thlink.h5' -############################# HDF5 "thlink.h5" { GROUP "/g1" { DATASET "dset2" { diff --git a/tools/testfiles/thlink-5.ddl b/tools/testfiles/thlink-5.ddl index b5dd8ee..058e863 100644 --- a/tools/testfiles/thlink-5.ddl +++ b/tools/testfiles/thlink-5.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /dset1 -g /g2 -d /g1/dset2 thlink.h5' -############################# HDF5 "thlink.h5" { DATASET "/dset1" { DATATYPE H5T_STD_I32BE diff --git a/tools/testfiles/thlink.h5.xml b/tools/testfiles/thlink.h5.xml index 19bc816..8191e11 100644 --- a/tools/testfiles/thlink.h5.xml +++ b/tools/testfiles/thlink.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml thlink.h5' -############################# diff --git a/tools/testfiles/thyperslab.ddl b/tools/testfiles/thyperslab.ddl index 733c456..cfebd14 100644 --- a/tools/testfiles/thyperslab.ddl +++ b/tools/testfiles/thyperslab.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump thyperslab.h5' -############################# HDF5 "thyperslab.h5" { GROUP "/" { DATASET "stripmine" { diff --git a/tools/testfiles/tindicesno.ddl b/tools/testfiles/tindicesno.ddl index a7ff3b0..a7b726e 100644 --- a/tools/testfiles/tindicesno.ddl +++ b/tools/testfiles/tindicesno.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -y taindices.h5' -############################# HDF5 "taindices.h5" { GROUP "/" { DATASET "1d" { diff --git a/tools/testfiles/tindicessub1.ddl b/tools/testfiles/tindicessub1.ddl index 0173fb5..5cf4058 100644 --- a/tools/testfiles/tindicessub1.ddl +++ b/tools/testfiles/tindicessub1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d 1d -s 1 -S 10 -c 2 -k 3 taindices.h5' -############################# HDF5 "taindices.h5" { DATASET "1d" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tindicessub2.ddl b/tools/testfiles/tindicessub2.ddl index 0f8f720..5103b49 100644 --- a/tools/testfiles/tindicessub2.ddl +++ b/tools/testfiles/tindicessub2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d 2d -s 1,2 -S 3,3 -c 3,2 -k 2,2 taindices.h5' -############################# HDF5 "taindices.h5" { DATASET "2d" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tindicessub3.ddl b/tools/testfiles/tindicessub3.ddl index 1ffc016..f7fb81c 100644 --- a/tools/testfiles/tindicessub3.ddl +++ b/tools/testfiles/tindicessub3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d 3d -s 0,1,2 -S 1,3,3 -c 2,2,2 -k 1,2,2 taindices.h5' -############################# HDF5 "taindices.h5" { DATASET "3d" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tindicessub4.ddl b/tools/testfiles/tindicessub4.ddl index 273e396..7829875 100644 --- a/tools/testfiles/tindicessub4.ddl +++ b/tools/testfiles/tindicessub4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d 4d -s 0,0,1,2 -c 2,2,3,2 -S 1,1,3,3 -k 1,1,2,2 taindices.h5' -############################# HDF5 "taindices.h5" { DATASET "4d" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tindicesyes.ddl b/tools/testfiles/tindicesyes.ddl index 4a07072..9440c54 100644 --- a/tools/testfiles/tindicesyes.ddl +++ b/tools/testfiles/tindicesyes.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump taindices.h5' -############################# HDF5 "taindices.h5" { GROUP "/" { DATASET "1d" { diff --git a/tools/testfiles/tlarge_objname.ddl b/tools/testfiles/tlarge_objname.ddl index d3f0fbe..0facc43 100644 --- a/tools/testfiles/tlarge_objname.ddl +++ b/tools/testfiles/tlarge_objname.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -w157 tlarge_objname.h5' -############################# HDF5 "tlarge_objname.h5" { GROUP "/" { GROUP "this_is_a_large_group_name" { diff --git a/tools/testfiles/tlonglinks.ddl b/tools/testfiles/tlonglinks.ddl index 9842e4d..0e57b3d 100644 --- a/tools/testfiles/tlonglinks.ddl +++ b/tools/testfiles/tlonglinks.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tlonglinks.h5' -############################# HDF5 "tlonglinks.h5" { GROUP "/" { GROUP "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" { diff --git a/tools/testfiles/tloop-1.ddl b/tools/testfiles/tloop-1.ddl index 8313887..1f3a2fb 100644 --- a/tools/testfiles/tloop-1.ddl +++ b/tools/testfiles/tloop-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tloop.h5' -############################# HDF5 "tloop.h5" { GROUP "/" { GROUP "g1" { diff --git a/tools/testfiles/tloop.h5.xml b/tools/testfiles/tloop.h5.xml index d8a5080..5afc994 100644 --- a/tools/testfiles/tloop.h5.xml +++ b/tools/testfiles/tloop.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tloop.h5' -############################# diff --git a/tools/testfiles/tloop2.h5.xml b/tools/testfiles/tloop2.h5.xml index 73ac4e0..7185496 100644 --- a/tools/testfiles/tloop2.h5.xml +++ b/tools/testfiles/tloop2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tloop2.h5' -############################# diff --git a/tools/testfiles/tmany.h5.xml b/tools/testfiles/tmany.h5.xml index 59b856f..da39483 100644 --- a/tools/testfiles/tmany.h5.xml +++ b/tools/testfiles/tmany.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tmany.h5' -############################# diff --git a/tools/testfiles/tmulti.ddl b/tools/testfiles/tmulti.ddl index 128513a..b6bf35e 100644 --- a/tools/testfiles/tmulti.ddl +++ b/tools/testfiles/tmulti.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --filedriver=multi tmulti' -############################# HDF5 "tmulti" { GROUP "/" { DATASET "dset1" { diff --git a/tools/testfiles/tname-amp.h5.xml b/tools/testfiles/tname-amp.h5.xml index b443f22..5b0ea91 100644 --- a/tools/testfiles/tname-amp.h5.xml +++ b/tools/testfiles/tname-amp.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-amp.h5' -############################# diff --git a/tools/testfiles/tname-apos.h5.xml b/tools/testfiles/tname-apos.h5.xml index f60fa48..e00c16e 100644 --- a/tools/testfiles/tname-apos.h5.xml +++ b/tools/testfiles/tname-apos.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-apos.h5' -############################# diff --git a/tools/testfiles/tname-gt.h5.xml b/tools/testfiles/tname-gt.h5.xml index 43d9a50..ecf3e10 100644 --- a/tools/testfiles/tname-gt.h5.xml +++ b/tools/testfiles/tname-gt.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-gt.h5' -############################# diff --git a/tools/testfiles/tname-lt.h5.xml b/tools/testfiles/tname-lt.h5.xml index 4e948c9..2f181ce 100644 --- a/tools/testfiles/tname-lt.h5.xml +++ b/tools/testfiles/tname-lt.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-lt.h5' -############################# diff --git a/tools/testfiles/tname-quot.h5.xml b/tools/testfiles/tname-quot.h5.xml index e148630..c52a4b2 100644 --- a/tools/testfiles/tname-quot.h5.xml +++ b/tools/testfiles/tname-quot.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-quot.h5' -############################# diff --git a/tools/testfiles/tname-sp.h5.xml b/tools/testfiles/tname-sp.h5.xml index 231d0d5..4bd8bef 100644 --- a/tools/testfiles/tname-sp.h5.xml +++ b/tools/testfiles/tname-sp.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tname-sp.h5' -############################# diff --git a/tools/testfiles/tnamed_dtype_attr.ddl b/tools/testfiles/tnamed_dtype_attr.ddl index 4ef3158..48afaf8 100644 --- a/tools/testfiles/tnamed_dtype_attr.ddl +++ b/tools/testfiles/tnamed_dtype_attr.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tnamed_dtype_attr.h5' -############################# HDF5 "tnamed_dtype_attr.h5" { GROUP "/" { DATASET "Dataset" { diff --git a/tools/testfiles/tnamed_dtype_attr.h5.xml b/tools/testfiles/tnamed_dtype_attr.h5.xml index ebba88b..8445ffd 100644 --- a/tools/testfiles/tnamed_dtype_attr.h5.xml +++ b/tools/testfiles/tnamed_dtype_attr.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tnamed_dtype_attr.h5' -############################# diff --git a/tools/testfiles/tnbit.ddl b/tools/testfiles/tnbit.ddl index c310592..85a0d9a 100644 --- a/tools/testfiles/tnbit.ddl +++ b/tools/testfiles/tnbit.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d nbit tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "nbit" { DATATYPE 32-bit little-endian integer diff --git a/tools/testfiles/tnestcomp-1.ddl b/tools/testfiles/tnestcomp-1.ddl index e68e22d..fda9c7c 100644 --- a/tools/testfiles/tnestcomp-1.ddl +++ b/tools/testfiles/tnestcomp-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tnestedcomp.h5' -############################# HDF5 "tnestedcomp.h5" { GROUP "/" { DATASET "ArrayOfStructures" { diff --git a/tools/testfiles/tnestedcomp.h5.xml b/tools/testfiles/tnestedcomp.h5.xml index a2f928b..e087805 100644 --- a/tools/testfiles/tnestedcomp.h5.xml +++ b/tools/testfiles/tnestedcomp.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tnestedcomp.h5' -############################# diff --git a/tools/testfiles/tnodata.h5.xml b/tools/testfiles/tnodata.h5.xml index 762475e..7050f23 100644 --- a/tools/testfiles/tnodata.h5.xml +++ b/tools/testfiles/tnodata.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tnodata.h5' -############################# diff --git a/tools/testfiles/tnofilename-with-packed-bits.ddl b/tools/testfiles/tnofilename-with-packed-bits.ddl index 9225b09..9083782 100644 --- a/tools/testfiles/tnofilename-with-packed-bits.ddl +++ b/tools/testfiles/tnofilename-with-packed-bits.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump ' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tnofilename.ddl b/tools/testfiles/tnofilename.ddl index 0e78217..da79fbc 100644 --- a/tools/testfiles/tnofilename.ddl +++ b/tools/testfiles/tnofilename.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump ' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tnullspace.ddl b/tools/testfiles/tnullspace.ddl index 5507b08..32e208f 100644 --- a/tools/testfiles/tnullspace.ddl +++ b/tools/testfiles/tnullspace.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tnullspace.h5' -############################# HDF5 "tnullspace.h5" { GROUP "/" { ATTRIBUTE "attr" { diff --git a/tools/testfiles/tobjref.h5.xml b/tools/testfiles/tobjref.h5.xml index 825cb27..e6fd560 100644 --- a/tools/testfiles/tobjref.h5.xml +++ b/tools/testfiles/tobjref.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tobjref.h5' -############################# diff --git a/tools/testfiles/topaque.h5.xml b/tools/testfiles/topaque.h5.xml index 3f44ace..08ba280 100644 --- a/tools/testfiles/topaque.h5.xml +++ b/tools/testfiles/topaque.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml topaque.h5' -############################# diff --git a/tools/testfiles/torderattr1.ddl b/tools/testfiles/torderattr1.ddl index de3b72b..f46354b 100644 --- a/tools/testfiles/torderattr1.ddl +++ b/tools/testfiles/torderattr1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H --sort_by=name --sort_order=ascending torderattr.h5' -############################# HDF5 "torderattr.h5" { GROUP "/" { ATTRIBUTE "a" { diff --git a/tools/testfiles/torderattr1.h5.xml b/tools/testfiles/torderattr1.h5.xml index 15481fc..a688ffe 100644 --- a/tools/testfiles/torderattr1.h5.xml +++ b/tools/testfiles/torderattr1.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -H --sort_by=name --sort_order=ascending torderattr.h5' -############################# diff --git a/tools/testfiles/torderattr2.ddl b/tools/testfiles/torderattr2.ddl index 3686984..6cc1d41 100644 --- a/tools/testfiles/torderattr2.ddl +++ b/tools/testfiles/torderattr2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H --sort_by=name --sort_order=descending torderattr.h5' -############################# HDF5 "torderattr.h5" { GROUP "/" { ATTRIBUTE "c" { diff --git a/tools/testfiles/torderattr2.h5.xml b/tools/testfiles/torderattr2.h5.xml index ef28140..e0fcbb5 100644 --- a/tools/testfiles/torderattr2.h5.xml +++ b/tools/testfiles/torderattr2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -H --sort_by=name --sort_order=descending torderattr.h5' -############################# diff --git a/tools/testfiles/torderattr3.ddl b/tools/testfiles/torderattr3.ddl index 9dc027a..2956886 100644 --- a/tools/testfiles/torderattr3.ddl +++ b/tools/testfiles/torderattr3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H --sort_by=creation_order --sort_order=ascending torderattr.h5' -############################# HDF5 "torderattr.h5" { GROUP "/" { ATTRIBUTE "a" { diff --git a/tools/testfiles/torderattr3.h5.xml b/tools/testfiles/torderattr3.h5.xml index e9e131a..d29bc9a 100644 --- a/tools/testfiles/torderattr3.h5.xml +++ b/tools/testfiles/torderattr3.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=ascending torderattr.h5' -############################# diff --git a/tools/testfiles/torderattr4.ddl b/tools/testfiles/torderattr4.ddl index 38af25d..090b44b 100644 --- a/tools/testfiles/torderattr4.ddl +++ b/tools/testfiles/torderattr4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H --sort_by=creation_order --sort_order=descending torderattr.h5' -############################# HDF5 "torderattr.h5" { GROUP "/" { ATTRIBUTE "c" { diff --git a/tools/testfiles/torderattr4.h5.xml b/tools/testfiles/torderattr4.h5.xml index 2f4a2ed..9d4a992 100644 --- a/tools/testfiles/torderattr4.h5.xml +++ b/tools/testfiles/torderattr4.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=descending torderattr.h5' -############################# diff --git a/tools/testfiles/tordergr1.ddl b/tools/testfiles/tordergr1.ddl index a78fc0f..0fa74d9 100644 --- a/tools/testfiles/tordergr1.ddl +++ b/tools/testfiles/tordergr1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --group=1 --sort_by=creation_order --sort_order=ascending tordergr.h5' -############################# HDF5 "tordergr.h5" { GROUP "1" { GROUP "c" { diff --git a/tools/testfiles/tordergr2.ddl b/tools/testfiles/tordergr2.ddl index 4a39d22..500d99c 100644 --- a/tools/testfiles/tordergr2.ddl +++ b/tools/testfiles/tordergr2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --group=1 --sort_by=creation_order --sort_order=descending tordergr.h5' -############################# HDF5 "tordergr.h5" { GROUP "1" { GROUP "a" { diff --git a/tools/testfiles/tordergr3.ddl b/tools/testfiles/tordergr3.ddl index c948ccb..99e9a6b 100644 --- a/tools/testfiles/tordergr3.ddl +++ b/tools/testfiles/tordergr3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -g 2 -q name -z ascending tordergr.h5' -############################# HDF5 "tordergr.h5" { GROUP "2" { GROUP "a" { diff --git a/tools/testfiles/tordergr4.ddl b/tools/testfiles/tordergr4.ddl index 5f5c454..1613d9d 100644 --- a/tools/testfiles/tordergr4.ddl +++ b/tools/testfiles/tordergr4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -g 2 -q name -z descending tordergr.h5' -############################# HDF5 "tordergr.h5" { GROUP "2" { GROUP "c" { diff --git a/tools/testfiles/tordergr5.ddl b/tools/testfiles/tordergr5.ddl index e7854bd..0ede967 100644 --- a/tools/testfiles/tordergr5.ddl +++ b/tools/testfiles/tordergr5.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -q creation_order tordergr.h5' -############################# HDF5 "tordergr.h5" { GROUP "/" { GROUP "2" { diff --git a/tools/testfiles/tpbitsArray.ddl b/tools/testfiles/tpbitsArray.ddl index a20cbb2..125abb8 100644 --- a/tools/testfiles/tpbitsArray.ddl +++ b/tools/testfiles/tpbitsArray.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /Dataset1 -M 0,1,1,1 tarray1.h5' -############################# HDF5 "tarray1.h5" { DATASET "/Dataset1" { DATATYPE H5T_ARRAY { [4] H5T_STD_I32LE } diff --git a/tools/testfiles/tpbitsCharLengthExceeded.ddl b/tools/testfiles/tpbitsCharLengthExceeded.ddl index 6a72590..b0683a7 100644 --- a/tools/testfiles/tpbitsCharLengthExceeded.ddl +++ b/tools/testfiles/tpbitsCharLengthExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 2,7 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsCharOffsetExceeded.ddl b/tools/testfiles/tpbitsCharOffsetExceeded.ddl index 6543345..530fa05 100644 --- a/tools/testfiles/tpbitsCharOffsetExceeded.ddl +++ b/tools/testfiles/tpbitsCharOffsetExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 8,1 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsCompound.ddl b/tools/testfiles/tpbitsCompound.ddl index 87df46f..c84272a 100644 --- a/tools/testfiles/tpbitsCompound.ddl +++ b/tools/testfiles/tpbitsCompound.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /dset1 -M 0,1,1,1 tcompound.h5' -############################# HDF5 "tcompound.h5" { DATASET "/dset1" { DATATYPE H5T_COMPOUND { diff --git a/tools/testfiles/tpbitsIncomplete.ddl b/tools/testfiles/tpbitsIncomplete.ddl index c60a897..4307bed 100644 --- a/tools/testfiles/tpbitsIncomplete.ddl +++ b/tools/testfiles/tpbitsIncomplete.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,2,2,1,0,2,2, packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsIntLengthExceeded.ddl b/tools/testfiles/tpbitsIntLengthExceeded.ddl index 0b74575..1c919cd 100644 --- a/tools/testfiles/tpbitsIntLengthExceeded.ddl +++ b/tools/testfiles/tpbitsIntLengthExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 10,7 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsIntOffsetExceeded.ddl b/tools/testfiles/tpbitsIntOffsetExceeded.ddl index fa41c21..f3b2a8c 100644 --- a/tools/testfiles/tpbitsIntOffsetExceeded.ddl +++ b/tools/testfiles/tpbitsIntOffsetExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 16,1 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsLengthExceeded.ddl b/tools/testfiles/tpbitsLengthExceeded.ddl index cbc6177..4b50e70 100644 --- a/tools/testfiles/tpbitsLengthExceeded.ddl +++ b/tools/testfiles/tpbitsLengthExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 37,28 packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsLengthPositive.ddl b/tools/testfiles/tpbitsLengthPositive.ddl index e64f6d8..c648c02 100644 --- a/tools/testfiles/tpbitsLengthPositive.ddl +++ b/tools/testfiles/tpbitsLengthPositive.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 4,0 packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsLongLengthExceeded.ddl b/tools/testfiles/tpbitsLongLengthExceeded.ddl index edb4aa7..812c300 100644 --- a/tools/testfiles/tpbitsLongLengthExceeded.ddl +++ b/tools/testfiles/tpbitsLongLengthExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 26,7 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsLongOffsetExceeded.ddl b/tools/testfiles/tpbitsLongOffsetExceeded.ddl index c556644..cbea722 100644 --- a/tools/testfiles/tpbitsLongOffsetExceeded.ddl +++ b/tools/testfiles/tpbitsLongOffsetExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 32,1 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsMax.ddl b/tools/testfiles/tpbitsMax.ddl index a4528ff..e569488 100644 --- a/tools/testfiles/tpbitsMax.ddl +++ b/tools/testfiles/tpbitsMax.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsMaxExceeded.ddl b/tools/testfiles/tpbitsMaxExceeded.ddl index 8c9bf8e..8c6e8e1 100644 --- a/tools/testfiles/tpbitsMaxExceeded.ddl +++ b/tools/testfiles/tpbitsMaxExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsOffsetExceeded.ddl b/tools/testfiles/tpbitsOffsetExceeded.ddl index a200446..e594d27 100644 --- a/tools/testfiles/tpbitsOffsetExceeded.ddl +++ b/tools/testfiles/tpbitsOffsetExceeded.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 64,1 packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsOffsetNegative.ddl b/tools/testfiles/tpbitsOffsetNegative.ddl index cd00ebb..833e47a 100644 --- a/tools/testfiles/tpbitsOffsetNegative.ddl +++ b/tools/testfiles/tpbitsOffsetNegative.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M -1,1 packedbits.h5' -############################# usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit diff --git a/tools/testfiles/tpbitsOverlapped.ddl b/tools/testfiles/tpbitsOverlapped.ddl index 2814c4b..9dcc9d2 100644 --- a/tools/testfiles/tpbitsOverlapped.ddl +++ b/tools/testfiles/tpbitsOverlapped.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,1,1,1,2,1,0,3 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsSigned.ddl b/tools/testfiles/tpbitsSigned.ddl index 7db3b32..b843388 100644 --- a/tools/testfiles/tpbitsSigned.ddl +++ b/tools/testfiles/tpbitsSigned.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,2,2,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsSigned2.ddl b/tools/testfiles/tpbitsSigned2.ddl index 60981e7..932b5fd 100644 --- a/tools/testfiles/tpbitsSigned2.ddl +++ b/tools/testfiles/tpbitsSigned2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsSigned4.ddl b/tools/testfiles/tpbitsSigned4.ddl index 70038ff..9eacd83 100644 --- a/tools/testfiles/tpbitsSigned4.ddl +++ b/tools/testfiles/tpbitsSigned4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,4,4,4 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsSignedInt.ddl b/tools/testfiles/tpbitsSignedInt.ddl index 05e5e6d..5c37e77 100644 --- a/tools/testfiles/tpbitsSignedInt.ddl +++ b/tools/testfiles/tpbitsSignedInt.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 0,2,10,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsSignedInt4.ddl b/tools/testfiles/tpbitsSignedInt4.ddl index 11270ff..4e9f0f6 100644 --- a/tools/testfiles/tpbitsSignedInt4.ddl +++ b/tools/testfiles/tpbitsSignedInt4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsSignedInt8.ddl b/tools/testfiles/tpbitsSignedInt8.ddl index e7cf0f3..f2d6069 100644 --- a/tools/testfiles/tpbitsSignedInt8.ddl +++ b/tools/testfiles/tpbitsSignedInt8.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 0,8,8,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsSignedIntWhole.ddl b/tools/testfiles/tpbitsSignedIntWhole.ddl index 589452e..598c446 100644 --- a/tools/testfiles/tpbitsSignedIntWhole.ddl +++ b/tools/testfiles/tpbitsSignedIntWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS16BITS -M 0,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS16BITS" { DATATYPE H5T_STD_I16LE diff --git a/tools/testfiles/tpbitsSignedLong.ddl b/tools/testfiles/tpbitsSignedLong.ddl index fe95ec5..b3eba61 100644 --- a/tools/testfiles/tpbitsSignedLong.ddl +++ b/tools/testfiles/tpbitsSignedLong.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 0,2,26,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsSignedLong16.ddl b/tools/testfiles/tpbitsSignedLong16.ddl index 0d4ff6b..83fa889 100644 --- a/tools/testfiles/tpbitsSignedLong16.ddl +++ b/tools/testfiles/tpbitsSignedLong16.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 0,16,16,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsSignedLong8.ddl b/tools/testfiles/tpbitsSignedLong8.ddl index 53039d8..e99b1d0 100644 --- a/tools/testfiles/tpbitsSignedLong8.ddl +++ b/tools/testfiles/tpbitsSignedLong8.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsSignedLongLong.ddl b/tools/testfiles/tpbitsSignedLongLong.ddl index b66791b..2be8a55 100644 --- a/tools/testfiles/tpbitsSignedLongLong.ddl +++ b/tools/testfiles/tpbitsSignedLongLong.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 0,2,58,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongLong16.ddl b/tools/testfiles/tpbitsSignedLongLong16.ddl index 8d8c125..44e336d 100644 --- a/tools/testfiles/tpbitsSignedLongLong16.ddl +++ b/tools/testfiles/tpbitsSignedLongLong16.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongLong32.ddl b/tools/testfiles/tpbitsSignedLongLong32.ddl index d88a6ed..6ab4ac4 100644 --- a/tools/testfiles/tpbitsSignedLongLong32.ddl +++ b/tools/testfiles/tpbitsSignedLongLong32.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 0,32,32,32 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongLongWhole.ddl b/tools/testfiles/tpbitsSignedLongLongWhole.ddl index 51732c2..134f3be 100644 --- a/tools/testfiles/tpbitsSignedLongLongWhole.ddl +++ b/tools/testfiles/tpbitsSignedLongLongWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 0,64 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongLongWhole1.ddl b/tools/testfiles/tpbitsSignedLongLongWhole1.ddl index 4a32153..7431670 100644 --- a/tools/testfiles/tpbitsSignedLongLongWhole1.ddl +++ b/tools/testfiles/tpbitsSignedLongLongWhole1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 1,63 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongLongWhole63.ddl b/tools/testfiles/tpbitsSignedLongLongWhole63.ddl index 6dcad25..c7cc65f 100644 --- a/tools/testfiles/tpbitsSignedLongLongWhole63.ddl +++ b/tools/testfiles/tpbitsSignedLongLongWhole63.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS64BITS -M 0,63 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS64BITS" { DATATYPE H5T_STD_I64LE diff --git a/tools/testfiles/tpbitsSignedLongWhole.ddl b/tools/testfiles/tpbitsSignedLongWhole.ddl index 5ae5300..e583f1d 100644 --- a/tools/testfiles/tpbitsSignedLongWhole.ddl +++ b/tools/testfiles/tpbitsSignedLongWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS32BITS -M 0,32 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS32BITS" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tpbitsSignedWhole.ddl b/tools/testfiles/tpbitsSignedWhole.ddl index 706f270..f044e23 100644 --- a/tools/testfiles/tpbitsSignedWhole.ddl +++ b/tools/testfiles/tpbitsSignedWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DS08BITS -M 0,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DS08BITS" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tpbitsUnsigned.ddl b/tools/testfiles/tpbitsUnsigned.ddl index 0aaf40a..9e7ac50 100644 --- a/tools/testfiles/tpbitsUnsigned.ddl +++ b/tools/testfiles/tpbitsUnsigned.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU08BITS -M 0,2,2,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU08BITS" { DATATYPE H5T_STD_U8LE diff --git a/tools/testfiles/tpbitsUnsigned2.ddl b/tools/testfiles/tpbitsUnsigned2.ddl index d8581b2..b7e6f79 100644 --- a/tools/testfiles/tpbitsUnsigned2.ddl +++ b/tools/testfiles/tpbitsUnsigned2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU08BITS" { DATATYPE H5T_STD_U8LE diff --git a/tools/testfiles/tpbitsUnsigned4.ddl b/tools/testfiles/tpbitsUnsigned4.ddl index b320386..d25d838 100644 --- a/tools/testfiles/tpbitsUnsigned4.ddl +++ b/tools/testfiles/tpbitsUnsigned4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU08BITS -M 0,4,4,4 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU08BITS" { DATATYPE H5T_STD_U8LE diff --git a/tools/testfiles/tpbitsUnsignedInt.ddl b/tools/testfiles/tpbitsUnsignedInt.ddl index 1908f31..5e0fefe 100644 --- a/tools/testfiles/tpbitsUnsignedInt.ddl +++ b/tools/testfiles/tpbitsUnsignedInt.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU16BITS -M 0,2,10,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU16BITS" { DATATYPE H5T_STD_U16LE diff --git a/tools/testfiles/tpbitsUnsignedInt4.ddl b/tools/testfiles/tpbitsUnsignedInt4.ddl index 9ff49ccc..0d3e38f 100644 --- a/tools/testfiles/tpbitsUnsignedInt4.ddl +++ b/tools/testfiles/tpbitsUnsignedInt4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU16BITS" { DATATYPE H5T_STD_U16LE diff --git a/tools/testfiles/tpbitsUnsignedInt8.ddl b/tools/testfiles/tpbitsUnsignedInt8.ddl index 7813172..861ed3e 100644 --- a/tools/testfiles/tpbitsUnsignedInt8.ddl +++ b/tools/testfiles/tpbitsUnsignedInt8.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU16BITS -M 0,8,8,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU16BITS" { DATATYPE H5T_STD_U16LE diff --git a/tools/testfiles/tpbitsUnsignedIntWhole.ddl b/tools/testfiles/tpbitsUnsignedIntWhole.ddl index d0052b9..c054011 100644 --- a/tools/testfiles/tpbitsUnsignedIntWhole.ddl +++ b/tools/testfiles/tpbitsUnsignedIntWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU16BITS -M 0,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU16BITS" { DATATYPE H5T_STD_U16LE diff --git a/tools/testfiles/tpbitsUnsignedLong.ddl b/tools/testfiles/tpbitsUnsignedLong.ddl index 1f64904..9f8bcb4 100644 --- a/tools/testfiles/tpbitsUnsignedLong.ddl +++ b/tools/testfiles/tpbitsUnsignedLong.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU32BITS -M 0,2,26,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU32BITS" { DATATYPE H5T_STD_U32LE diff --git a/tools/testfiles/tpbitsUnsignedLong16.ddl b/tools/testfiles/tpbitsUnsignedLong16.ddl index 9414351..7a1984f 100644 --- a/tools/testfiles/tpbitsUnsignedLong16.ddl +++ b/tools/testfiles/tpbitsUnsignedLong16.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU32BITS -M 0,16,16,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU32BITS" { DATATYPE H5T_STD_U32LE diff --git a/tools/testfiles/tpbitsUnsignedLong8.ddl b/tools/testfiles/tpbitsUnsignedLong8.ddl index 5480555..17b896c 100644 --- a/tools/testfiles/tpbitsUnsignedLong8.ddl +++ b/tools/testfiles/tpbitsUnsignedLong8.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU32BITS" { DATATYPE H5T_STD_U32LE diff --git a/tools/testfiles/tpbitsUnsignedLongLong.ddl b/tools/testfiles/tpbitsUnsignedLongLong.ddl index a2b326c..1cd9a6c 100644 --- a/tools/testfiles/tpbitsUnsignedLongLong.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLong.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 0,2,58,6 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongLong16.ddl b/tools/testfiles/tpbitsUnsignedLongLong16.ddl index 1f6bb67..f8b0189 100644 --- a/tools/testfiles/tpbitsUnsignedLongLong16.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLong16.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongLong32.ddl b/tools/testfiles/tpbitsUnsignedLongLong32.ddl index 19b9258..befaf5b 100644 --- a/tools/testfiles/tpbitsUnsignedLongLong32.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLong32.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 0,32,32,32 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole.ddl b/tools/testfiles/tpbitsUnsignedLongLongWhole.ddl index 93cb1f8..27c8879 100644 --- a/tools/testfiles/tpbitsUnsignedLongLongWhole.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLongWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 0,64 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl b/tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl index 896eff3..0302105 100644 --- a/tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 1,63 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl b/tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl index aff94a3..6a9b503 100644 --- a/tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl +++ b/tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU64BITS -M 0,63 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU64BITS" { DATATYPE H5T_STD_U64LE diff --git a/tools/testfiles/tpbitsUnsignedLongWhole.ddl b/tools/testfiles/tpbitsUnsignedLongWhole.ddl index f41655f..50ad02f 100644 --- a/tools/testfiles/tpbitsUnsignedLongWhole.ddl +++ b/tools/testfiles/tpbitsUnsignedLongWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU32BITS -M 0,32 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU32BITS" { DATATYPE H5T_STD_U32LE diff --git a/tools/testfiles/tpbitsUnsignedWhole.ddl b/tools/testfiles/tpbitsUnsignedWhole.ddl index cae97b0..7c9e736 100644 --- a/tools/testfiles/tpbitsUnsignedWhole.ddl +++ b/tools/testfiles/tpbitsUnsignedWhole.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -d /DU08BITS -M 0,8 packedbits.h5' -############################# HDF5 "packedbits.h5" { DATASET "/DU08BITS" { DATATYPE H5T_STD_U8LE diff --git a/tools/testfiles/tperror.ddl b/tools/testfiles/tperror.ddl index c7ee79d..76988c8 100644 --- a/tools/testfiles/tperror.ddl +++ b/tools/testfiles/tperror.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -p -d bogus tfcontents1.h5' -############################# HDF5 "tfcontents1.h5" { DATASET "bogus" { } diff --git a/tools/testfiles/tref-escapes-at.h5.xml b/tools/testfiles/tref-escapes-at.h5.xml index 6d683f1..847ed8c 100644 --- a/tools/testfiles/tref-escapes-at.h5.xml +++ b/tools/testfiles/tref-escapes-at.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tref-escapes-at.h5' -############################# diff --git a/tools/testfiles/tref-escapes.h5.xml b/tools/testfiles/tref-escapes.h5.xml index 6d43069..6c9f245 100644 --- a/tools/testfiles/tref-escapes.h5.xml +++ b/tools/testfiles/tref-escapes.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tref-escapes.h5' -############################# diff --git a/tools/testfiles/tref.h5.xml b/tools/testfiles/tref.h5.xml index 8a39acf..32b7c8b 100644 --- a/tools/testfiles/tref.h5.xml +++ b/tools/testfiles/tref.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tref.h5' -############################# diff --git a/tools/testfiles/treference.ddl b/tools/testfiles/treference.ddl index b94802f..d99dc6f 100644 --- a/tools/testfiles/treference.ddl +++ b/tools/testfiles/treference.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tattr2.h5' -############################# HDF5 "tattr2.h5" { GROUP "/" { ATTRIBUTE "array" { diff --git a/tools/testfiles/tsaf.ddl b/tools/testfiles/tsaf.ddl index 3825bda..fe9f864 100644 --- a/tools/testfiles/tsaf.ddl +++ b/tools/testfiles/tsaf.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tsaf.h5' -############################# HDF5 "tsaf.h5" { GROUP "/" { DATASET ".DSL_METADATA" { diff --git a/tools/testfiles/tsaf.h5.xml b/tools/testfiles/tsaf.h5.xml index 11808e3..39c8811 100644 --- a/tools/testfiles/tsaf.h5.xml +++ b/tools/testfiles/tsaf.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tsaf.h5' -############################# diff --git a/tools/testfiles/tscaleoffset.ddl b/tools/testfiles/tscaleoffset.ddl index 3428bfa..8000ef3 100644 --- a/tools/testfiles/tscaleoffset.ddl +++ b/tools/testfiles/tscaleoffset.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d scaleoffset tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "scaleoffset" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tshuffle.ddl b/tools/testfiles/tshuffle.ddl index 00f8e4a..4f9559b 100644 --- a/tools/testfiles/tshuffle.ddl +++ b/tools/testfiles/tshuffle.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d shuffle tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "shuffle" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tslink-1.ddl b/tools/testfiles/tslink-1.ddl index e0f24e0..d9df572 100644 --- a/tools/testfiles/tslink-1.ddl +++ b/tools/testfiles/tslink-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tslink.h5' -############################# HDF5 "tslink.h5" { GROUP "/" { SOFTLINK "slink1" { diff --git a/tools/testfiles/tslink-2.ddl b/tools/testfiles/tslink-2.ddl index 0672707..853c093 100644 --- a/tools/testfiles/tslink-2.ddl +++ b/tools/testfiles/tslink-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -l slink2 tslink.h5' -############################# HDF5 "tslink.h5" { SOFTLINK "slink2" { LINKTARGET "linkvalue" diff --git a/tools/testfiles/tslink.h5.xml b/tools/testfiles/tslink.h5.xml index f31f425..deeb70c 100644 --- a/tools/testfiles/tslink.h5.xml +++ b/tools/testfiles/tslink.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tslink.h5' -############################# diff --git a/tools/testfiles/tsplit_file.ddl b/tools/testfiles/tsplit_file.ddl index 691790c..7e1c812 100644 --- a/tools/testfiles/tsplit_file.ddl +++ b/tools/testfiles/tsplit_file.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --filedriver=split tsplit_file' -############################# HDF5 "tsplit_file" { GROUP "/" { ATTRIBUTE "Metadata" { diff --git a/tools/testfiles/tstr-1.ddl b/tools/testfiles/tstr-1.ddl index 099b291..4d1905b 100644 --- a/tools/testfiles/tstr-1.ddl +++ b/tools/testfiles/tstr-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tstr.h5' -############################# HDF5 "tstr.h5" { GROUP "/" { DATASET "comp1" { diff --git a/tools/testfiles/tstr-2.ddl b/tools/testfiles/tstr-2.ddl index ab7cb42..e887581 100644 --- a/tools/testfiles/tstr-2.ddl +++ b/tools/testfiles/tstr-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tstr2.h5' -############################# HDF5 "tstr2.h5" { GROUP "/" { GROUP "g1" { diff --git a/tools/testfiles/tstr.h5.xml b/tools/testfiles/tstr.h5.xml index aa429a8..3ef8217 100644 --- a/tools/testfiles/tstr.h5.xml +++ b/tools/testfiles/tstr.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tstr.h5' -############################# diff --git a/tools/testfiles/tstr2.h5.xml b/tools/testfiles/tstr2.h5.xml index 62283be..e7aafc8 100644 --- a/tools/testfiles/tstr2.h5.xml +++ b/tools/testfiles/tstr2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tstr2.h5' -############################# diff --git a/tools/testfiles/tstring-at.h5.xml b/tools/testfiles/tstring-at.h5.xml index 29e2b90..739ebc4 100644 --- a/tools/testfiles/tstring-at.h5.xml +++ b/tools/testfiles/tstring-at.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tstring-at.h5' -############################# diff --git a/tools/testfiles/tstring.ddl b/tools/testfiles/tstring.ddl index 843d2aa..3469de7 100644 --- a/tools/testfiles/tstring.ddl +++ b/tools/testfiles/tstring.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tstr3.h5' -############################# HDF5 "tstr3.h5" { GROUP "/" { DATASET "str1" { diff --git a/tools/testfiles/tstring.h5.xml b/tools/testfiles/tstring.h5.xml index d83ea0e..7c86d4c 100644 --- a/tools/testfiles/tstring.h5.xml +++ b/tools/testfiles/tstring.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tstring.h5' -############################# diff --git a/tools/testfiles/tstring2.ddl b/tools/testfiles/tstring2.ddl index c3e9844..88996fd 100644 --- a/tools/testfiles/tstring2.ddl +++ b/tools/testfiles/tstring2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -r -d str4 tstr3.h5' -############################# HDF5 "tstr3.h5" { DATASET "str4" { DATATYPE H5T_STD_I8LE diff --git a/tools/testfiles/tstringe.ddl b/tools/testfiles/tstringe.ddl index 1d96dbd..f7efcbf 100644 --- a/tools/testfiles/tstringe.ddl +++ b/tools/testfiles/tstringe.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -e tstr3.h5' -############################# HDF5 "tstr3.h5" { GROUP "/" { DATASET "str1" { diff --git a/tools/testfiles/tszip.ddl b/tools/testfiles/tszip.ddl index b9f80ca..08b714b 100644 --- a/tools/testfiles/tszip.ddl +++ b/tools/testfiles/tszip.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d szip tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "szip" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tudlink-1.ddl b/tools/testfiles/tudlink-1.ddl index 5f76c40..53edf6b 100644 --- a/tools/testfiles/tudlink-1.ddl +++ b/tools/testfiles/tudlink-1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tudlink.h5' -############################# HDF5 "tudlink.h5" { GROUP "/" { USERDEFINED_LINK "udlink1" { diff --git a/tools/testfiles/tudlink-2.ddl b/tools/testfiles/tudlink-2.ddl index 9ae3a54..7f4281a 100644 --- a/tools/testfiles/tudlink-2.ddl +++ b/tools/testfiles/tudlink-2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -l udlink2 tudlink.h5' -############################# HDF5 "tudlink.h5" { USERDEFINED_LINK "udlink2" { USERDEFINED_LINK "udlink2" { diff --git a/tools/testfiles/tudlink.h5.xml b/tools/testfiles/tudlink.h5.xml index bc55a83..56f3488 100644 --- a/tools/testfiles/tudlink.h5.xml +++ b/tools/testfiles/tudlink.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tudlink.h5' -############################# diff --git a/tools/testfiles/tuserfilter.ddl b/tools/testfiles/tuserfilter.ddl index 5549741..29660a7 100644 --- a/tools/testfiles/tuserfilter.ddl +++ b/tools/testfiles/tuserfilter.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump -H -p -d myfilter tfilters.h5' -############################# HDF5 "tfilters.h5" { DATASET "myfilter" { DATATYPE H5T_STD_I32LE diff --git a/tools/testfiles/tvldtypes1.ddl b/tools/testfiles/tvldtypes1.ddl index e798d09..1ebb915 100644 --- a/tools/testfiles/tvldtypes1.ddl +++ b/tools/testfiles/tvldtypes1.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvldtypes1.h5' -############################# HDF5 "tvldtypes1.h5" { GROUP "/" { DATASET "Dataset1.0" { diff --git a/tools/testfiles/tvldtypes1.h5.xml b/tools/testfiles/tvldtypes1.h5.xml index 34eb276..5d5874e 100644 --- a/tools/testfiles/tvldtypes1.h5.xml +++ b/tools/testfiles/tvldtypes1.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvldtypes1.h5' -############################# diff --git a/tools/testfiles/tvldtypes2.ddl b/tools/testfiles/tvldtypes2.ddl index 855b5cd..93be862 100644 --- a/tools/testfiles/tvldtypes2.ddl +++ b/tools/testfiles/tvldtypes2.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvldtypes2.h5' -############################# HDF5 "tvldtypes2.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tvldtypes2.h5.xml b/tools/testfiles/tvldtypes2.h5.xml index d7e644c..3464dbd 100644 --- a/tools/testfiles/tvldtypes2.h5.xml +++ b/tools/testfiles/tvldtypes2.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvldtypes2.h5' -############################# diff --git a/tools/testfiles/tvldtypes3.ddl b/tools/testfiles/tvldtypes3.ddl index 692f485..3af9268 100644 --- a/tools/testfiles/tvldtypes3.ddl +++ b/tools/testfiles/tvldtypes3.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvldtypes3.h5' -############################# HDF5 "tvldtypes3.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tvldtypes3.h5.xml b/tools/testfiles/tvldtypes3.h5.xml index 627b2ca..db230e0 100644 --- a/tools/testfiles/tvldtypes3.h5.xml +++ b/tools/testfiles/tvldtypes3.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvldtypes3.h5' -############################# diff --git a/tools/testfiles/tvldtypes4.ddl b/tools/testfiles/tvldtypes4.ddl index 50ae28b..b1ca394 100644 --- a/tools/testfiles/tvldtypes4.ddl +++ b/tools/testfiles/tvldtypes4.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvldtypes4.h5' -############################# HDF5 "tvldtypes4.h5" { GROUP "/" { DATASET "Dataset1" { diff --git a/tools/testfiles/tvldtypes4.h5.xml b/tools/testfiles/tvldtypes4.h5.xml index de2a476..5d4e535 100644 --- a/tools/testfiles/tvldtypes4.h5.xml +++ b/tools/testfiles/tvldtypes4.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvldtypes4.h5' -############################# diff --git a/tools/testfiles/tvldtypes5.ddl b/tools/testfiles/tvldtypes5.ddl index 57462d7..b4bf3db 100644 --- a/tools/testfiles/tvldtypes5.ddl +++ b/tools/testfiles/tvldtypes5.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvldtypes5.h5' -############################# HDF5 "tvldtypes5.h5" { GROUP "/" { DATASET "Dataset" { diff --git a/tools/testfiles/tvldtypes5.h5.xml b/tools/testfiles/tvldtypes5.h5.xml index 92d5f0c..e6b306a 100644 --- a/tools/testfiles/tvldtypes5.h5.xml +++ b/tools/testfiles/tvldtypes5.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvldtypes5.h5' -############################# diff --git a/tools/testfiles/tvlstr.ddl b/tools/testfiles/tvlstr.ddl index eda8e000..2f1318c 100644 --- a/tools/testfiles/tvlstr.ddl +++ b/tools/testfiles/tvlstr.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvlstr.h5' -############################# HDF5 "tvlstr.h5" { GROUP "/" { ATTRIBUTE "test_scalar" { diff --git a/tools/testfiles/tvlstr.h5.xml b/tools/testfiles/tvlstr.h5.xml index 507f0eb..31fcb9f 100644 --- a/tools/testfiles/tvlstr.h5.xml +++ b/tools/testfiles/tvlstr.h5.xml @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump --xml tvlstr.h5' -############################# diff --git a/tools/testfiles/tvms.ddl b/tools/testfiles/tvms.ddl index 077050b..49f3881 100644 --- a/tools/testfiles/tvms.ddl +++ b/tools/testfiles/tvms.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump tvms.h5' -############################# HDF5 "tvms.h5" { GROUP "/" { DATASET "Array" { diff --git a/tools/testfiles/zerodim.ddl b/tools/testfiles/zerodim.ddl index 49c0a4c..484e907 100644 --- a/tools/testfiles/zerodim.ddl +++ b/tools/testfiles/zerodim.ddl @@ -1,6 +1,3 @@ -############################# -Expected output for 'h5dump zerodim.h5' -############################# HDF5 "zerodim.h5" { GROUP "/" { ATTRIBUTE "attr of 0 dimension size" { -- cgit v0.12